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
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
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
Export: User Activity Log
Failed — timeout after 5 min
Generate: Monthly Invoice PDFs
Queued · Waiting for export to finish
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.