Workflow Actions
Overview
Actions define what happens when a workflow's conditions are met. You can add multiple actions to a single workflow, and they will execute in order.
Available action types
Assign team
Assigns the ticket to a team. It never changes who the assigned person is. There are two ways to pick the team:
- This team: always the team you select.
- Let AI choose: AI reads the customer's message and assigns the team that fits best.
Assign person
Assigns the ticket to a person. It never changes the assigned team. There are four ways to pick the person:
- This person: always the person you select.
- Least busy in a team: the member of the team you select with the fewest open tickets. This helps distribute workload evenly.
- Random in a team: a randomly picked member of the team you select.
- Let AI choose: AI reads the customer's message and assigns the person who fits best.
With least busy and random, the team is only where the person comes from. To assign the team as well, add an Assign team action to the same workflow.
Letting AI choose the team or person
With "Let AI choose", you add the teams, or the people, AI may choose between, up to 20. A note on what each of them handles is optional but helps AI tell them apart, for example "Invoices, refunds and plan changes". AI picks exactly one of them. When none clearly fits, the action does nothing, so another workflow can still assign the ticket.
To let AI pick both, add both actions to one workflow. Each one decides on its own: the person is picked from the people you added, not only from the team AI picked.
Below the list you can add an optional line of guidance for AI, up to 300 characters, such as "When it's not clear what the ticket is about, choose the first option." It tells AI how to choose, and AI reads it with every ticket this action handles. What one team or person handles belongs in their own note, and a fixed rule, such as mail from one domain going to one person, works better as a workflow condition.
Give people who do the same job one team rather than identical notes. Two identical notes leave AI unable to choose, and the action then assigns nobody. Members who cannot see the ticket's channel, and disabled members, are never picked.
Like letting AI choose tags, this needs a plan with AI features, skips spam and automatic replies, and uses a small amount of AI credits per run, which show up as "Automatic assignment" in the AI usage section of your billing settings.
Add tags
Attaches tags to the ticket. Tags are additive, so any tags already on the ticket remain. The action has two modes.
With "Add these tags", you select tags from your workspace and every one of them is added to each ticket the workflow runs on. This is useful for categorization and filtering.
With "Let AI choose", AI reads the customer's message and adds only the tags that fit it. You add the tags AI may choose from, up to 20, and AI never adds any other tag. A tag that does not exist yet can be created right there: type its name under "Add tag" and pick "Create tag". A note on when each tag applies is optional. A clear name like "Bug" speaks for itself, but a vague one like "Interesting" needs a rule, for example "the customer describes a use case we have not seen before".
Under "AI can add" you choose between two options:
- Multiple tags: each added tag is judged on its own, so a ticket can get several of them, one, or none.
- Only the best one: AI picks the single tag that fits best. Use this when your tags are categories that exclude each other, such as "Billing", "Bug" and "Question".
AI only adds a tag when it is confident. When no tag clearly fits, the ticket gets no tag at all rather than a guess.
Letting AI choose needs a plan with AI features. It skips tickets marked as spam and messages that are automatic replies, such as out-of-office notices, so those cost nothing. Every other run uses a small amount of AI credits, which show up as "Automatic tagging" in the AI usage section of your billing settings. If the AI cannot be reached, no tags are added and the failure shows up in the workflow execution log.
Set custom field
Fills in one of your custom fields on the ticket. Pick the field, then the value: free text for a text field, or one or more options for a select field.
Unlike every other action type, a single workflow can hold several "Set custom field" actions, one per field, so one workflow can populate a whole set of properties.
If the field is not available on the ticket's channel, the action records why in the workflow log rather than storing a value nobody would see. An option a workflow sets cannot be removed in Settings until you have taken it out of the workflow, so an action can never quietly turn into one that clears the field instead of setting it.
Add watcher
Adds a workspace member as a watcher on the ticket, so they are notified of activity. Select the member from your workspace. If that member is already watching the ticket, the action makes no change and never adds them twice.
Set status
Changes the ticket's status. Available statuses are open, waiting, closed, and spam. For example, you could automatically close tickets matching known spam patterns.
Send auto-reply
Sends an automatic reply to the customer. Write your message text in the configuration field. The reply is sent as a regular outbound message in the ticket's channel (email or support bubble), so the customer sees it through the same medium they used to reach you. Use this for acknowledgment messages, out-of-office notices, or initial response templates.
Add internal note
Adds a private note to the ticket that is only visible to your team. This is helpful for documenting why a workflow was triggered or leaving instructions for the agent who picks up the ticket.
Send HTTP request
Sends an HTTP request to an external URL, allowing you to integrate with third-party services. You can configure:
- Method: GET, POST, PUT, PATCH, or DELETE.
- URL: The endpoint to send the request to.
- Content type: JSON or form-urlencoded.
- Body: A JSON template with dynamic placeholders.
Available placeholders include {{ ticket.subject }}, {{ ticket.status }}, {{ ticket.url }}, {{ contact.email }}, {{ contact.name }}, {{ channel.name }}, and more. These are replaced with actual ticket data when the request is sent.
Run AI prompt
Runs a custom AI prompt with full access to the ticket's context and AI tools. The AI can read the ticket's messages, search your brain, look up past tickets, and take actions like adding notes, changing status, assigning the ticket, or managing tags.
Write your prompt as an instruction describing what the AI should do. For example:
"Read this ticket and determine whether it is a billing question, a technical issue, or a feature request. Add the appropriate tag and assign it to the right team."
"Summarize the customer's issue in one sentence and add it as an internal note."
This action is only available to workspaces on a paid plan or an active trial. Free workspaces will see the action fail in the execution log with an "AI features are not available" message. The AI prompt runs asynchronously, and the result (success or failure) is logged in the workflow execution log.
When the AI prompt does not run
Tickets marked as spam skip this action. Running a language model on them costs money without telling you anything you did not already know.
Keeping the cost down on high-volume channels
This action runs once per message that matches the workflow, so its cost follows your inbound volume. That is worth thinking about if you send newsletters or briefings from a channel address. A single send can draw thousands of out-of-office replies within minutes, each arriving as its own ticket, and an AI prompt on a new-ticket trigger will run for every one of them.
The cheapest way to handle those is to keep them away from the prompt entirely. Put a separate workflow ahead of this one that matches on the "Is an automatic reply" condition (see Conditions) and tags and closes them with Add tags and Set status. That condition costs you nothing extra, since every incoming message is already checked as it arrives. Then give the workflow holding your AI prompt a "Does not have tag" condition for the tag you just applied, so the prompt only sees the mail a person actually wrote.
Where a prompt genuinely has to read the body of an automatic reply, for instance to spot a mailbox that no longer exists or a contact who has left the company, let it run. The headers cannot tell you that.
Delete ticket
Permanently deletes the ticket. Use this with caution, typically in combination with conditions that identify automated messages or spam patterns you want to remove automatically.
Configuring actions
Each action type has its own configuration panel that appears when you add or edit it. Required fields are validated before the workflow can be saved. You can reorder actions by dragging them, and they will execute in the displayed order.