Connecting Linear to n8n: automating ticket triage with AI (complete guide)
Published 8 August 2026 · 7 min read
Linear has become the default for product and engineering teams thanks to its speed and the discipline it enforces around cycles and priorities — but that discipline assumes a human reads, qualifies and routes every incoming ticket. Connecting Linear to n8n shifts part of that work onto a workflow: a customer report can become a Linear ticket already categorized and prioritized by a language model, a newly created issue can trigger a targeted notification, and a cycle report can generate itself every week. This guide covers authentication, the GraphQL nature of Linear's API, the node's operations, how the Linear Trigger actually works, and two complete examples.
Automating triage is not a recent gimmick: a now-classic study by John Anvik, Lyndon Hiew and Gail C. Murphy, Who Should Fix This Bug?, presented at ICSE 2006 and awarded the conference's Most Influential Paper prize a decade later, showed that a machine-learning algorithm trained on a project's bug-report history reached 57% precision on Eclipse and 64% on Firefox at suggesting the right developer to assign a ticket to. Twenty years on, a well-prompted LLM does noticeably better at categorization and prioritization — reason enough to hand it the first triage pass instead of leaving that entirely on the team.
When to automate Linear with n8n
Three families of use cases come up most often:
- AI triage of incoming tickets: a support message, an email or user feedback becomes a Linear issue already classified (bug, request, question), tagged with a priority and assigned to the right team, before a human ever opens it.
- Targeted notifications and digests: instead of having everyone watch Linear continuously, a cycle digest sent to Slack every Monday, or an immediate alert when a ticket flips to urgent priority.
- Synchronization with the rest of your stack: creating a Linear issue from a support ticket, a Slack message or a monitoring alert, or conversely pushing cycle progress to an external dashboard.
If your team lives in Jira, Trello, Asana or ClickUp instead, the same recipe applies with their respective nodes: see our guides on automating Jira with n8n, connecting Trello to n8n, connecting Asana to n8n and connecting ClickUp to n8n.
Authentication: Personal API Key or OAuth2
n8n offers two credentials for Linear, valid for both the Linear node and the Linear Trigger:
- Personal API Key — the simplest route for internal use. In Linear, open Settings → Security & access, create a named personal API key, copy it immediately, then paste it into n8n under Credentials → New → Linear API. The workflow then acts with your Linear account's permissions.
- OAuth2 — needed when an application must act on behalf of several users. Create an OAuth application in Linear, add n8n's redirect URL to it, then pick an Actor: User (created resources appear as coming from the user who authorized the app) or Application (they appear as coming from the corresponding Linear bot). To use this credential with the Linear Trigger, the Include Admin Scope toggle must be enabled — without it, registering the webhook fails.
For a typical team workflow, the Personal API Key is plenty; save OAuth2 for integrations distributed across several accounts.
Linear's API is GraphQL — what that means for you
Unlike Asana, Jira or Trello, which expose a REST API, Linear exposes only a single GraphQL API (https://api.linear.app/graphql). n8n's Linear node hides that complexity behind classic form-based operations for the most common cases. For anything outside that scope (custom labels, cycles, roadmaps, advanced sub-issues…), the approach documented by n8n is to add an HTTP Request node, choose Authentication → Predefined Credential Type → Linear API, and write the desired GraphQL query or mutation directly, reusing the credential already configured.
The Linear node's operations
Once the credential is connected, the Linear node exposes two main resources:
- Issue: Create, Update, Get, Get Many and Delete — the core of most workflows, with the usual fields (title, description, team, priority, assignee, labels, state).
- Comment: Create (add a comment) with an optional Parent Comment ID field, to reply within an existing thread rather than creating a new root comment — handy for an AI agent to log its reasoning without cluttering the human conversation.
Like any action node, the Linear node can also be attached as a Tool on an AI Agent node: see our AI Agent node guide for how an agent decides on its own when to create an issue or post a comment.
The Linear Trigger: a webhook with no native create/update distinction
The Linear Trigger registers a webhook on Linear's side. Its setup comes down to two fields: the Team ID of the team to watch, and the Resource (typically Issue). Whenever an event occurs on that resource, Linear notifies the workflow's URL, and n8n handles delivery verification.
The key thing to know before building on it: this webhook fires on both creation and update of an issue, with no dedicated field to keep only creations. The simplest workaround is an IF node right after the trigger, comparing the createdAt and updatedAt timestamps on the received issue: nearly identical to the second on creation, clearly different from the first edit onward. Our conditional routing guide with IF and Switch covers the mechanics of that kind of filter.
Example 1: AI triage of incoming support tickets
Scenario: messages landing in a support inbox or a form become already-qualified Linear issues.
- An upstream trigger (incoming email, form, or a support tool's webhook) captures the report's text.
- AI Agent or LLM Chain: from a prompt describing your categories (bug, question, sales request, urgent), the model picks a ticket type, a priority (0 to 4 in Linear) and writes a structured summary — the same logic detailed in our AI support ticket scoring guide.
- Linear (Issue → Create): title generated by the model, description carrying the original message, team and priority derived from the triage.
- Linear (Comment → Create): the model posts its justification as a comment ("classified as a critical bug — mentions production data loss"), in the spirit of our guide on logging an AI agent's decisions.
- If the priority is urgent, a Slack node alerts the right channel immediately (see our AI Slack bot guide).
This qualification pattern is the same one behind the email triage in the AI Inbox Pack (€79), applied here to Linear tickets instead of a mailbox. And if your team needs to prove, for an audit, that every report was actually handled and traced, the Compliance & Audit Pack (€149) already ships the Supabase audit trail for logging this kind of automated decision.
Example 2: weekly cycle digest to Slack
- Schedule Trigger every Monday at 8:30 am — mind the timezone, covered in our Schedule Trigger and cron expressions guide.
- HTTP Request to Linear's GraphQL API (with the Linear credential as Predefined Credential Type) to fetch the team's current cycle issues, grouped by state.
- A Code node groups overdue or unassigned issues and computes the cycle's completion percentage.
- A Slack node posts a single message with a direct link to each overdue ticket — one weekly digest instead of a per-ticket notification, in line with the automated-triage idea developed above.
- Optional: a language model summarizes the cycle's health in three lines at the top of the message.
The same skeleton works with a Notion database instead of Linear for project tracking — see our Notion-to-n8n connection guide.
Limits and good practices
- GraphQL only: any operation missing from the node (labels, cycles, advanced sub-issues) goes through an HTTP Request in GraphQL — there is no REST shortcut.
- Complexity-based rate limiting: Linear limits API calls by GraphQL query complexity rather than a simple call count; large queries (many nested fields) consume more of that budget — worth watching on a digest that queries an entire cycle at once.
- No native webhook filter: the Linear Trigger notifies creations and updates indiscriminately; always filter downstream by comparing
createdAt/updatedAt. - Include Admin Scope required for OAuth2: without this toggle, the Linear Trigger cannot register its webhook.
- Free plan is limited but usable: 2 teams and 250 active issues are enough to test the integration before moving to a paid plan if volume grows.
Key takeaways
A Personal API Key covers nearly all internal workflows, Linear's API runs entirely on GraphQL behind the node (with an HTTP Request fallback for the rest), and the Linear Trigger is a genuine webhook — provided you filter creations from updates yourself, since n8n has no dedicated field for that. With those three reflexes, AI triage of incoming tickets and the weekly cycle digest can be built in an hour. To start from a pre-assembled AI qualification, prompts included, the AI Inbox Pack (€79) adapts directly to a Linear ticket stream.
FAQ
Frequently asked questions
Does the n8n Linear node go through Linear's GraphQL API?
Yes, under the hood: Linear's public API is exclusively GraphQL. The Linear node wraps the most common mutations and queries (Issue, Comment) in a standard form-based interface. For anything beyond that scope, an HTTP Request node can query https://api.linear.app/graphql directly, reusing the same Linear credential through predefined-credential authentication.
Can the Linear Trigger fire only on ticket creation?
Not natively: the webhook tied to the Issue resource notifies both creations and updates. The common workaround is to compare the createdAt and updatedAt fields returned on the issue (nearly identical at creation, distinct from the first update onward) in an IF node placed right after the trigger.
Do you need a paid Linear plan to use the API and webhooks?
No. Linear's free plan includes API and integration access, with unlimited members, capped at 2 teams and 250 active issues. Paid plans lift those caps and add features like admin roles or rotating triage responsibility.
Can the Linear node be attached as a tool to an AI agent in n8n?
Yes, like any action node: attached as a Tool on an AI Agent node, it lets an agent create a ticket, add a comment, or search existing issues autonomously, based on the conversation or context it is handling.
Bundle FlowKit Complet
€269