Settingsintermediate

Actions catalogue

All 28 actions an automation can run, grouped by category — communication, notifications and chat, conversation lifecycle, contact, cases and tasks, external (webhook), and flow control (wait).

6 min read

Actions catalogue

Actions are the verbs of an automation. Each branch has an ordered list of actions that runs top to bottom when the branch matches, and a failing action does not stop the ones after it. This reference covers all 28 action types the builder offers, grouped by category. (Three more — snooze, update contact fields and create a side conversation — exist in the model but are marked coming soon and are filtered out of the picker.)

Communication

  • Send Auto-Reply Message — Reply on the conversation’s own channel — email, SMS, WhatsApp, Messenger, web chat — using inline content and merge tags
  • Send Email Template — Render and send a designed template from Email Studio, with language selection that can match the inbox or be set explicitly
  • Send Email to External Address — Send an email to an arbitrary address — useful for internal alerts or notifying a third party
  • Send CSAT Survey — Trigger a CSAT survey delivery
  • Send Trustpilot review invitation — Trigger a Trustpilot review invitation for the conversation/contact using the tenant’s Trustpilot AFS configuration. Delivery is handled through Trustpilot rather than by a direct Trustpilot API call

Both Send CSAT Survey and Send Trustpilot review invitation take no configuration in the rule itself — their content and delivery settings live in Settings → CSAT Surveys and Settings → Trustpilot. Use Send CSAT Survey when you want Atender to collect satisfaction feedback directly, and Send Trustpilot review invitation when you want the rule to trigger a Trustpilot review workflow instead. Trustpilot invitations require Trustpilot settings to be configured first.

For email conversations, Send Auto-Reply Message uses the same auto-reply loop guard as Send Email Template and Send Email to External Address. Atender skips auto-generated messages, out-of-office replies, delivery status notifications, do-not-reply style bodies, and recipients that are over the hourly automation auto-reply cap. When a send is suppressed by this guard, Atender does not create a phantom sent message in the conversation timeline.

Notifications and chat

  • Send Notification to Agent — In-app notification — to all agents, to the assigned agent, or to one named agent
  • Send Slack Message or DM — Post to a Slack channel, or send a direct message to an Atender user through their connected Slack account
  • Add Internal Note/Comment — Append an internal note to the conversation (not visible to the customer)

Slack messages and DMs

Use Send Slack Message or DM when an automation should alert people in Slack. The action can post to a Slack channel, or send DMs to Atender users whose Slack accounts are connected.

For DMs, choose recipients from the conversation context: the assigned agent, the people a comment mentions, or a named person. Recipient merge tags render separately for each DM recipient, so {{recipient.name}}, {{recipient.firstName}} and {{recipient.email}} use the details of the person receiving that DM. They resolve only on the DM path — in a channel post they have no value to fill in.

Conversation lifecycle

  • Assign Conversation to Agent/Team — Set the assigned agent, team, or both
  • Update Conversation Status — Move the conversation between statuses (active, snoozed, done, archived)
  • Resolve Conversation (Mark as Done) — Mark Done
  • Reopen Conversation — Pull a Done conversation back into Active
  • Add Tag — Apply a tag. The tag must already exist — rules cannot create tags
  • Remove Tag — Strip a tag
  • Set SLA Policy — Attach an SLA policy to the conversation. The policies themselves are configured in Settings → SLA Policies
  • Hand over to a human (turn off Agent Stack) — Route the conversation to a team and turn off the Agent Stack for it. This is one-way — the Agent Stack cannot be re-enabled on that conversation afterwards

Contact

  • Set Customer Tier — Set the contact’s customer tier. Tiers are configured in CRM Settings → Customer Tiers first

Cases and tasks

  • Assign Case to Agent/Team — Owner / team
  • Change Case Stage — Move through the case workflow
  • Close Case — Mark closed
  • Reopen Case — Pull a closed case back open
  • Set Case Priority — High / medium / low
  • Add Tag to Case — Tag at the case level
  • Remove Tag from Case — Strip a case tag
  • Link Conversation to Case — Attach the triggering conversation to a case
  • Create Task — Create a task with a title and description

Three of these do nothing yet. Create Task, Add Tag to Case and Remove Tag from Case are selectable in the action picker, and a rule using them reports success, but the engine logs “not yet implemented” and takes no action. Case tagging in particular has no column to write to. Don’t build a workflow that depends on them.

Eight of the case actions have no configuration form. The builder renders no fields for the Cases group, so values such as the target stage, the priority or the assignee cannot be set from the manual builder even where the server would read them.

External

  • Send Webhook to External Service — POST / GET / PUT / PATCH / DELETE to an arbitrary URL with templated headers and body — the universal escape hatch for systems Atender doesn’t natively integrate with

Webhook action results are visible in the automation run’s Run History. Open the run, check its status, and select the action chip to see whether the webhook succeeded or failed; retained failure messages stay attached there for debugging. If you need low-level request and response payloads, inspect the separate webhook action detail view rather than assuming Run History contains the full payload.

Flow control

  • Wait/Delay for X Time — Pause the sequence for a delay before running the next action. Set a number and a unit — minutes, hours or days. Use for “send three hours after resolution” patterns.

Send Email Template — the most-used integration

Most workflows that send a templated email use Send Email Template rather than raw Send Auto-Reply Message. The action picks a template by ID, optionally a specific version, and resolves the language one of two ways:

  • Match the inbox language — pick the language attached to the email channel that the conversation came in on, falling back to English if that language isn’t translated.
  • Pick a specific language — explicitly set the language code.

The rendered HTML carries an X-Email-Template header so you can see which template produced any given message in delivery logs. Merge tags inside the template ({{contact.name}}, {{conversation.subject}}, custom fields) fill at send time from the conversation context.

Webhook templating

The webhook body is entirely yours — Atender sends what you write, with no payload of its own wrapped around it. The URL, the header values and the body all support the same merge-tag syntax as messages. A typical payload:

{
  "conversation_id": "{{conversation.id}}",
  "subject": "{{conversation.subject}}",
  "customer": "{{contact.name}}",
  "customer_email": "{{contact.email}}",
  "amount": "{{custom.refund_amount}}"
}

Use the merge-tag picker rather than typing tags from memory. Three things to know before you rely on one:

  • There are no {{case.*}} or {{tenant.*}} merge tags. Cases are available to automations as conditions and as actions, not as merge tags, and the tenant slug is never exposed as one. A tag that does not exist is not an error — it ships to your endpoint as the literal text {{case.id}}.
  • Custom fields are {{custom.<fieldKey>}}, using the field’s key. There is no custom_fields path.
  • {{links.csat_survey_url}} and {{links.unsubscribe_url}} do not resolve in an automation. They are offered by pickers because CSAT email rendering supports them, but the automation engine has no substitution for them, so in a rule they ship as literal text. Send a survey with the Send CSAT Survey action instead of hand-building a link.
  • Content-Type: application/json is added for you on every non-GET request, and a handful of hop-by-hop and forwarding headers are stripped if you set them.
  • In a webhook — URL, headers or body — {{conversation.id}} resolves to the raw UUID rather than the human-readable conversation ID, because the receiving system needs the stable key.

A non-2xx response or a transport error fails the action and the run is retried up to three times with exponential backoff; actions that already completed are not re-run. The default timeout is 30 seconds, configurable from 1 to 120. URLs pointing at localhost, link-local or private address ranges are refused.

The webhook action records the call result in Run History with the run status, action chip, and any retained failure message — useful for debugging downstream failures.

Wait — and why some recipes need it

The Wait/Delay for X Time action pauses the sequence for a configurable delay. Atender resumes the sequence at the next action when the delay expires. Use for:

  • Three-hour gap before sending a CSAT survey
  • 14-day gap before archiving inactive Done conversations
  • 24-hour gap before sending a follow-up “anything else?” template

Waits are persisted; if Atender is restarted mid-wait, the action resumes correctly.

Escalation side-conversation safety

On escalation side conversations, Atender allows internal actions such as Add Tag, Remove Tag, assignment, priority and status changes, notes, in-app notifications, and case updates. Atender skips external or outbound actions in that context. The blocked set is exactly six: Send Auto-Reply Message, Send Email to External Address, Send Email Template, Send CSAT Survey, Send Slack Message or DM and Send Webhook to External Service.

Send Trustpilot review invitation is not in that set — it still runs on an escalation side conversation. If that is not what you want, gate it on a condition rather than relying on the escalation guard.

This protects against accidental outbound delivery while preserving internal workflow actions and reporting tags.

See also

Tags

Reference