Grow · Audiences
One record per person, for every team.
Contacts, properties, topics and segments, shared by your API and your campaigns. Sync from your app, import a CSV, and let consent and suppression follow the person everywhere.
- /contacts, Live
- /segments, Live
- /topics, Live
01, Properties
Fields you define, choices they make.
Add the properties your product cares about, typed so that segments and merge tags treat them properly. Topics let each person choose what they hear about, from a preference page you do not have to build.
- Typed properties. String, number, boolean or date, each with an optional fallback for merge tags. The keys are yours:
plan,city,last_order_at. - Topics. Opt-in or opt-out by default, and public or private. A private topic shows on the preference page only to people already in it.
- One link in every campaign. The preference page lets people change topics or leave marketing altogether.
02, Segments
Segments that keep themselves current.
Describe who you mean once. As orders come in and emails are opened, clicked or bounced, people move in and out of the segment without anyone re-exporting a list.
- Fields and properties: equals, contains, greater than, between, before, in the last N days.
- Topics and static segments: opted in or out, member or not.
- Email activity: delivered, opened, clicked or bounced, for any campaign, one campaign or one link, with machine opens and clicks left out.
- Revenue: order value over a period, from the orders your code sends.
- Groups nest up to five levels with and, or and not. A rule that does not validate is an error, never a quietly wider list.
03, Import
Bring your list without breaking it.
Upload a CSV of up to 50 MB, map its columns, and say how consent was collected. The import runs in chunks and picks up where it stopped if anything restarts.
Coming from another marketing tool? Export your audience as a CSV file and map its columns once: the example maps Email Address and First Name, a common export layout.
Upload
A CSV of up to 50 MB, from any tool that exports one.Map the columns
Exactly one email column. The rest become names or typed properties, and everyone can join a static segment or a topic on the way in.Record the basis
Say how these people agreed to hear from you. Contacts imported without a basis are kept, but campaigns and journeys skip them.Read the report
Created, updated, skipped and failed counts, with a CSV of every failed row and the reason.
- An import never re-subscribes a contact who opted out.
- When an address appears twice in one file, the first row wins.
- Suppressed addresses are skipped.
- Imported contacts start no journeys unless you turn that on for the import.
04, Suppression
One suppression list, two kinds of mail.
Bounces and complaints are recorded once and respected by every send, whether it came from your code or a campaign. A marketing unsubscribe is respected just as firmly, but only where it applies, so password resets still arrive.
| When this happens | Campaigns and journeys | Receipts, OTPs and resets |
|---|---|---|
| Permanent bounce | Stopped | Stopped |
| Spam complaint | Stopped | Stopped |
| Unsubscribe from marketing | Stopped | Still sent |
| Opt-out of one topic | Stopped for that topic | Still sent |
05, Consent
ComingConsent that follows the person.
Every opt-in and opt-out is added to a ledger: who, when, for what purpose, under which notice wording, and through which channel. Nothing in it is edited or deleted in place.
- Recorded as it happens: signup forms, double opt-in confirmations, imports, API calls, the preference page, one-click unsubscribes and complaints.
- Campaigns and journeys send only to contacts with a marketing consent on record. That is the default for every team.
For the email your team writes, on the same contacts.
Broadcasts
Visual editor, A/B tests, reports
Automations
Journeys that respond to events
Forms
Signup forms with double opt-in
Bring your list.
Import a CSV or sync from your app. Both land on the same records.