Automate what happens to tickets,as a graph you can read.
Ticket workflows are visual automations. Pick a trigger, chain conditions, AI decisions, HTTP calls, your own code and ticket actions on a canvas, switch the workflow on, and watch every run step by step.
Core
Branch on one or more conditions (AND/OR).
Route on a value, the first matching case wins.
Pause the workflow for a set time.
Pause until a teammate approves or declines.
Runs your JavaScript or Python in an isolated cloud sandbox.
AI
Branch on a natural-language condition, decided by the AI.
Generate text, or structured JSON via a schema, from a prompt.
Actions
Change a ticket's status, priority, assignee, tags, or archive it.
Add an internal note, or a public reply that emails the customer.
On ticket.created
Can the customer not finish paying?
priority → urgent · assignee
Blocked checkout: {{ nodes.trigger…
Internal note · Not a payment block…
Buyer blocked?
Branch on a natural-language condition, decided by the AI.
Counts against the workspace's daily AI budget.
Error handling
Ticket workflows in short.
- Triggers
- Manual, Event, Schedule or Webhook. One trigger per workflow.
- Who can build
- Admins and owners. Members can still answer approvals and questions sent to them.
- Run limits
- 10 runs at once and 1,000 runs a day per workspace.
- AI budget
- 500 AI calls per workspace per UTC day.
- Code budget
- 500 code runs per workspace per UTC day, shared with skill scripts.
- Code node
- JavaScript or Python. 60 second timeout by default, 120 at most.
- Allowed domains
- Up to 20 hosts per code node. Everything else is blocked.
- Run history
- Kept for 90 days, with each step's input and output.
Start on a ticket event, a schedule, a webhook or a button.
- Ticket events: Created, Status changed, Priority changed, Commented and SLA breached. Filter by status, priority, tags, project and assignee.
- CRM events: clients, companies and tenants created, updated or deleted, and deals created, updated, deleted, moved to a stage, won or lost.
- Ticket events start only on unassigned tickets by default, and ignore changes made by AI and automations unless Fire on AI/automation activity is on.
- Schedule repeats every hour, day or week at an hour in UTC.
- Webhook gives the workflow its own URL. POST JSON to it and the body becomes the trigger's output. Rotate the URL if it leaks.
Ticket Workflows
Visual automations over your tickets: build a graph, run it manually or on ticket events.
Escalate blocked checkouts
Success 4m ago · updated 2h ago
Weekly churn-risk digest
Success 3d ago · updated 1w ago
Sync paid orders from the shop
Failed 1h ago · updated 1d ago
SLA breach: reassign and notify
Success yesterday · updated 5d ago
Draft release notes from merged tickets
Never run · updated 3d ago
Logic, ticket actions, data and CRM, in one palette.
- Core: If, Switch, For each, List, Filter, Transform, Delay, Approval, User input, Set fields, Update fields, HTTP request, Run code and Output.
- Actions: Update ticket, Create ticket, Comment on ticket (an internal note or a public reply), Notify, Start workflow and Start Starko AI, which opens a pull request.
- Data: KB search, File read, Create document (PDF, slides or Excel) and Memory get and set, which keep values between runs.
- CRM: read, create, update and search clients, companies, tenants, deals and projects, enrich a company, read a conversation, and bulk upsert.
- Every node has Error handling: retry on fail with a number of tries and a wait, then stop the run or continue. HTTP requests can route to an error exit.
- Approval and User input pause the run until a teammate decides. Their requests also wait in the Inbox.
Let AI decide a branch, or write the next input.
- Answer shapes are Fields (Text, Number, Yes / no, List of text, List of numbers) or a JSON schema.
- Tools let the AI look things up first: knowledge base search, web fetch and search, files, project context, memory, and client, company and tenant lookups. At most 8 tool steps.
- MCP servers installed under AI Settings can be added to an AI step, and their tools join the same 8 step loop.
- Each call counts against the daily budget of 500. A step that uses both tools and an answer shape counts twice.
Your own JavaScript or Python, in a sandbox that is thrown away.
run(input) function in a fresh, isolated cloud sandbox, never on Starko's servers, and deletes the sandbox when it finishes. Whatever you return becomes the node's output, next to stdout, the exit code and the duration. A non-zero exit fails the node.- The sandbox has no environment variables. Pass data in as Inputs, each a key and a template, and read it as
input.key. - Secrets go in the same way:
api_key = {{ secrets.STRIPE_KEY }}. Values are write-only, substituted at run time and never stored in run history. A missing secret fails the run at once. - Allowed domains is the firewall: list every host the code calls, up to 20. Package registries stay reachable, and everything else is blocked.
- The editor warns when the code contains a URL but no domains are listed.
- When the daily budget of 500 code runs is used up, the node fails without a retry until midnight UTC.
Count failed charges
Runs your JavaScript or Python in an isolated cloud sandbox.
const res = await fetch(
"https://api.stripe.com/v1/charges?customer=" + input.customer_id,
{ headers: { Authorization: "Bearer " + input.api_key } },
);
const { data } = await res.json();
return { failed: data.filter((c) => c.status === "failed").length };Error handling
Test on a real ticket, then follow every run node by node.
- Open a run to replay it on the canvas: each node is marked as succeeded, failed, waiting or skipped, and loops show how many times they ran.
- Click a node to see its input, output and error. Approve or decline a waiting step, or cancel the run, from the same view.
- Runs over the limits are recorded as Refused with the reason, not dropped silently. Workflows that start each other stop at a depth of five.
- The editor saves as you type, shows teammates' cursors live, and has a JSON tab for copying or pasting the whole graph.
| Run | Status | Trigger | Started | Duration | Error | |
|---|---|---|---|---|---|---|
| 9c2e41f0 | Running | event | just now | 4s | ||
| 71ab0d93 | Success | event | 4m ago | 6s | ||
| e05f6c22 | Success | event | 38m ago | 5s | ||
| 3d9a7b14 | Failed | manual | 1h ago | 12s | Count failed charges: exit code 1 | |
| b8124ce7 | Refused | event | 2h ago | |||
| 5ff0a3e9 | Cancelled | manual | yesterday | 2m |
Describe the workflow, and let Starko draw it.
FAQAbout Ticket workflows.
Keep exploring
- WorkProjectsRepos, context, timelines and the tickets that belong to them.
- WorkTicketsList, board, table and Gantt, with pull request state on every ticket.
- WorkSLAs and business hoursResponse and resolution targets, counted in business hours.
- CodingStarko AIThe coding agent that turns a ticket into a pull request.
Connect a channel and a repository. Turn the support queue into a build queue.
Feedback starts flowing in minutes. The first recommendation shows up as soon as a pattern repeats, and the first pull request as soon as you accept one.