Add and import contacts

Add contacts one at a time or bring in a whole list at once with a CSV import — including column mapping and how duplicates are handled.

There are two ways a contact ends up in your account: someone submits a form (or books, buys, or calls in), or you put them there yourself — one at a time for a single person, or all at once with a CSV import for a list you already have. This article covers both.

Adding a single contact manually

For a one-off — a referral, a contact you met at an event, someone who called in — add them directly:

  1. Go to Contacts and click Add Contact.
  2. Fill in whatever fields you have. Email or phone is usually the minimum worth entering, since those are what the platform uses to match this person if they ever submit a form or get imported again later.
  3. Add any tags that apply right away (source, list, status) so the contact is segmented from the moment it's created.
  4. Save. The contact now has its own record and appears in your contact list and any smart list whose filters it matches.

Tip: If you're adding someone you already have a relationship with, take thirty seconds to fill in a couple of custom fields too — an empty record is much less useful later than one with even basic context on it.

Importing contacts from a CSV file

For anything more than a handful of contacts, use the CSV import instead of adding people by hand.

Prepare the file

  • Save your list as a .csv file (not .xlsx) and keep it under 30 MB.
  • The first row must be a header row, and at least one column header should correspond to a field in your account (Email, Phone, First Name, etc.).
  • Clean the list before you import it — remove test rows, obviously broken emails, and duplicate entries within the file itself. Import tools catch a lot, but a tidy source file always produces a tidier result.

Run the import

  1. Go to Contacts and choose Import Contacts (or Bulk Actions > Import).
  2. Upload your CSV file.
  3. Map each column to the matching contact field. Every column header from your file appears next to a dropdown — pick the standard field or custom field it should write to.
  4. For any column you don't want to import, leave it unmapped and check the box confirming you want to skip it.
  5. Review the preview, then confirm the import.

Screenshot coming soon

The CSV import screen with file columns mapped to contact fields

What happens to columns you can't map

If your file has a column with no obvious matching field — say, an internal ID from your old system — you can either map it to a custom field you create on the spot, or skip it. Nothing is imported into a field you didn't explicitly map it to.

How duplicate contacts are handled during import

This is the part worth understanding before you run a big import, because it determines whether you end up updating existing contacts or creating a pile of duplicates.

When a row in your CSV is processed, the platform checks for an existing match in this order:

  1. Contact ID, if your file includes one.
  2. Email address.
  3. Phone number.

If a match is found, that existing contact is updated with the new row's data rather than a second contact being created. If no match is found on any of those, a new contact is created. If a row's email or phone matches more than one existing contact, that specific field is left out of the update rather than risk writing to the wrong record.

Note: To update existing contacts via import (rather than create new ones), your file needs to include the field you're matching on — usually email or phone. If you strip those columns out, every row will be treated as brand new.

Your account also has a duplicate-contact preference that controls whether duplicate creation is allowed at all during manual adds and imports. If you're seeing more duplicates than expected, that setting is the first place to check.

After the import finishes

  • You'll get a summary of how many rows were created, how many were updated, and how many failed.
  • Failed rows usually fail because of a malformed email/phone, a missing required field, or a formatting issue in the source file — the failure log tells you which.
  • Tag the whole batch on import if your tool supports it (many imports let you apply one or more tags to every contact in the file), so you can immediately build a smart list of "everyone from this import" without having to guess who they were later.

What "done" looks like

After importing, spot-check a handful of the contacts that should have been updated (not created) — confirm they show one record, not two, and that the new data landed in the right fields. If you see doubled contacts, stop further imports and check your duplicate-matching settings and the columns you mapped before running anything else.

Frequently asked questions

What's the maximum file size for a CSV import?

30 MB. If your list is larger, split it into multiple files and import them one at a time.

Can I import custom field data, not just standard fields?

Yes. During column mapping, map any column to an existing custom field, or create a new custom field right from the mapping screen if one doesn't exist yet.

I imported the same list twice by accident — did I create duplicates?

Not necessarily. If the rows matched existing contacts on email or phone, they were updated rather than duplicated. Check the import summary from the second run — it will show how many rows were "updated" versus "created."