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 ticket
Assigns the ticket to a team member or team. There are four assignment strategies:
- Specific member: Assign directly to a chosen user.
- Team: Assign to a team without selecting an individual.
- Least busy team member: Automatically assigns to the team member with the fewest open tickets. This helps distribute workload evenly.
- Random team member: Assigns to a randomly selected member of the chosen team.
When using team-based strategies, you must select which team to use.
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. Every tag in your workspace is listed with a text field, and AI only considers the tags you write something for. Describe when each tag applies. For a clear name like "Bug" a few words are enough, but a vague one like "Interesting" needs a clear rule, for example "the customer describes a use case we have not seen before". A tag you leave empty is never added. You can describe up to 20 tags.
Under "AI can add" you choose between two options:
- Multiple tags: each described 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.