Skip to content

Actions

Actions are what the automation does once the trigger fires. They live in the Actions tab of the palette, grouped by subject:

The Actions tab of the palette, with Artificial intelligence, Messages, Contacts and Conversations

The rest of the Actions tab: Service and External systems

ActionWhat it does
Analyze with AIreads the conversation, classifies it and extracts data
Send messagewrites in the conversation’s own channel
Send emailsends email to a list
Apply tagadds or removes tags on the contact’s record
Store on contactsaves a value into a field on the record
Tag the conversationadds or removes tags on that exchange
Get the contact’s conversationcontinues the conversation the contact already has, or opens a new one
Assignsets who on the team handles the conversation
Hand to agentswaps the AI agent on the conversation
Resolvecloses the conversation
Call webhooksends data to an external system

The Send message step, with the text and the "Outside the 24h window" band

Writes to the customer through the same channel the conversation is on — there’s no channel to choose, it’s the conversation’s. The text accepts variables, and the Insert variable button only shows the ones valid at that point in the flow.

This step needs a conversation. A flow that starts from a tag or a list doesn’t have one — use Get the contact’s conversation before it.

After 24 hours without a reply from the contact, WhatsApp Official and Instagram Direct only accept messages built from an approved template. The Outside the 24h window band is where you pick which template to use in that case.

With no template chosen, the step simply doesn’t send — and the reason shows up in the run log. That’s not a failure: it’s SquadOS following Meta’s rule instead of attempting a send that would be rejected.

The sending safeguards apply to this step: opt-out, snoozed conversation, customer waiting on a reply, and the cap of 3 automated messages per contact every 24 hours.

The Send email step, with List, Tags, Subject, Format and Body

Unlike Send message, this step doesn’t depend on the conversation: it goes out to a contact list, optionally narrowed by tags.

  • Subject accepts variables.
  • Format chooses between plain text and HTML.
  • Body you write right there, with flow variables, or reuse the content of an email campaign your team already wrote.

Email has no 24-hour window — that rule belongs to Meta’s channels. The other safeguards still apply.

Two similar steps that mark different things, and the difference matters:

Each one takes a list to add and another to remove, in the same pass.

Applying a contact tag here fires the Contact tag trigger on other automations. That’s how flows get chained — and how a loop gets created by accident.

Saves a value into a field on the contact’s record: city, company, source. The field name is fixed, written by you; the value accepts variables from earlier steps.

It’s the natural partner of Analyze with AI: the AI extracts the information from the conversation, this step writes it to the contact.

This step exists for one specific reason: flows that start from a contact have no conversation. Contact tag, list membership and audience campaigns identify a person, not an exchange — and steps like Send message, Assign or Resolve need one.

Get the contact’s conversation solves that: it looks for the conversation that contact already has in the chosen inbox and, if there isn’t one, opens a new one. From that point on, every following step has a conversation — including conversation variables.

You pick the inbox and, optionally, a title for the conversation. Without a title, SquadOS picks one.

All three deal with who’s taking care of the conversation:

  • Assign sets the teammate responsible. Choosing “Nobody” returns the conversation to the queue.
  • Hand to agent swaps the AI agent handling the conversation. The Instruction for the agent field is a note that travels with the handover — the customer never sees this text.
  • Resolve closes the conversation. You choose whether it goes back to AI or stays with the human. Conversation states are explained in Conversation states.

The Call webhook step, with URL, method, headers and request body

Sends data to an external system: a CRM, a spreadsheet, a flow in your own backend.

  • URL — the address that receives the call; accepts variables.
  • Method — GET, POST, PUT, PATCH or DELETE. When in doubt, POST.
  • Headers — key/value pairs, for an auth token, for example.
  • Request body — what gets sent, with variables from earlier steps.

Not every address is accepted. Internal network addresses and the project’s own domain are rejected, for security. If SquadOS deactivates the automation with the reason “the address configured to receive the data isn’t allowed”, that’s what happened.

The End step lives in the Rules tab, not here — it doesn’t do anything in the world, it just finishes the flow on that branch. It’s described in Flow rules.