Automations
Updated October 2, 2026
An automation is a flow that runs by itself. A contact does something — responds to a survey, submits a form, redeems a coupon, gets created. Pluspoint then waits, checks conditions, and sends messages, coupons or surveys on your behalf. You build the flow on a canvas of connected steps, save it, and switch it on when it is ready.
Before you start
- Your plan must include campaigns. Without it, the Campaigns area shows an upgrade screen instead of the automations list.
- Creating, editing, enabling and deleting automations need the
campaigns:fullpermission tier (or account ownership). Withcampaigns:restrictedthe editor opens read-only.- Every send step needs a connected outbound channel — SMS, Email, WhatsApp Business or WhatsApp (Beta). See Channels.
- A Send coupon step requires access to the Coupons module and a coupon whose status is Active. A Send survey step requires access to the Surveys module and a survey template with sending enabled.
- Email steps require an email design and WhatsApp Business steps require an approved WhatsApp template — both from the Template library.
Where to find it
Campaigns → Automated, or go to https://app.pluspoint.io/campaigns/automated.
Build an automation
- Select Create automation.
- Name it in the header.
- Click the Trigger node and configure it — see Set the trigger.
- On the edge where you want the new step, select the + button, then pick a step from the Send or Flow group.
- Click each node to open its settings panel and complete it.
- Select Save.
- Back in the automations list, switch Enabled on.
Trigger and Exit cannot be deleted, and an If / then node can only be deleted once both of its paths lead straight to Exit. The back arrow closes the editor without saving.
Warning A saved automation is a draft and sends nothing until you switch Enabled on.
Step types
| Step | Group | What it does | What it needs |
|---|---|---|---|
| Send message | Send | Sends an SMS, WhatsApp or email | A channel, plus a message body or a library template |
| Send coupon | Send | Sends a coupon to the contact | A channel and an Active coupon; on Email and WhatsApp Business, a template with a coupon-link button |
| Send survey | Send | Sends a survey to the contact | A channel and a survey; on Email and WhatsApp Business, a template with a survey-link button |
| Wait | Flow | Pauses before the next step | A duration and a unit |
| If / then | Flow | Splits the path into a Yes branch and a No branch | At least one complete condition |
| Exit | — | Contacts leave the automation here | Nothing — it is always present |
Send coupon is hidden if you do not have Coupons access, and Send survey is hidden without Surveys access.
Set the trigger
Trigger event(s)
The automation fires whenever any of the selected events occurs.
| Event | Fires when |
|---|---|
| Contact created | A contact record is created — by import, manually, from a widget, from a survey, from a form, or through the API |
| Survey responded | A contact submits a survey |
| Survey sent | A survey invitation goes out |
| Conversation resolved | An Inbox conversation is closed |
| Review left | A review attributable to the contact arrives |
| Custom event | A custom event is posted to POST api/public/v2/custom-events |
| Coupon redeemed | The contact redeems a coupon |
| Form submitted | A contact submits a form |
| CoverManager reservation | A reservation arrives from CoverManager. Only listed when the CoverManager integration is connected |
| VTEX order | An order arrives from VTEX. Only listed when the VTEX integration is connected |
| Payment completed | A customer completes a payment through a payment integration such as Square. Only listed when one is connected |
Form submitted fires for every form on the account — there is no per-form picker. A Segment condition under Who can enter does not stand in for one: the segments a form applies stay on the contact afterwards, so a repeat visitor still matches when they submit a different form.
Custom event type (optional)
Appears only when Custom event is one of the selected events. Leave it empty to react to every custom event, including payments recorded by a payment integration, or type an event type to match exactly one. See the API documentation for how to post events.
Once per contact
Off — the default — lets a contact re-enter every time the event fires. On means a contact who has already finished, exited or failed this automation is never enrolled again.
A contact who still has an active enrollment is never enrolled a second time, whichever way this switch is set. It is the only frequency control on the automation itself — there are no quiet hours — so turn it on whenever repeat sends would be unwelcome. A Send survey step carries one more limit of its own. It honours the survey template’s Over-survey protection setting: a contact already invited inside that window has the step skipped.
Who can enter
The condition builder here decides which of the contacts who triggered the automation actually enter it. Leave it empty and every contact who triggers the automation enters. See Build a condition.
Configure a send step
Send message and Send coupon panels ask for, in order:
- Channel — required. Only outgoing, connected SMS, Email, WhatsApp Business and WhatsApp (Beta) channels are offered. Users with the
settings:fulltier also get a Create new channel row. - Coupon — on Send coupon only. Lists coupon templates whose status is Active.
- The content, which depends on the channel:
| Channel | Content field |
|---|---|
| SMS | A Message body. No length limit |
| WhatsApp (Beta) | A Message body, up to 1024 characters, plus an optional image (JPG or PNG, up to 5 MB) |
| An Email design picked from the Template library | |
| WhatsApp Business | A Template picked from the Template library |
A Send survey step asks for the Channel, then the Survey — the list holds survey templates with sending enabled. On Email and WhatsApp Business it also asks for a template, restricted to survey-link designs. On SMS and WhatsApp (Beta) the survey’s own invitation message is used, so there is no message field.
Set a wait
The Wait panel takes a number and a unit: minutes, hours or days.
Switching on an automation that starts with a Wait also enrolls contacts whose trigger event happened within that wait, so they can receive messages soon after you switch it on.
Build a condition
The same builder powers Who can enter on the trigger and the If / then step.
A condition is a list of scenarios. Rows inside one scenario are joined with and; scenarios are joined with or. Add filter adds a row to the current scenario; Add “OR” alternative starts a new scenario.
Each row is a What, an operator, and usually a value.
| What | Operators | Value |
|---|---|---|
| Segment | is any of, is none of | A Segments multi-select. A segment that no longer exists shows as (deleted segment) |
| Email, Phone number, First name, Last name | is, is not, is one of, contains, does not contain, is known, is unknown, is greater than, is less than | A Value field. is one of takes values, comma-separated. is known and is unknown take no value |
| Event field | Same as contact fields | A JSON path such as order.total, plus a value. Only offered when Custom event or Payment completed is one of the trigger events |
| Payment provider, Payment account, Location, Amount paid, Currency, First purchase, Number of purchases | is any of and is none of for provider, account and location; is greater than and is less than for the amount; is, is greater than and is less than for the number of purchases; is and is not for currency; is for first purchase | A picker, a number, a currency code, or Yes / No. Only offered when Payment completed is one of the trigger events |
An incomplete row blocks saving.
Save and enable
Saving validates the whole graph. Steps with problems are highlighted with the reason, and the save is refused until you fix them. Non-obvious rules:
| Issue message | What to do |
|---|---|
| ”Add a message or survey step the trigger leads to” | The trigger must reach at least one Send message or Send survey step |
| ”The selected channel is disconnected or unavailable” | Reconnect the channel, or pick another one |
| ”A filter uses a segment that no longer exists” | Replace the (deleted segment) entry with a live segment |
Turning the switch on revalidates the whole graph strictly — every template must be usable at that moment — and re-checks that your plan includes campaigns. Anything that fails keeps the switch off and shows the reason.
Turning the switch off pauses the automation. In-flight enrollments freeze where they are rather than being dropped, and they resume from the same step when you switch it back on.
Editing and re-saving an automation that is already on keeps it on, clears any failure, and exits any enrollment sitting on a step you deleted.
Structural limits
| Rule | Limit |
|---|---|
| Steps per automation | 100 |
| Triggers per automation | Exactly 1 |
| Trigger events | At least 1 |
| Loops | Not allowed — the flow must run one way |
| Disconnected steps | Not allowed — every step must be reachable from the trigger |
| Actions | The trigger must reach at least one message or survey step |
| Paths out of a step | 1, except an If / then, which has one Yes and one No |
Read the automations list
Enrolled contacts counts entries, not completions, and it never goes down.
An automation that has failed shows the switch off and disabled. Open it, correct the problem and save — saving clears the failure — then switch it on again.
How the engine runs
Enrollment happens within a few minutes of the trigger event. It:
- excludes unsubscribed contacts outright — the opt-out flag is account-wide and is described in One-time campaigns;
- requires the contact to have an address usable by at least one of the automation’s send channels — a phone number for SMS, WhatsApp (Beta) and WhatsApp Business, an email address for Email;
- applies the Who can enter conditions;
- honours Once per contact.
When an account’s campaigns entitlement is blocked, due sends wait and resume once billing is healthy — nothing is lost.
Per-step outcomes:
| Situation | What happens |
|---|---|
| The contact has unsubscribed | The enrollment exits — no further steps run |
| The contact has no address for that step’s channel | The step is skipped and the flow continues |
| A Send survey step’s contact is still inside the survey template’s Over-survey protection window | The step is skipped and the flow continues |
| The WhatsApp number is unreachable or invalid | The step is skipped and the flow continues |
| The coupon is no longer Active, or the channel is misconfigured | The automation is marked failed and its switch goes off |
| The WhatsApp template becomes unusable | The automation is marked failed |
Channel-level failure. When a channel leaves its ready state, every automation with a step on that channel is marked failed. Reconnecting a WhatsApp (Beta) channel un-fails them automatically. On SMS, Email and WhatsApp Business you clear the failure yourself: open each automation and save it.
If the account loses its campaigns entitlement, every enabled automation is set to paused. They are not switched back on automatically when the plan returns — turn them on yourself.
When Meta pauses, disables or rejects a WhatsApp template, the automations that use it are paused automatically.
Where results live
Automations report through the Enrolled contacts column, and each individual send appears on the contact’s Activity timeline as Message sent via {{channel}}.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Create automation is missing and the editor is read-only | You have campaigns:restricted | Ask an admin to raise your Campaigns tier to full. See Users and permissions |
| The Enabled switch will not turn on | The strict re-validation found an unusable template or channel, or the plan check failed | Open the automation, fix the highlighted step, save, then switch it on |
| The switch is off and greyed out | The automation failed | Open it, fix the cause named in the step’s error, and save. Saving clears the failure |
| Send coupon or Send survey is missing from the palette | You do not have Coupons or Surveys module access | Ask an admin to grant the module. See Users and permissions |
| Nobody is being enrolled | The contacts are unsubscribed, fail Who can enter, have no address for any send channel, or already entered once with Once per contact on | Widen the entry conditions, complete the contact records, or turn Once per contact off |
| Enrolled contacts rises but no messages arrive | The step’s channel is not ready | Reconnect the channel in Settings → Channels |
| A message arrived much later than the wait suggested | The step’s channel was unavailable, or the automation was paused in the middle | Check the automation’s failure state and the channel status |
| Every automation on the account went to paused at once | The account lost its campaigns entitlement | Restore the plan, then switch each automation on again |
| ”This segment is used by an automation. Remove it from the automation before deleting.” | A condition still references that segment | Remove it from the automation’s conditions, then delete the segment |
| Deleting a channel is refused with “Cannot proceed: {{amount}} active campaign(s) in progress” | An automation step still points at that channel. Draft, paused and enabled automations all count, and waiting does not clear it | Repoint or remove every step that uses the channel, or delete those automations, then try again |