Importing leads
CSV format, how we de-duplicate, and what to do when an import fails.
You can bring leads in three ways: a CSV import, a webhook from your website, or one at a time through the New Lead form.
CSV format
Required columns:
first_namelast_namephoneoremail(at least one)
Optional but recommended:
loan_type(VA, FHA, Conventional, USDA)current_loan_amountcurrent_interest_ratecredit_scoresourcenotes
The first row of the CSV must be the header. Column order does not matter; we match on header names.
Running an import
- Go to Leads -> Import.
- Drop the CSV.
- Pick a default loan type (used when a row has no
loan_typecolumn). - Review the first 10 rows. We show you what we parsed and what we will skip.
- Click Import.
We process the import in a background job. You will see a toast when it finishes; the job's full log is visible in the Imports tab if any rows failed.
How de-duplication works
We treat a lead as a duplicate when:
- The phone number matches an existing lead's
phone_normalized(digits only), or - The email matches an existing lead's
email, case-insensitive.
Duplicates are skipped, not overwritten. The skipped rows show in the import log so you can decide whether to merge by hand.
Common failures
- "Phone is invalid" on every row: usually the column header is wrong. The CSV must use
phone(lowercase, underscored), notPhone Number. - "Loan type not recognized": values are case-sensitive in the import; use exactly
VA,FHA,Conventional, orUSDA. - "More than 5000 rows": split the file. We cap a single import at 5000 rows so a bad file cannot stall your queue.