Ticket Routing Automation on Linear (API key), Powered by AI
For engineering teams whose Linear Triage inbox fills with support escalations: an agent that reads each new issue, moves it to the team that owns the code, labels it, sets priority, and leaves a comment saying why.
9 issues routed out of Triage this hour. One of them:
Routing decision
- • Moved from Support to the Platform team; matches the webhooks ownership rule.
- • Labels: webhooks, customer-reported. Priority: High, since the customer is missing order events.
- • Assigned to Idris, Platform's triage rotation for cycle 38. Comment added with reasoning.
How do you automatically route triage issues to the right team in Linear?
Connect Linear with an API key and describe how your teams split the product.
- 01
Trigger fires
The agent lists the issues sitting in Triage, reads each one's title, description, attachments and comments, and matches it to a team using your ownership rules, such as billing and invoices to Payments, crashes on iOS to Mobile, webhook failures to Platform.
- 02
Read the issue, attachments and comments
It applies that team's labels, sets priority from the customer impact described, assigns the person on triage duty in the current cycle, and adds a comment explaining the decision.
- 03
Match it to the owning team
When an issue looks like an existing one or fits two teams, it comments with the candidates and leaves it in Triage for a person to decide.
- 04
Set label, priority and triage assignee
- 05
You approve
Anything under your confidence bar waits for a human.
How you tell it what to do
Built in plain English.
You write the rule the way you'd describe it to a teammate. The agent reads the rule, breaks it into the actions it'll take, and confirms the apps it'll touch — before it does anything.
- 1Read the issue, attachments and comments
- 2Match it to the owning team
- 3Set label, priority and triage assignee
- 4Comment the reasoning on the issue
How it connects
Connect Linear (API key). The agent does the rest.
Claude and ChatGPT are already running on our side. You connect Linear (API key) with one click, and ticket routing runs inside it.
Claude and ChatGPT run on our keys. Nothing for you to configure.
- Linear (API key)Connect
- LinearConnect
- SlackConnect
Runs on your data, in your apps.
Nothing to deploy. Nothing to maintain.
Actions
What Linear (API key) + DeskFerry can do
Real Linear (API key) actions your AI agent can perform automatically — no manual work required.
Create linear attachment
Creates a new attachment and associates it with a specific, existing linear issue.
Create a comment
Creates a new comment on a specified linear issue.
Create linear issue
Creates a new issue in a specified linear project and team, requiring a title and description, and allowing for optional properties like assignee, state, priority, cycle, and due date.
Get create issue default params
Fetches a linear team's default issue estimate and state, useful for pre-filling new issue forms.
Create a label
Creates a new label in linear for a specified team, used to categorize and organize issues.
Delete issue
Archives an existing linear issue by its id, which is linear's standard way of deleting issues; the operation is idempotent.
Get all teams
Retrieves all teams from the linear workspace without requiring any parameters.
Download issue attachments
Downloads a specific attachment from a linear issue; the `file name` must include the correct file extension.
Get current user
Gets the currently authenticated user's id, name, email, and other profile information. use this to identify 'me' in other linear operations that require user id filtering.
Get cycles by team ID
Retrieves all cycles for a specified linear team id; cycles are time-boxed work periods (like sprints) and the team id must correspond to an existing team.
"Invoice PDF blank in the iOS app" fits both Payments and Mobile. Left in Triage with a comment naming both.
Same stack trace as MOB-1180, which Mobile marked In Progress yesterday. Not merged.
Reporter asks for Urgent because of a customer call. Description shows one user affected. Priority left at High.
Human in the loop
Approve before it sends.
Every draft lands in a review queue. You approve, edit, or reject — the agent never acts on its own unless you explicitly turn that on for a workflow you trust.
Governance
Every action, with the reasoning attached.
Each step the agent takes is logged with what it did, why it did it, and which app it touched. Audit-ready, so security and compliance can sign off without backfilling.
- Agent2:03 PM
Moved ENG-4412 to Platform, labelled webhooks, priority High, assigned Idris.
- Agent2:03 PM
Commented on ENG-4412 with the ownership rule it matched.
- Agent2:02 PM
Left ENG-4419 in Triage.
Reason: The blank PDF could be a Payments rendering bug or a Mobile viewer bug. Picking one would send it to a team that may bounce it back.
- Agent2:01 PM
Listed 11 issues in Triage across Support and Product intake.
- Harriet1:47 PM
Changed the rule: CSV export bugs belong to Data, not Platform.
How it works
Get started in three steps
Step 01
Connect Linear with an API key
Create a Linear API key for the agent. It reads your teams, labels, workflow states, cycles and members so routing uses what already exists in your workspace.
Step 02
Write your ownership map
In plain English: which team owns which part of the product, how priority is judged, who is on triage duty each cycle, and when to leave an issue alone.
Step 03
Check its comments
Every routed issue carries a comment with the reasoning. Issues that fit two teams or look like duplicates stay in Triage for your lead to decide.
Start automating Ticket Routing for Linear (API key)
7-day free trial. Works with the tools you already use.
FAQ
Frequently asked questions
Is Linear a helpdesk? Why route tickets there?
It isn't, and customer conversations should stay in your support tool. But support escalations become Linear issues, usually in a Triage state, and someone has to decide which engineering team owns each one. That handoff from support to engineering is what this agent routes.
What can the agent change on a Linear issue?
Team, labels, priority, assignee and workflow state, plus comments and attachments. It uses Linear's API, including a GraphQL mutation where a dedicated action doesn't exist. It can archive an issue, but by default duplicates are only commented on, not archived.
How does it choose an assignee?
From the rule you write, for example the person on the triage rotation for the current cycle, or the lead of the owning team. It reads cycles and team members from Linear, so it follows your rotation rather than a hardcoded name.
Will it override priority set by the reporter?
Only within your rule. If support marks something Urgent but the description shows one user affected, the agent can lower it and says why in a comment, or you can tell it never to lower priority and just flag the mismatch.
Does it work with Linear's own triage features?
Yes. It works on issues in the Triage state and moves them the way a person would, so Linear's history, notifications and SLAs behave normally. You can keep Triage enabled for some teams and let the agent handle only the busy intake teams.
Explore more
