Contacts

Import contacts from a CSV

Upload a spreadsheet and let the importer match its columns to contact fields.

View as Markdown

The fastest way to bring in a lot of contacts is a spreadsheet upload at /admin/clients/import. .csv, .xlsx, and .xls all work. Large files import in the background, so you can keep working.

Before you start

  • You need the Admin or Marketing Manager role.
  • The first row must be a header row — the importer matches columns by name, so the headers have to match the names below.
  • Download the sample template from the import page if you want a starting point.

Prepare your file

Standard columns the importer recognizes:

  • email — used to match and de-duplicate contacts. Required if there's no phone.
  • phone — required if there's no email.
  • name, company, location, occupation, gender (Male / Female / Other), dob (YYYY-MM-DD).
  • segments — comma-separated segment names, e.g. Newsletter, VIP, Tech. Missing segments are created.
  • wa_opt_in — a truthy value (yes / true / 1) turns on the contact's WhatsApp consent.
  • Any other column is stored as a custom field you can use in templates and segment rules.

Import

  1. Open Contacts → Import. Go to /admin/clients/import.

  2. Add the file. Drag it onto the drop zone or click to browse.

    Import page with the drag-and-drop upload zone
    Import page with the drag-and-drop upload zone

  3. Click Import Clients. The upload starts a background job right away — there's no separate column-mapping step, so it's the header names that matter. A live progress bar shows the count. You can leave the page; the clients list shows an "Importing clients…" banner that links back here.

After import

  • The summary shows contacts created and updated, segments created and assigned, and any skipped rows grouped by reason.
  • A contact that already exists (matched by email or phone) is updated, not duplicated.
  • Check Find & merge duplicates if you imported from more than one source.

Only import contacts who have agreed to hear from you. A bad list hurts email deliverability and WhatsApp quality — see Consent, opt-in & the suppression list.

Common problems

  • Rows skipped for no identifier — those rows had neither a valid email nor a valid phone. Check the header names match.
  • Everything skipped — the header row doesn't match the expected names, so no email / phone column was found.
  • Segment not applied — the segments cell must contain segment names, separated by commas.