Importing contacts

Bring a CSV in, keep it clean, and carry unsubscribes across.

Import under Contacts, Import. Pombo reads a CSV, matches columns to fields, and upserts by email address, so re-running the same import updates contacts rather than duplicating them.

Columns

  • email is required.
  • first_name, last_name, phone map to built-in fields.
  • status should be subscribed or unsubscribed. Anything you don't recognize is treated as subscribed.
  • Any other column becomes a custom field. Names are lowercased and spaces become underscores, so Company Size is stored as company_size and used as {{ company_size }}.

Carrying unsubscribes across

When you move from another platform, export the people who opted out there and give them status: unsubscribed in the CSV. Pombo will keep them in your audience but never mail them. Skipping this step is the most common way a migration turns into a compliance problem.

Suppression

bounced and complained are set by Pombo, not by import. A hard bounce or a spam complaint suppresses that address permanently, and re-importing it will not un-suppress it. See unsubscribes and suppression.

Over the API or an agent

The same upsert is available at POST /api/v1/contacts and through the import_contacts and create_contact agent tools, so a sync loop from your own system is safe to run on a schedule.

Something unclear or missing? Tell us.