Importing Leads from CSV
Where to find it
Sidebar > CRM > [Entity] > Import
Importing Leads from CSV
The CRM lets you bulk-create leads by uploading a CSV file. The flow is Upload → Map → (optional Preview) → Import → Summary.
1. Upload
Open the CRM, click Import in the top-right of the board. The drawer expects a CSV file with a header row in the first line and standard comma-separated values. Maximum file size: 20 MB.
2. Map columns
After upload, the drawer shows every field defined on this entity. For each one, pick the CSV column that should populate it (or leave it on Skip Field). The tool tries to auto-map based on column names that match field labels.
Below the field mappings, the Import Settings section lets you set a default assignee and a target stage. Leave them on the defaults to import unassigned leads at the entity's first stage.
The Notes Column picker appends each row's value as a note on the created lead. Pick None / skip to leave notes off.
3. Duplicate detection (configured at the entity level)
Duplicate detection is no longer per-import. It lives on the entity itself, so the same rules apply to every lead source (CSV import, API intake, form submissions). Configure it once under Entity → Settings → Duplicate Detection:
- Match by these fields: pick one or more entity fields, in priority order. The first non-empty key that yields a match wins. Encrypted, multi-select, location, boolean and file fields are not eligible.
- When a duplicate is found:
- Off. Every row creates a new lead (default for new entities).
- Skip the new row. Keep the existing lead untouched.
- Update the existing lead. Overwrite the mapped fields on the existing lead. Assignee, status, and unmapped fields stay as they are. The activity feed records each update with which fields changed.
- Create a new lead anyway. Log the match for stats, but always create.
When the entity has duplicate detection on, the import drawer shows a read-only banner so you know what'll happen for this run, and the Start Import button changes to Preview Import. You'll get a breakdown of will-create / will-update / will-skip / conflicts before any DB writes.
4. Preview
When duplicate detection is on, clicking Preview Import scans the CSV (no DB writes yet) and shows a four-tile breakdown:
- Will be created. Rows whose match value isn't in the CRM yet.
- Will be updated. Rows that match exactly one existing lead.
- Will be skipped. Rows that match (only shown when action = Skip).
- Conflicts. Rows whose match value points to two or more existing leads. Conflict rows are auto-skipped; the post-import report lists them so you can clean the duplicates manually.
If the breakdown looks right, click Confirm & Import. Otherwise hit Back to adjust your choices.
5. Summary
After the job runs, the Summary screen shows the final counts. With duplicate detection on you'll see five tiles: Created · Updated · Skipped · Conflicts · Errors. The expandable section below lists every row that wasn't imported as a new lead, with the reason.
Notes
- A no-op update (CSV row matches an existing lead and all mapped values are identical) is counted as Skipped, not Updated, to keep the lead's activity timeline clean.
- Activity log entries created by import-driven updates are attributed to the user who initiated the import.
- Imports run as queued jobs. Large files (multiple thousand rows) take several minutes to complete; the drawer's progress bar updates every 10 rows.