Linear n8n integrationAutomate Linear with n8n.
Need a Linear issue opened the second something breaks elsewhere? The Linear n8n integration pairs two nodes: 7 operations across issues and comments, and a trigger listening to 6 event resources grouped in 5 families. Written for teams who run their engineering work in Linear.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Linear n8n integration actually cover?
The Linear n8n integration is made of two nodes that share one connection. The Linear node calls the Linear API to create, read, update and delete issues, and to post comments on them. The Linear Trigger starts a workflow when Linear reports a change, such as an issue moving or a comment being added. Same credential for both, so one setup covers reading and writing.
Three shapes come up again and again. The first is the bug that files itself. A support message lands in Slack, a classification step decides it is a defect, and the workflow runs issue.create with the right Team Name or ID and a title built from the message. Whoever reported it gets the ticket back in the same thread.
The second is the weekly engineering readout. issue.getAll with Return All switched on walks every page of the API and hands the full list to the next node, which writes it into Notion or a shared sheet before the Monday meeting. Teams arriving from Jira Software or ClickUp tend to build this one first, because it shows what is genuinely in flight.
The third runs the other way. The Linear Trigger subscribes by webhook, a URL that Linear calls every time a matching event happens, so an issue change reaches n8n in seconds. From there issue.addLink pins the release or the review onto the ticket, and comment.addComment writes the outcome underneath it.
The node stays deliberately narrow: two resources, Issue and Comment, and 7 operations in total. Cycles, projects and labels can be watched by the trigger, but no operation writes them. Same for teams and people, which exist only as dropdown values inside other operations. When an operation is missing, the HTTP Request node calls any endpoint of the Linear API and reuses the same credential, the connection saved once in the n8n Credentials menu, through predefined authentication.
Two limits are worth knowing before you build. Get Many exposes only Return All and Limit, so narrowing a list by team or state happens after the call, in a Filter node. And the dropdown fields, team, state, assignee, store an identifier rather than the label you read in Linear: the list resolves it for you, an expression has to supply it. If the platform choice is still open, the n8n review goes through the trade-offs.
How do you connect Linear to n8n?
- 01
Choose an authentication method
The Linear credential comes in two shapes, API Token and OAuth2. For a workflow that runs under one service account, the API token is the shorter path: one key, one field, done. For an application where each person authorizes their own access, OAuth2 fits better. Both methods work on the Linear node and on the Linear Trigger, and one credential serves the two of them.
- 02
Create a personal API key
In Linear, open Settings, then Security and access, and create a dedicated personal API key. Paste it into the API Key field of the n8n credential. Name that credential after its owner, because a personal key acts as that person: every issue and every comment the workflow writes is attributed to them. The credential is created once and picked from a dropdown in every workflow after that.
- 03
Or register an OAuth2 application
The OAuth2 credential asks for a Client ID and a Client Secret, both generated when you create the OAuth2 application on the Linear side. Paste the OAuth Redirect URL shown by n8n as the redirect callback URL in Linear. The Actor setting decides who signs what the application writes: User creates issues and comments as the authorizing person, Application creates them as itself.
What starts a workflow from Linear ?
Linear Trigger is the node that starts a workflow when something happens in Linear. It listens to 6 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Linear account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
issue.*2issue.issue
comment.*1comment.comment
cycle.*1cycle.cycle
project.*1project.project
reaction.*1reaction.reaction
Configuration notes
01Set up the Linear Trigger
The Linear Trigger is the node that opens a workflow when Linear reports a change. Activating the workflow makes n8n register a webhook with Linear, a URL that Linear calls on every matching event, so items land in seconds and nothing polls the API on a schedule.
Key parameters
- Listen to Resources: the resources to subscribe to. There are 6 of them across 5 families, and ticking only what the workflow handles keeps the execution list readable.
- Team Name or ID: optional. Pick a team from the list to scope the subscription, or supply an identifier with an expression, the n8n syntax that reads a field from the incoming item, such as
{{ $json.teamId }}.
02Issue and Issue Label events
Two of the 6 resources describe the work item itself. issue delivers events about issues, issueLabel delivers events about the labels attached to them. They sit in the same family, which makes it the largest one in the trigger.
Key parameters
- Listen to Resources: tick Issue for the tickets themselves. Issue Label covers the way they get tagged, which is a different signal entirely and often the more useful of the two for routing.
- Team Name or ID: scope it. A busy workspace otherwise wakes every workflow in the instance.
issue.get, then a note posted back with comment.addComment. A label event routes the ticket elsewhere: tagged as a customer bug, it receives the support conversation through issue.addLink.03Issue Comment and Comment Reaction events
Conversation arrives through a pair of resources. comment covers Issue Comment, the messages written under a ticket, and reaction covers Comment Reaction, the responses left on those messages. Each one forms its own family, so they can be subscribed separately.
Key parameters
- Listen to Resources: Issue Comment on its own covers most needs; add Comment Reaction when a reaction carries an agreed meaning in the team.
- Team Name or ID: useful here too, since comment volume is what usually floods an unscoped trigger.
issue.update. Add a Filter node right after the trigger when only some comments matter.04Cycle and Project events
Planning objects come with their own resources. cycle reports on cycles, the time boxes Linear uses to group work, and project reports on projects. One resource each, two separate families, and neither has a matching write operation on the Linear node.
Key parameters
- Listen to Resources: Cycle and Project can be ticked on the same trigger when one workflow handles both rhythms.
- Team Name or ID: cycles belong to a team, so scoping matters more here than on comment events.
What can the Linear node do?
The Linear node exposes 7 operations across 2 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Add Comment | Add Link |
|---|---|---|---|---|---|---|---|
| Comment | ✓ | ||||||
| Issue | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Comment
1 operationAdd a comment to an issue
comment.addCommentWhat you see in n8n
Notes & use cases
Writes a comment under an existing issue and returns the created comment. It is how a workflow answers inside Linear instead of leaving the answer in another tool.
Key parameters
- Issue ID: the identifier of the issue that receives the comment, most often
{{ $json.id }}carried over from an earlier node. - Comment: the text of the message, built with expressions when it has to quote the incoming item.
- Parent Comment ID: in Additional Fields, turns the message into a reply under an existing comment instead of a new one.
Issue
6 operationsAdd a link to an issue
issue.addLinkWhat you see in n8n
Notes & use cases
Attaches a URL to an issue, so the reference sits on the ticket and not in a chat window that scrolls away.
Key parameters
- Issue ID: which issue gets the link.
- Link: the URL itself. Anything addressable works, a code review, a dashboard, a recorded session.
Create an issue
issue.createWhat you see in n8n
Notes & use cases
Opens a new issue in a chosen team and returns it, identifier included, ready for the rest of the workflow to reuse.
Key parameters
- Team Name or ID: required. Pick the team from the list, or pass its identifier with an expression when the team depends on the incoming item.
- Title: required, the one line people scan in the backlog.
- Priority: in Additional Fields, from
1Urgent to4Low, with0for No Priority. - Assignee Name or ID, State Name or ID and Description: the rest of Additional Fields, enough to hand over a ticket already triaged.
Delete an issue
issue.deleteWhat you see in n8n
Notes & use cases
Removes an issue from Linear. The operation takes an identifier and nothing else, so the safeguard has to live before it in the workflow.
Key parameters
- Issue ID: the issue to remove, normally read from a previous step rather than typed by hand.
Get an issue
issue.getWhat you see in n8n
Notes & use cases
Reads a single issue and returns its current fields, which is what you want before deciding anything about it.
Key parameters
- Issue ID: the identifier of the issue to read. Coming from the trigger it is already in the item; coming from a chat message it has to be extracted first.
Get many issues
issue.getAllWhat you see in n8n
Notes & use cases
Returns a list of issues instead of a single one. No field is required, so the operation runs as soon as the credential is selected.
Key parameters
- Return All: enabled, n8n follows the API pages until every issue has come back. Right for an export, heavy for a workflow that runs every 5 minutes.
- Limit: the maximum number of issues returned when Return All stays off, which keeps a test run short.
Update an issue
issue.updateWhat you see in n8n
Notes & use cases
Changes an existing issue and returns the updated version. Only the fields you fill are touched, the rest of the ticket stays as it was.
Key parameters
- Issue ID: required, and the only mandatory field of the operation.
- State Name or ID: in Update Fields, the column the ticket moves to.
- Priority Name/ID: also in Update Fields,
1Urgent,2High,3Medium or Low,0No Priority. - Assignee Name or ID, Team Name or ID, Title and Description: the remaining Update Fields, enough to move a ticket to another team without opening Linear.
Need help automating Linear with n8n?
A person reads every message.


