Long-running Actions

Background jobs, imports, exports, and bulk operations — what happens when an action takes more than a few seconds.

Data export — in progress

The user triggered a CSV/PDF export of a large dataset. It's running in the background. They need to know it's working, see progress, and know they can leave the page.

Exporting transactions...

Processing 48,291 rows

Progress34%

You can leave this page — we'll email you when it's ready.

Show for any export that takes more than 2-3 seconds. Use a persistent card or toast that stays visible even if they navigate away. Always tell the user if they can leave safely.

Data export — complete

The export finished. The user needs to download the file. Show a clear success state with a download button and file details.

Export complete

48,291 rows · 12.4 MB · CSV

Link expires in 24 hours

Replace the progress state with this once the job completes. Include file size and row count so the user can verify it looks right before downloading. Auto-expire the download link if applicable.

CSV import — validation summary

The user uploaded a CSV file for import. The system parsed it and found some rows with errors. Instead of failing the entire import, show a summary of what will be imported and what will be skipped.

Import preview — contacts.csv

842 rows parsed · 3 issues found

839

Ready to import

2

Warnings

1

Errors

Row 142: Email "bob@" is malformed — will import without email
Row 587: Duplicate of existing contact "alice@acme.com" — will skip
Row 203: Missing required field "name" — will skip

Show after file upload and parsing, before the actual import begins. Let the user review the validation results and decide whether to proceed with the valid rows or fix the file first.

Bulk operation — partial failure summary

The user ran a bulk action (e.g., send 50 invitations) and some succeeded while others failed. You need to show a clear breakdown so they know what to retry.

Bulk invite complete

Finished processing 50 invitations

47 invitations sent

3 failed

Invalid email addresses

Show after any bulk operation completes with mixed results. Never just say 'some failed' — show exact counts and let the user retry only the failed items.

Background jobs queue

The user has multiple background jobs running or recently completed. A jobs panel shows the status of each one. This is essential for products with heavy async processing.

Background jobs

Export: Q4 Revenue Report

67% · Started 2 min ago

Import: contacts.csv

839 rows imported · 5 min ago

Done

Export: User Activity Log

Failed — timeout after 5 min

Generate: Monthly Invoice PDFs

Queued · Waiting for export to finish

Queued

Show as a persistent panel, drawer, or dedicated page when your product supports multiple concurrent background operations. Users need to see all jobs at a glance without hunting through notifications.