Automatic audience from transactional emails
Whoever receives your transactional emails is kept in the Audience as an unconfirmed contact, with no marketing until you confirm.
What it's for
Whoever receives a transactional email from you (a receipt, an access code, a delivery notice) is kept in the Audience automatically, as an Unconfirmed contact. This way your marketing list starts to build itself, with no spreadsheet to import. These contacts only start receiving broadcasts and automations after the team owner or an admin confirms that they accept emails.
When to use it: To understand where contacts you did not add came from, decide when to confirm them, keep an eye on the plan's contact limit or turn the capture off.
#How it works
After Postal sends a transactional email, the addresses of its recipients (To and Cc) are kept in the team's Audience. This happens in the background: it does not delay the send and, if something goes wrong in the capture, the email goes out all the same. It applies to teams that have not turned the capture off (see Turning off the capture).
Which emails keep the recipient
| Email type | Keeps the recipient? |
|---|---|
| Sent through the API | The emails of POST /emails and POST /emails/batch: Yes. |
| Sent over SMTP | Emails sent over SMTP: Yes. |
| Supabase login emails | The authentication emails of Supabase connections: Yes. |
| Campaigns and automations | No. They are already marketing and only go out to confirmed contacts. |
| Tests and test emails | No. Template and broadcast tests, and sends to Postal's test addresses, keep no one. |
| Forwards and inbox replies | No. |
| Blind copy (Bcc) | No. Only the To and Cc addresses are kept. |
What the capture does and does not do
- It creates the contact with the email address and, when the recipient comes with a name (
Ana Souza <[email protected]>), with the first and last name. - It never changes a contact that already exists: consent, topics, unsubscribe and data stay as they are. It also never keeps an address from the suppression list.
- An address is checked about once a week: a login code sent a thousand times costs a single check.
- The contacts that are kept do not send the
contact.createdwebhook, do not start automations and are not sent to a connected CRM. Teams that already have webhooks or a CRM see no new traffic. - Emails that were already queued before the feature went live keep no one.
Default segment
On each team's first capture, if the plan includes dynamic segments and still has room for one more, Postal creates the dynamic segment Transactional sends, with all the contacts that came from this capture. It is created only once, in the language of the team owner. If you delete it, it does not come back; the contacts stay in the Audience and you can still filter them by Origin.
#Unconfirmed contacts
A contact kept from transactional emails is in the Audience, but has not yet confirmed that they want to receive marketing. That is why they stay out of every marketing send until you confirm.
How they show up in the list
- On the Contacts tab, the email gets the Unconfirmed badge. On hover: "Came from a transactional email. It receives no broadcasts or automations until you confirm it."
- The Filters button has two new filters: Confirmation (All, Unconfirmed or Confirmed) and Origin (All origins or Transactional emails).
- In the filters of a dynamic segment, the Contact type has the Marketing confirmation and Origin fields.
What an unconfirmed contact receives
| What | What happens |
|---|---|
| Counts toward the contact limit | Yes. They are a contact like any other: they show up in Contacts, in the totals and in segments, and take up room in the plan. |
| Campaigns | No. They stay out of the send list and the recipient count, before and after you send. |
| Automations | No. They do not start automations, and the send email step skips anyone who is no longer confirmed. |
| Transactional emails | Nothing changes. Your API calls and your SMTP sends go on as always. |
Other ways to confirm a contact
Besides the bulk confirmation, a contact becomes confirmed when you or the person themselves act explicitly: when you re-import the address from a CSV, when you create or update the contact through the API (or through an event of theirs), or when the person signs up through a form. A capture never downgrades a contact that is already confirmed.
#Confirm they accept emails
Where to find it: Marketing › Audience. Address: app.postal.so/audience.
Only the owner and the admins can confirm. For the other members the button does not show up, and the card says: Only the team owner or an admin can confirm.
The card at the top of Contacts
While there are contacts waiting, the Contacts tab shows a card titled N contacts waiting for your confirmation (or About N contacts waiting for your confirmation, when the count is an estimate). It explains that these addresses came from your transactional emails, such as receipts and access codes, and that the responsibility for the consent is yours. After the first confirmation, a line reads Last confirmation: N contacts, by name, on date.
| Button | What it does |
|---|---|
| Confirm all | Opens the confirmation window for all unconfirmed contacts. It stays disabled while another bulk operation is running. |
| View the list | Applies the Confirmation › Unconfirmed filter, so you can see who they are before deciding. It goes away when the filter is already on. |
Step by step
- To confirm everyone at once, click Confirm all on the card.
- To confirm only some, click View the list, select the contacts (or use Select all N contacts that match these filters) and, in the bulk actions bar, open More actions › Confirm they accept emails.
- In the Confirm they accept emails window, read the notice: "These contacts were kept from your transactional emails and do not receive broadcasts or automations yet. Once confirmed, they do."
- Tick the declaration: I declare that these contacts agreed to receive marketing emails from my company and that I am responsible for that consent. Without it, the button stays disabled.
- Click Confirm N contacts. The task card shows Confirming the contacts… and, at the end, Contacts confirmed with the summary (for example, 1,150 changed · 50 skipped).
Warning
Confirm only if the people really agreed to receive marketing emails from your company (for example, your signup says so and asks for their agreement, as under the GDPR). The responsibility for that consent is yours; Postal only records your declaration.
What happens when you confirm
- It only changes those who were still Unconfirmed. Anyone who was already confirmed is skipped and keeps the date of their confirmation. Repeating the operation is safe.
- From then on, the contacts receive broadcasts and automations. They keep the Transactional emails origin.
- The confirmation does not send the
contact.updatedwebhook or start automations. - It covers up to 2,000,000 contacts per operation, within the limit of one bulk operation at a time per team, with progress and Cancel, like the other bulk actions.
- Every confirmation is recorded: who confirmed, when, how many contacts, the selection, the text of the declaration (with its version) and the IP address.
Contacts you do not want
Anyone you do not want on your list can stay as they are (they receive no marketing) or be deleted: filter by Confirmation › Unconfirmed, select them and use Delete. This also frees up room in the contact limit.
See also: Bulk actions on contacts · Bulk actions (API).
#Contact limit and warnings
The capture never goes past the marketing plan's contact limit, even with the Keep adding contacts above the plan limit switch on in Billing: overage bills contacts you added on purpose, and the automatic capture bills no one. When the Audience reaches the limit, the capture pauses quietly (no error, and without getting in the way of your sends) and resumes by itself once there is room. Verification code emails are kept too, and the plan limit applies to them the same way: it is the ceiling.
The limit is the contact limit that applies to the team: the plan's and, when the plan offers the Contacts add-on and the team has packs, the plan's plus the packs'. Adding a pack raises the limit and, if the capture was paused, it resumes by itself.
The warning in the Audience
| When | What shows up |
|---|---|
| From 80% | A banner at the top of the Audience says Your Audience reached 80% of the limit. (the percentage follows your usage), with You have 8,000 of 10,000 contacts on your plan. and the notice that, at 100%, new recipients of transactional emails stop being added. |
| At 100% | The banner changes to Your Audience reached the plan limit. and explains that new recipients of transactional emails are not being added to the Audience until you free up room or change plans. |
In both cases, the View plans link takes you to the Billing tab. Teams with no contact limit do not see the banner. When the team has Contacts add-on packs, the banner adds The limit includes N contacts from add-on packs.
The warning emails
When the Audience reaches 80%, 90% and 100% of the limit, the owner and the admins who have usage alerts turned on get an email with the subject The team name audience reached 80% of its contact limit. It shows how many contacts the team has, what happens from then on and three paths: see the Audience, clean it up (the list of unconfirmed contacts) or see the plan options.
- Each threshold is sent once per limit value. If the limit changes (with a plan change or the Contacts add-on), the warnings start over.
- A threshold applies again when the Audience drops 3 percentage points below it (for example, after a cleanup), so that teams hovering around 80% do not get the same email over and over.
- If the Audience jumps past several thresholds at once, only the highest one is sent.
How to free up room
- Delete the contacts you do not want: filter by Confirmation › Unconfirmed and use Delete.
- Change plans in Billing, add packs of the Contacts add-on when your plan offers it, or turn on the contacts-above-the-limit switch (it only applies to contacts you add; the capture stays stopped at the plan limit).
#Turning off the capture
Where to find it: Settings › Team. Address: app.postal.so/settings/team.
On the Team tab, a card has the Keep recipients of transactional emails in the Audience switch. Its description reads: People who receive your transactional emails enter the Audience as unconfirmed contacts, and receive no broadcasts or automations until you confirm them. Your plan's contact limit applies. The switch comes on in every team.
- Only the owner and the admins can change the switch. For the other members it shows as disabled: Only the team owner or an admin can change this.
- With it off, no new recipient is kept. The contacts that were already kept stay in the Audience, still Unconfirmed.
- Emails sent while the switch is off keep no one, not even after you turn it back on.
#Through the API
Everything the dashboard does here is also in the API:
| What | Where |
|---|---|
| Contact | The marketing_consent (confirmed or unconfirmed), origin (transactional or null) and consent_confirmed_at fields, in Contacts. |
| Filters | consent=confirmed|unconfirmed and origin=transactional on GET /contacts, in the selections of bulk actions and in exports. |
| Summary | GET /contacts/consent-summary: how many contacts are waiting for confirmation, how many are confirmed and the last confirmation. |
| Confirm | POST /contacts/bulk with action: "confirm_consent" and params.accept_responsibility: true. Only the owner and the admins, and not with an API key. |
| Limit | The audience block of GET /usage: contacts used, limit, percentage and whether the capture is paused. |
| Capture switch | The team switch (capture_transactional_contacts) can only be changed from the dashboard, under Settings › Team. |
See also: Audience · Campaigns · Email marketing: consent · Contacts (API).