Import leads from a CSV
Upload a CSV into a pipeline, map its columns to your fields, and see exactly which rows were imported, duplicated or rejected.
Open your pipeline, click the Intake node, then import a CSV. You upload the file, map its columns to your pipeline fields, and import — imported leads go through the same validation, deduplication, scoring and routing as leads posted to your webhook.
The pipeline has to be active. Paused and archived pipelines refuse imports.
The four steps
- Upload — drag the file in or click to browse. LeadMove parses it and shows the first 5 rows and the total row count.
- Map fields — each CSV column gets a dropdown: a pipeline field, or Skip. Common headers (
email,phone_number,first_name,zip,company…) are matched automatically; check them and fix the rest. Unmapped columns are dropped, not imported. - Choose whether to distribute — "Distribute immediately after ingestion" is on by default. Turn it off to load the leads without sending them to buyers.
- Import — you get a summary: imported, duplicates, errors.
Limits
| File type | .csv only |
| File size | 10 MB max |
| Rows | 5,000 max per file — split larger files and import them one at a time |
Oversized files are refused at upload, before you waste time mapping. An uploaded file you don't import within 30 minutes expires and has to be uploaded again.
What happens to each row
Rows that pass validation become leads, identical in every way to webhook leads: scored, routed, delivered, billable.
Rows that match your deduplication rules are recorded as duplicates — kept for the audit trail, never sent to a buyer, never billed. A file is deduped against your existing leads and against itself, so the same person twice in one file only sells once. See lead statuses.
Rows that fail validation (missing a required field, malformed email…) are rejected — no lead is created. This is the one place where LeadMove differs from webhook ingestion, where an invalid lead is stored so it can be corrected.
The results screen lists the first 50 errors with their row numbers, and offers Download rejected CSV: your original columns plus a Row and an Error column, so you can fix the file in a spreadsheet and re-import just those rows. Download it before you leave — rejected files are kept for one hour.
Manual review applies to imports too
If manual review is on for the pipeline, imported leads land as held and wait for your approval, exactly like webhook leads. With an auto-release delay configured, the whole batch enters review together and releases at the same moment. Nothing is delivered until then.
Common questions
Does an import count against my monthly lead quota? Yes, for every lead created. Recorded duplicates don't count, and rejected rows don't count since no lead is created.
Can I import into a pipeline whose fields don't match my file? Yes — the mapping step is exactly that. Map what you need, skip the rest. If a column is genuinely useful, add it as a canonical field in Intake first, then it appears in the dropdowns.
Everything imported as a duplicate. Why? The file overlaps leads you already have, within your deduplication window. Widen or narrow the window and the matched fields in the pipeline's deduplication settings, then re-import.
Can I import 20,000 leads? Not in one file. Split it into files of 5,000 rows or fewer and import them in sequence; deduplication still works across the batches.
I unchecked "distribute immediately" — how do I send those leads later? They sit in the pipeline as pending and nothing goes out on its own. Open a lead and assign it to a buyer by hand from the lead page.