Create and send

Contacts and segments

Keep customer profiles, consent, lists, and behavior connected.

View as Markdown ↗

The contact model

Each profile starts with an email address and can include name, location, company, phone, and custom attributes. Email and behavioral activity are attached to the same contact timeline.

Import contacts

Upload a CSV from Contacts. Common headers such as first name, company, and country map to standard fields. Other columns become typed custom attributes.

Normalize before importing

Use one row per email address, remove addresses you cannot contact, and keep a record of how each person subscribed.

Every import is also read as a whole list, together with anything else the account imported in the last day. A list that looks bought or scraped — for example, one where many addresses are role addresses such as info@ and sales@ — is flagged in the import summary. On an account that is new or has little sending history, the addresses that import added are held from all email and marked In review on the Contacts page until we have reviewed the list, usually within a day: campaigns, flows, double opt-in confirmation requests and the emails API leave them out until then, and deleting and re-adding a held contact does not release it. Contacts already in the project are never held by an import. Lists people signed up for send best.

Review column mapping, consent values and list selection before submitting. Verification modes are basic (default), strict and off; malformed and reserved-domain addresses are still refused with verification off. Checks use syntax, DNS, address-category signals and this project's bounce/complaint history, not an SMTP mailbox probe. A lookup failure alone does not prove an address invalid. See Contacts API verification for modes, results and limits. CSV import itself is a dashboard feature, not a public /v1/contacts/import endpoint.

Export contacts

Use Export CSV on Contacts to download all matching contacts, including the search and status filters, not just the current page. On a list it exports members with a list_status column (confirmed, pending or unsubscribed); the Segments row menu exports contacts matching that segment. The file includes email, name, company, phone, country, city, timezone, marketing consent and the state fields email_status, unsubscribed_at, created_at and id. Custom columns use the first 200 distinct attribute keys alphabetically across the project, excluding collisions with those profile and state columns.

Email Bump recognizes its profile headers automatically; other providers may require mapping. Re-importing is not a full restore: automatic import skips the four state fields and list_status, and structured custom attributes come back as text. Mapping email_status to Delivery status keeps bounced and complained addresses unmailable in the project you import into. The subscribed column can change marketing consent. It reads common yes and no values, such as true/false, y/n, opted in/opted out, unsubscribed and do not email, in any case. Any other value never changes an existing contact, adds a new contact as unsubscribed, and is counted in the import summary. A blank cell leaves an existing contact as it is and subscribes a new one. A yes only resubscribes someone who unsubscribed if you tick Resubscribe people who unsubscribed before, and an import never resubscribes someone who reported spam. See the Contacts API for the CSV format, filtering differences and GET /v1/contacts/export.

Lists and segments

To add imported contacts, open Contacts, select individual contacts or Select all N contacts, then choose Add to list. Select all includes every matching page when search or status filters are applied. Choose a list or create one there.

Inside a list, choose Add contacts → From contacts → Add all N contacts. Both paths preview the exact number of new members and whether confirmation emails will be queued. Existing members and list opt-outs are preserved. Ordinary lists may trigger list-join automations; double-opt-in lists wait for confirmation.

Lists are explicit groups you manage directly. Segments are dynamic audiences based on profile fields and behavior. Use lists for known membership and segments when the audience should update as customer data changes.