Automation triggers
A trigger defines when and where an automation starts. It must be the first step on each path; a flow with no trigger or a trigger with no outgoing path cannot be saved.
The palette’s Triggers tab contains six types:
| Section | Trigger | Starts when | Context provided to the path |
|---|---|---|---|
| Conversations | Conversation event | one of the seven selected events occurs | conversation and contact |
| Conversations | No reply on conversation | an eligible conversation exceeds its silence threshold | conversation and contact |
| Contacts | Contact tag | a tag is added or removed | contact |
| Contacts | Contact added to list | membership changes to subscribed | contact and list data |
| Schedule | Schedule | a one-time or recurring occurrence arrives | timing data; no contact or conversation |
| Campaigns | Audience | it is time to process a list | one contact per run; no conversation |
Do not confuse these entry points with channel triggers, which create the inboxes through which messages reach SquadOS.
Conversation event
Section titled “Conversation event”Select one or more events. Each matching occurrence may start a run:
| UI event | What it represents |
|---|---|
| is created | the conversation record was created |
| is assigned to someone | a teammate became responsible |
| is transferred | the conversation changed hands |
| is handed to an agent | an AI agent took over |
| is resolved | the conversation was closed |
| is reopened | a resolved conversation became active again |
| has AI turned on or off | its AI handling mode changed |
Filters are evaluated against the state available at the time of the event. For example, a tag applied after creation does not cause is created to be evaluated again.
“Once per conversation” is not a property of this trigger: it is the automation’s default Re-entry mode. Under Always, each new matching event may create another run and consume credits again in AI steps. See Creating an automation.
No reply on conversation
Section titled “No reply on conversation”Use this trigger for follow-ups. It considers active external conversations where:
- the last message came from your team and the contact has not replied;
- the time since that message exceeds Time without a reply;
- the conversation is neither deleted nor snoozed until a future time;
- the contact has not opted out of outbound communication;
- there is no other active run of this automation for the same conversation;
- every configured filter is true.
The initial visible value is 2 hours. The scan runs in cycles of about 15 minutes, so a run is not guaranteed to begin at the exact second the threshold is reached.
Under Safeguards, you can enable:
- Give up after a while — sets the maximum age of the silence. With a 2-hour minimum and a 7-day maximum, conversations between those limits qualify; older history stays out.
- Wait before entering again — prevents re-entry during the interval measured from the end of the previous run, including a failed or canceled one.
Both safeguards start off. The trigger still prevents two simultaneous runs on the same conversation and starts a new cycle when the team speaks again and the contact goes quiet again.
Conversation filters
Section titled “Conversation filters”Conversation event and No reply on conversation share Add filter. The six criteria offered for new conditions are:
| Criterion | What it checks |
|---|---|
| Inbox | the current inbox |
| Conversation owner | a teammate, an AI agent, or Nobody; it considers who is currently in control |
| Conversation tag | tags on that specific conversation |
| Contact tag | record-level tags shared across conversations |
| Channel | the API, Instagram, Telegram, or WhatsApp family |
| Conversation AI | On or Off |
Combination rules are:
- different conditions are joined by AND: every one must be true;
- within a positive condition, multiple values are joined by OR;
- a negative condition excludes any selected item;
- each criterion may appear only once;
- a condition with no value prevents saving;
- with no filters, any conversation that satisfies the trigger’s other rules is eligible.
Older automations may display the legacy Agent or Assignee criteria. They are still read, but new conditions use Conversation owner, which combines people and agents without mistaking a previous agent for the current owner.
Contact tag
Section titled “Contact tag”Choose Added or Removed and, optionally, one or more tags. With no tag selected, the trigger applies to any tag for that operation.
A change made by the Apply tag step counts too. This lets automations be chained, but review Re-entry before building flows that add, remove, and reapply trigger tags: under Always, a chain can fire again and repeatedly consume credits.
This trigger provides contact, but not conversation. Before using Send message, Assign, Resolve, Hand off to agent, or Tag conversation, add Get the contact’s conversation and choose the correct inbox.
Contact added to list
Section titled “Contact added to list”This trigger fires when list membership enters the subscribed state: on a new membership or an update from another state. A contact who was already subscribed and remains subscribed does not fire it again.
You may select a specific list or leave any list. Manual additions, imports, forms, and the public Lists API pass through the same event when they produce valid membership.
In addition to contact, the path receives:
{{trigger.payload.list_name}}— list name;{{trigger.payload.list_id}}— list identifier;{{trigger.payload.consent_source}}— recorded consent source.
Like Contact tag, this trigger does not provide a conversation. Use Get the contact’s conversation before steps that require a customer service thread.
Schedule
Section titled “Schedule”Schedule runs the same path at defined times without selecting an audience. The node starts as recurring, every day at 9:00 AM, and supports:
- Once — a future date and time;
- every N minutes or hours, with a minimum interval of 15 minutes;
- every day, week, or month at the selected time;
- monthly recurrence on days 1 through 31; a month without the selected day uses its last day.
The clock keeps creating occurrences without waiting for the previous flow to finish. A short frequency may therefore keep several runs active at the same time if the path contains a long wait. Re-entry mode does not deduplicate schedule occurrences.
This trigger provides neither a contact nor a conversation. To act on a person, add Pick contact; for customer service steps, follow it with Get the contact’s conversation.
The runtime provides {{trigger.payload.scheduled_for}} (planned time) and {{trigger.payload.fired_at}} (time when the engine began the occurrence). You can type them manually in fields that accept variables.
Audience
Section titled “Audience”Audience processes the contacts in a list at the scheduled time. Unlike Schedule, it creates one child run for each eligible contact.
- A list is required.
- Tags are optional; with several selected, the contact only needs one of them.
- The audience is read when each campaign run begins, not when the automation is configured.
- Only
subscribedmemberships, contacts without an outbound opt-out, and records that were not absorbed by a merge are included. - Large audiences are processed in batches of up to 500 contacts.
Its schedule supports the same modes and 15-minute minimum as Schedule. For a recurring audience, the next campaign is scheduled after the current fan-out finishes. The browser time-zone issue described above also applies to Once.
Each child run receives contact, but not conversation. An email send can work with a contact/list; customer service channel steps require Get the contact’s conversation.
More than one trigger
Section titled “More than one trigger”Different types may start different paths and later converge. At a convergence, a step can only use symbols available on every incoming path. For example, a conversation path and a contact path lose conversation at the convergence until all paths have passed through Get the contact’s conversation. See Variables.
Triggers of the same type have restrictions that prevent two runs for the same occurrence:
- two Conversation event triggers may coexist when they do not share events. If they share an event and either uses the current filter format, saving rejects them even when the conditions appear different;
- two Contact tag triggers need operations or tag sets that do not intersect; “any tag” overlaps every set;
- two Contact added to list triggers must point to different specific lists; “any list” overlaps every list;
- there may be only one No reply on conversation, one Schedule, and one Audience in an automation.
Every trigger needs an outgoing path. When testing an automation with multiple triggers, select Which trigger to simulate and provide a matching conversation, contact, or payload. Tests ignore re-entry, simulate send actions, but run AI for real and may consume credits.
Trigger checklist
Section titled “Trigger checklist”- The type matches the actual event, and Schedule was not confused with Audience.
- Required events, minimum time, list, and date are filled in.
- Filters use the state that will exist when the trigger fires.
- The context provided by the trigger supports every following step.
- Re-entry will not turn repeated events into unwanted runs.
- Schedules and audiences were checked in the correct time zone and at a safe frequency.
- Each trigger was tested through its own path and its result was reviewed under Activity.