Linear Node

The Linear node connects workflows to the Linear GraphQL API for issue and workspace automation.

The Linear node connects workflows to the Linear GraphQL API for issue and workspace automation.

Overview

PropertyValue
Inputs1
Outputs1
CredentialLinear personal API key or OAuth2
Output$nodeLabel.*

Credential

Create a Linear credential in the Credentials Tab. Choose one authentication mode:

Personal API key

  1. In Linear, open Settings → Security & Access → Personal API keys.
  2. Create a key with access to the workspace you want to automate.
  3. Paste the key into a new Linear credential in Heym and use Test Connection to verify it.

OAuth2

  1. Create a Linear OAuth application.
  2. Register {FRONTEND_URL}/api/credentials/linear/oauth/callback as the redirect URI.
  3. In Heym, choose OAuth2, enter the Client ID and Client Secret, then click Connect.

Personal API keys and OAuth tokens act as the user who created or authorized them.

Operations

OperationRequired fieldsOutput
Get Viewerviewer
List TeamsLimit; optional After Cursorteams, count, pageInfo
List ProjectsLimit; optional After Cursorprojects, count, pageInfo
List IssuesLimit; optional Team ID, Project ID, After Cursorissues, count, pageInfo
List Workflow StatesTeam IDstates, count
List Team MembersTeam ID, Limit; optional After Cursormembers, count, pageInfo
Get IssueIssue ID or identifier such as ENG-123issue, identifier, url
Create IssueTeam ID, Titleissue, identifier, url
Update IssueIssue ID or identifier and at least one changed fieldissue, identifier, url
Delete IssueIssue ID or identifierdeleted
Add Issue LinkIssue ID or identifier, Link URLlink
Create CommentIssue ID or identifier, Comment Bodycomment
List CommentsIssue ID or identifier, Limit; optional After Cursorcomments, count, pageInfo
Update CommentComment ID, Comment Bodycomment
Delete CommentComment IDdeleted, entityId
Resolve CommentComment IDcomment
Unresolve CommentComment IDcomment

All text fields support expressions.

Issue fields

  • Team ID and Project ID are Linear UUIDs. Use List Teams or List Projects to discover them.
  • State ID is the workflow-state UUID used when creating or updating an issue. Use List Workflow States to discover it.
  • Assignee ID is a Linear user UUID. Use List Team Members to discover it.
  • Priority accepts 0 through 4: no priority, urgent, high, normal, and low.
  • Leave optional update fields empty to preserve their current values.
  • Set an update field to null to clear description, project, assignee, or state.
  • Link URL adds an external attachment link to an issue.
  • Comment ID is the Linear UUID for an existing comment. Use List Comments to discover it.
  • Parent Comment ID replies to an existing Linear comment when creating a comment.

Pagination

List operations can either return one page or automatically fetch every page:

  • Leave Return All off to use Limit and After Cursor manually.
  • Turn Return All on to follow Linear cursors server-side, up to 10,000 results.

Paged results return pageInfo.hasNextPage and pageInfo.endCursor. Pass the cursor into After Cursor on the next node run to fetch the next page when Return All is off.

Examples

Create an issue from upstream input:

  • Operation: Create Issue
  • Team ID: team UUID
  • Title: $input.title
  • Description: $input.description
  • Priority: 2

Add a comment to a created issue:

  • Operation: Create Comment
  • Issue ID: $createLinearIssue.issue.id
  • Comment Body: $input.comment
  • Parent Comment ID: optional, when replying to another comment

Resolve a comment thread:

  • Operation: Resolve Comment
  • Comment ID: $listComments.comments[0].id

Add an external link to an issue:

  • Operation: Add Issue Link
  • Issue ID: $createLinearIssue.issue.id
  • Link URL: $input.url

Paginate through team members:

  • Operation: List Team Members
  • Team ID: $listTeams.teams[0].id
  • Limit: 50
  • After Cursor: $listTeamMembers.pageInfo.endCursor on the next run when hasNextPage is true

Discover workflow state IDs before updating an issue:

  • Operation: List Workflow States
  • Team ID: $listTeams.teams[0].id
  • Then use $listStates.states[0].id as State ID in Update Issue

Output

Every successful operation sets:

  • $linear.success
  • $linear.operation

List operations also expose count and, where applicable, pageInfo. Issue operations expose the complete Linear issue payload and convenience fields such as identifier and url. Comment mutations expose the complete comment payload, except Delete Comment, which exposes deleted and entityId.