Sign in Create account
Dashboard guide

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 typeKeeps the recipient?
Sent through the APIThe emails of POST /emails and POST /emails/batch: Yes.
Sent over SMTPEmails sent over SMTP: Yes.
Supabase login emailsThe authentication emails of Supabase connections: Yes.
Campaigns and automationsNo. They are already marketing and only go out to confirmed contacts.
Tests and test emailsNo. Template and broadcast tests, and sends to Postal's test addresses, keep no one.
Forwards and inbox repliesNo.
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.created webhook, 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

WhatWhat happens
Counts toward the contact limitYes. 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.
CampaignsNo. They stay out of the send list and the recipient count, before and after you send.
AutomationsNo. They do not start automations, and the send email step skips anyone who is no longer confirmed.
Transactional emailsNothing 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.

ButtonWhat it does
Confirm allOpens the confirmation window for all unconfirmed contacts. It stays disabled while another bulk operation is running.
View the listApplies 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

  1. To confirm everyone at once, click Confirm all on the card.
  2. 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.
  3. 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."
  4. 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.
  5. 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.updated webhook 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

WhenWhat 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:

WhatWhere
ContactThe marketing_consent (confirmed or unconfirmed), origin (transactional or null) and consent_confirmed_at fields, in Contacts.
Filtersconsent=confirmed|unconfirmed and origin=transactional on GET /contacts, in the selections of bulk actions and in exports.
SummaryGET /contacts/consent-summary: how many contacts are waiting for confirmation, how many are confirmed and the last confirmation.
ConfirmPOST /contacts/bulk with action: "confirm_consent" and params.accept_responsibility: true. Only the owner and the admins, and not with an API key.
LimitThe audience block of GET /usage: contacts used, limit, percentage and whether the capture is paused.
Capture switchThe team switch (capture_transactional_contacts) can only be changed from the dashboard, under Settings › Team.

See also: Audience · Campaigns · Email marketing: consent · Contacts (API).