Bulk import applicants from a CSV
The bulk import verifies many applicants in one upload. You provide a CSV with one applicant per row; the platform validates, dedupes, debits your wallet, and starts a verification per row.
Before you start
Section titled “Before you start”You need:
- An active organization (the import is scoped to whichever organization you have selected).
- At least one workflow template, or pick a default at upload time.
- The Owner or Admin role.
- Enough wallet balance to cover every row in the CSV. The platform pre-checks before the import starts; failed pre-check rejects the upload.
CSV format
Section titled “CSV format”Download the canonical template from the New bulk import page, or use your own spreadsheet as long as it has these columns. One row per applicant. Columns:
email: applicant’s email (required).workflow_id: per-row override of the page’s default workflow (optional; formatwt_<uuid>). Find the id on each workflow’s page under Workflows, where it’s shown as a copyablewt_…value.phone: applicant’s phone number in E.164 format (optional).reference_label: internal label to find this applicant in your dashboard (optional). Not shown to the applicant.reference_type: categorization tag, e.g.rental_application(optional).reference_id: your external system’s identifier for this applicant (optional).send_invite: whether to email this applicant their verification invite once they’re added (optional;true/false, also acceptsyes/no/1/0, any case). When the cell is blank, the upload form’s Auto-send invite emails setting applies.
Static validation is strict: any malformed row rejects the whole CSV. You download the validation errors, fix, and re-upload.
Spreadsheet editors often rewrite a lowercase false as FALSE; the send_invite column is case-insensitive, so either is accepted.
Limits
Section titled “Limits”- 2,000 rows per upload.
- 5 MB (5 MiB) file size.
- 5 concurrent in-flight imports per organization.
Re-uploading the same file within 24 hours is flagged as a duplicate. You can confirm to proceed anyway, or open the earlier import instead.
After upload
Section titled “After upload”The detail page shows live progress with per-row counters. When the import finishes you can:
- Download a results CSV with each row’s outcome (
succeeded/failed), verification ID, and applicant URL. - Jump to the filtered applicants list for the applicants added by this import.
- Correct any failed rows and upload them as a new import: copy the failed rows from the results CSV into a fresh file.
Canceling an in-flight import stops new rows from dispatching; rows already in flight finish on their own. Rows that had not started yet are recorded as failed (reason: canceled) in the results CSV.