Importing contacts from a CSV
Start from the Import button at the top of the Contacts list. The wizard has three steps: Upload, Map columns and Options.
Preparing the file. Your CSV needs a header row, for example Name, Email, Phone. Up to 25,000 contacts go in per import, so split anything larger. If you would rather start from a known-good shape, click Download a template on the upload step, fill it in and upload it back.
Step 1, Upload. Drag the file onto the drop zone or browse for it. The file is read in your browser, and the wizard tells you how many rows it found.
Step 2, Map columns. Each CSV column is listed with a sample value and a "Maps to" dropdown. You can map to Email, Name, Phone, Address, City, State or Region, Postal code, Country, Tags or Notes, or choose Ignore. The wizard guesses sensible matches from your headers, so usually you are just confirming.
Two useful details. Email is required, you cannot continue without it. And mapping more than one column to the same field combines them, which is how you merge a First name and Last name column into one Name.
A Tags column takes comma separated tag names and creates any that do not exist yet. A Notes column becomes an internal note on the contact.
Step 3, Options.
- These contacts agreed to receive marketing from me. Only tick this if they genuinely opted in. Leave it clear and everyone imports as Unconfirmed, which means no campaign will reach them.
- Add a tag to everyone imported, optional.
- Add everyone to a list, optional.
Then press Import contacts. Rows are uploaded in batches, and a progress readout runs while it works.
How duplicates are handled. Matching is on email address. An existing contact is updated, never duplicated, and a contact you deleted earlier is restored rather than recreated. Blank cells are ignored, so a sparse row can never wipe details you already hold.
Consent only ever moves upwards. If you tick the consent box, contacts sitting at Unconfirmed or Pending are lifted to Subscribed. Anyone already Subscribed, Unsubscribed, Bounced or Spam is left exactly as they are. An import never sends a confirmation email, see How forms on your pages capture leads.
The result screen reports Added, Updated, Skipped and Errors. Rows with a missing or invalid email address are the usual cause of Skipped.