Ticket Automations
TOW Automations run Jira-style ticket flows from ticket events, schedules, manual runs, and incoming webhooks. Project admins manage project flows from Project Settings -> Automations. Organisation admins manage global flows from Automations in the main navigation.
Flow Shape
Each flow has one trigger and an ordered list of steps.
- Triggers include ticket created, updated, field value changed, assigned, commented, comment edited, linked, link deleted, transitioned, work logged, manual, scheduled, multiple events, version events, incoming webhook, and connector-backed development events.
- Conditions include ticket fields, smart-value comparisons, TQL, related tickets, users, attachments placeholders, and if/else blocks with Jira's two-level nesting limit.
- Branches can run over parents, subtasks, epic children, linked tickets, recently created tickets, TQL lookup results, and advanced smart-value lists.
- Actions include transition, edit, assign, comment, create, clone, delete, link, unlink, create subtasks, checklist items, log work, lookup tickets, create or release versions, variables, re-fetch, web requests, delays, and connector-gated external actions.
Transition actions use the same workflow enforcement as manual ticket changes. Required fields, project roles, restricted transitions, and ticket.transition permission still apply. Failures are visible in the flow audit log.
Smart Values
Supported smart values include:
{{issue.*}}{{triggerIssue.*}}{{branchIssue.*}}{{fieldChange.*}}{{comment.*}}{{webhookData.*}}{{lookupIssues}}{{createdIssue}}{{now}}
Lookup lists can be rendered with:
{{#lookupIssues}}
{{key}} - {{summary}}
{{/}}
Recipes
Comment reopens a closed ticket
Trigger: work_item_commented
Steps:
[
{"type": "condition", "condition": "issue_fields", "field": "status_category", "operator": "equals", "value": "done"},
{"type": "action", "action": "transition_issue", "target_status": "in_progress"}
]
All subtasks done closes the parent
Trigger: work_item_transitioned
Steps:
[
{
"type": "branch",
"branch": "parent",
"steps": [
{"type": "condition", "condition": "related_issues", "relation": "subtasks", "mode": "all", "status_category": "done"},
{"type": "action", "action": "transition_issue", "target_status": "done"}
]
}
]
PR created moves ticket to review
Trigger: development_event
Steps:
[
{"type": "action", "action": "transition_issue", "target_status": "in_review"}
]
Development triggers are connector-backed. The flow validates and appears in the UI, but execution requires a registered connector adapter.
Stale blocked tickets move to triage
Trigger:
{"type": "scheduled", "every_minutes": 1440}
Steps:
[
{"type": "action", "action": "lookup_issues", "tql": "status = blocked AND updated < -7d"},
{
"type": "branch",
"branch": "lookup_issues",
"steps": [
{"type": "action", "action": "comment", "body": "Blocked for more than a week."},
{"type": "action", "action": "transition_issue", "target_status": "todo"}
]
}
]
Scheduled cleanup archives done tickets
Trigger:
{"type": "scheduled", "hour_utc": 2}
Steps:
[
{"type": "action", "action": "lookup_issues", "tql": "status_category = done AND updated < -30d"},
{
"type": "branch",
"branch": "lookup_issues",
"steps": [
{"type": "action", "action": "transition_issue", "target_status": "archived"}
]
}
]