Automations
Flows that send emails and perform actions when something happens: the list, the builder and the runs.
What it's for
An automation is a flow that runs on its own for each contact: something happens (a signup, an event from your app, a tag), the automation waits, sends emails, decides the next step and updates the contact. The flow is designed visually, in chained steps.
When to use: For welcome emails, abandoned cart, onboarding, a reminder for people who didn't open an email, and any sequence that depends on the person's behavior.
#Automations list
Where to find it: Marketing › Automations. Address: app.postal.so/automations.
At the top of the screen, next to the description, the dashboard shows how many runs your plan has used this month (N of L runs in your plan this month). Each contact that enters an automation counts as one run.
| Item | What it does |
|---|---|
| Create automation | Asks for the Name and Starts when (the trigger), creates the draft and opens the builder. You build the steps next. |
| Search automations | Searches by name. |
| Filters › Status | Draft, Active or Paused. |
| Column | What it shows |
|---|---|
| Name | Opens the builder. |
| Status | Draft (not activated yet), Active (receives contacts) or Paused. A label below shows the next scheduled activation or pause, if there is one. |
| Trigger | A summary of what starts the automation (for example, Event order.paid). |
| Runs this month | How many contacts entered this month. |
| In progress | How many are in the middle of the flow right now. |
| Updated | The last change. |
| Row menu | Edit; Pause (if active); Activate / Resume (if not active); Schedule activation; Delete (runs in progress stop and the history is deleted). |
See also: Automations (API) · Events.
#Automation builder
Where to find it: Marketing › Automations, by opening an automation. Address: app.postal.so/automations.
Header
| Item | What it does |
|---|---|
| Name | Editable right in the title. Next to it: the status, Unsaved changes, the Version N and N runs this month. |
| Assistant | Opens a chat with the AI (when available): describe what the automation should do ("wait 2 days and send the welcome template") and it builds or adjusts the flow in the draft. It shows how many changes it applied, with Undo; if it needs a property, segment or topic that doesn't exist, it asks whether it can Create it or Ignore it. Nothing takes effect until you save. |
| Validate | Checks the flow and lists what still needs fixing before you activate (N things to fix before activating); clicking an item takes you to the step. If everything is fine: All good: the automation can be activated. |
| Save | Saves the draft (Ctrl/Cmd + S). |
| Schedule activation | Sets a time for the automation to turn on and/or another for it to pause by itself. To activate, it must be complete, and you have to save first. |
| Activate / Pause / Resume | Activate publishes the automation and it starts receiving contacts. Pause stops new runs; the ones in progress wait until you resume. |
Warning
On an active automation, saving publishes a new version for the next runs. Runs that already started stay on the version they entered with.
The flow
The Flow tab shows a Trigger node at the top and the steps in sequence. Click a node to edit it in the panel on the right (on narrow screens, it opens in a sheet). The Add a step here button between nodes inserts a step. Nodes with problems get the Needs fixes warning. Conditions and activity waits open two paths, Yes and No, and each path ends in End.
Trigger
The trigger says Starts when:
| Trigger | When it starts |
|---|---|
| Event received | Your app sent an event (Events). Enter the Event name (the same name sent to POST /events) and, if you want, Property filters (it only starts when all of them match; use dots for nested properties, like customer.plan). |
| Contact created | A new contact was created through the API, the dashboard, a form or an event. CSV imports don't trigger it (unless you turn that option on in the import). |
| Contact property changed | A field, a property or the contact's tags changed. You can filter by the original value (From) and the new one (To). |
| Added to a segment / Removed from a segment | Choose the segment (static or dynamic). |
| Form submitted | Choose the form. |
| Subscribed to a topic / Unsubscribed from a topic | Choose the topic. It fires when the contact's own choice changes. |
| Tag added | Choose the tag. |
| Opened an email / Clicked an email | Choose which email: any, a template, a broadcast or the ones sent by an automation. For clicks, you can require the link to contain a piece of text. Each email starts the automation once per contact. |
Under Re-entry, decide whether a contact who already went through the automation can enter again: Once per contact or Every time the trigger happens.
Contacts that are Unconfirmed, kept from transactional emails, do not start automations, and the send email step skips anyone who is no longer confirmed.
Steps
| Step | What it does |
|---|---|
| Wait | Pauses For a while (amount and unit: minutes, hours, days or weeks; up to 365 days) or Until a day and time (a time, the Days of the week and the Time zone; with no day selected, it uses the next day the time comes around). |
| Wait until… | Waits for the contact to open, click (any link or a specific link) or reply to an email sent earlier in the same automation, with a deadline (At most). It goes down Yes if it happened in time and No if the deadline ran out. To detect replies, turn on Detect replies in the email step. |
| Send email | Choose a Template (published), the From, the Subject (empty uses the template's; accepts {{contact.first_name}} and {{event.propriedade}}), Reply to, the Template variables and Detect replies. EMAIL, FIRST_NAME, LAST_NAME, POSTAL_UNSUBSCRIBE_URL, the contact properties and the event properties come already filled in. It respects the suppression list and unsubscribes. |
| Condition | Splits the flow into Yes and No according to: a contact field or property, an event property, whether the contact is in a segment, subscribed to a topic, has a tag, or opened or clicked an email sent earlier (put a wait before it, to give people time to open). |
| Update contact | Changes the contact: set a field or property, add to or remove from a segment, add or remove a tag, subscribe to or unsubscribe from a topic, unsubscribe from all broadcasts or resubscribe. |
| Webhook | Notifies your system with a signed POST (HTTPS) containing the contact and the event. The dashboard shows the Signing secret, following the standard of Postal webhooks. Responses outside 2xx are retried 3 times. |
| A/B experiment | Splits contacts between variants by percentages, with an optional control group and a conversion event. See below. |
| Exit | Ends the automation for the contact. Use it to close one of the paths of a condition. |
An automation can have up to 100 steps. Deleting a condition, an activity wait or an experiment also deletes the steps in the paths inside it (the dashboard asks you to confirm).
A/B experiments
The A/B experiment compares subjects, content or waits. Each contact always lands in the same variant. To change the variants or the percentages (which must add up to 100%), pause the automation. After contacts go through, the Results table shows, per variant: Entered, Emails, Opens, Clicks, Replies and Conversions. Declare winner sends all new contacts from then on to the chosen variant (those who already went through stay in the one they got). A/B tests depend on your plan; without it, the step shows Upgrade.
Tip
Before activating: publish the templates you use, verify the sender's domain and use Validate. The automation can only be activated when it is complete.
See also: Automation definition (API) · Experiments (API) · Templates.
#Runs
Where to find it: Marketing › Automations, by opening an automation › Runs tab. Address: app.postal.so/automations.
Each contact that enters an automation creates a run, with the history of each step. The Runs tab lists them all, so you can see who is where and investigate what happened.
| Item | What it does |
|---|---|
| Filters › Status | Running, Waiting (in a wait), Completed, Failed, Canceled or Not started (the contact didn't enter, for example because they already went through a one-time automation). |
| Column | What it shows |
|---|---|
| Contact | The contact's email (or Contact deleted). |
| Status | The state of the run. |
| Trigger | What made the contact enter. |
| Next action | What happens next and when, for the ones that are waiting. |
| Start | When it started. |
Clicking a run opens a panel with the contact, the automation version and the start time, the View contact link, the Cancel run button (for runs in progress) and the Steps run list. Each step has its status (Running, Waiting, Completed, Failed or Skipped) and the details: Email sent with the subject, Waiting until ..., the Result: Yes/No of a condition, whether a wait ended By the event or By the timeout, the Variant of an experiment and the number of attempts, when there was a retry.
Tip
A run with Failed is usually an unpublished template, an unverified sender domain or an exhausted sending quota. The step that failed shows the reason.
See also: Runs (API).