This walkthrough creates a workflow that automatically assigns a default owner to every new ticket.
Step 1: Create the workflow
1. Go to Settings > Workflows.
2. Click + Workflow and name it Auto-assign new tickets.
Step 2: Add the trigger
1. Click the trigger placeholder on the canvas (Add the first step…) and select Trigger.
2. Choose Ticket Created.
3. (Optional) Add filter conditions to narrow scope, for example, only tickets where applies_to_part equals a specific product.
Step 3: Add an action
Click the + button below the trigger step and select Action > Update Ticket.
In the configuration panel, set the following fields:
- id: Click Insert variable and select Ticket Created > output > id. This dynamically references the ticket that fired the trigger.
- owned_by > set: Select the user or team you want as the default owner. The owned_by field controls ticket ownership; set replaces the current value with the one you choose here.
Step 4: Publish
1. Click Validate in the top right to check for errors.
2. If validation passes, click Publish.
The workflow is now active. Every new ticket matching your filter conditions is automatically assigned to the specified owner.
Steps in a workflow do not operate on static, hardcoded values alone. They can reference live data from previous steps. This is what makes workflows dynamic.
Insert a variable using one of two methods:
- Click Insert variable: Available in any text field within a step's configuration panel. Opens a panel showing all available upstream step outputs.
- Type {{ directly in any text field: Opens a compact dropdown of all available variables. This is the faster method.
What you can reference:
The output fields of the trigger, for example, the ticket ID, title, priority, owner.
The output fields of any action step that has already executed upstream.
Scope variables set by init_variable or set_variable steps.
Example:
To post a dynamic comment when a ticket is created, configure the Add Comment action's body field as:
```
Ticket {{Ticket Created > output > display_id}} has been created and assigned to the support queue.
```
At runtime, {{Ticket Created > output > display_id}} is replaced with the actual ticket display ID (for example, TKT-4120).
Variable scoping rules:
Variables are scoped to what is available upstream. You can only reference data from steps that execute before the current step in the workflow graph.
Inside a loop (For Each, While), you can reference the current iteration item in addition to upstream data.
Inside a router branch, you can reference data from before the router, but not from other parallel branches. To pass a value between branches or out of them, use a variable declared on the Route & Merge node.
Text templates:
For fields that support text templates, you can embed expressions using the syntax {% expr %}. This allows inline dynamic values within longer text strings.