Workflows
Blocks
Integrations
Linear

Linear Action Block

What it does: Create, update, and manage Linear issues, add comments, link resources, and list teams — keeping your engineering issue tracker in sync with your workflows.

🎯

In simple terms: Connect your workflows to Linear to automatically file bug reports, triage issues, add context comments, and keep your issue backlog up-to-date without anyone manually creating tickets.

When to Use This

  • ✅ Create Linear issues automatically from error monitoring, support tickets, or webhooks
  • ✅ Add comments to issues with context from other systems
  • ✅ Update issue status, priority, or assignee based on workflow events
  • ✅ Link related resources (docs, Figma files, PRs) to issues
  • ✅ List open issues for reporting or triage automation
  • ✅ List teams to discover IDs for dynamic team routing

Features

  • Issues: Create, get, update, delete, and list issues
  • Comments: Add comments to any issue
  • Links: Attach external resource URLs to issues
  • Teams: List teams to discover Team IDs
  • Variable Support: Use {{variables}} in titles, descriptions, and comments
  • GraphQL-powered: Full Linear GraphQL API under the hood

Getting Your Linear Credentials

Linear uses Personal API Keys for authentication.

Step 1 — Create an API Key

  1. Log in to Linear and go to Settings (bottom left)
  2. Click API in the left sidebar
  3. Under Personal API keys, click Create key
  4. Give it a label (e.g., InditeAI)
  5. Click Create key
  6. Copy the key immediately — you cannot view it again

Step 2 — Find Your Team ID

  1. Use the List Teams action (no credentials needed beyond connecting) to get all team IDs
  2. Or: In Linear, go to a team → Settings → the Team ID is in the URL

Step 3 — Connect in InditeAI

  1. Add the Linear action block to your workflow
  2. Click Select CredentialsCreate New
  3. Paste your API Key
  4. Click Save Credentials

Setup in InditeAI

Select an Action

CategoryActions
IssuesCreate Issue, Get Issue, Update Issue, Delete Issue, List Issues
CommentsAdd Comment
LinksAdd Link
TeamsList Teams

Working with Issues

Create Issue

Team ID (required): The team to create the issue in

{{team.engineeringId}}
abc-123-team-id

Title (required): Issue title

Bug: {{trigger.errorMessage}}
[Support] {{ticket.subject}}
{{trigger.issueTitle}}

Description (optional): Issue body (Markdown supported) — supports {{variables}}

## Steps to Reproduce
{{trigger.steps}}

## Error Details
```{{trigger.stack}}```

Assignee ID (optional): Linear user ID to assign the issue

{{user.linearId}}

Priority (optional): Numeric priority

ValuePriority
0No priority
1Urgent
2High
3Medium
4Low

State ID (optional): Workflow state (e.g., "In Progress") — get from List Issues response

Returns: gid (issue ID), identifier (e.g., ENG-123), title, url — save these for follow-up actions.

Get Issue

Issue ID (required): Linear issue GID (UUID format)

{{createIssue.gid}}
{{trigger.linearIssueId}}

Returns: identifier, title, description, state.name, assignee.name, priority, url, createdAt.

Update Issue

Issue ID (required): Issue to update

Update any combination of: Title, Description, Assignee ID, State ID, Priority.

Priority: 1  (= Urgent)
State ID: {{state.inProgressId}}

Delete Issue

Issue ID (required): Issue to permanently delete.

List Issues

Returns the 50 most recent issues across all teams.

Returns: Array of issues with identifier, title, state.name, assignee.name, priority, url.

Comments

Add Comment

Adds a comment to an existing issue.

Issue ID (required): Issue to comment on

Comment Body (required): Comment text (Markdown supported) — supports {{variables}}

Automatically created from Zendesk ticket #{{ticket.id}}

**Customer**: {{ticket.customerEmail}}
**Description**: {{ticket.description}}
**Freshdesk link**: {{ticket.url}}

Links

Add Link

Attaches an external URL to an issue (appears in the issue's links section).

Issue ID (required): Issue to link to

Link URL (required): The URL to attach

{{ticket.url}}
{{figma.fileUrl}}
{{github.prUrl}}

Link Title (optional): Display name for the link

Zendesk Ticket #{{ticket.id}}
Figma Design
GitHub PR #{{pr.number}}

Teams

List Teams

Returns all teams in your Linear workspace. No fields required.

Returns: Array of teams with id, name, key.

Use this to discover Team IDs for the Create Issue action.

Common Use Cases

1. Auto-File Bug Reports

Trigger: Error monitoring webhook (Sentry, Datadog, etc.)

Workflow:

  1. Linear: Create Issue
    Team: {{team.engineeringId}}
    Title: [Bug] {{error.title}}
    Description: **Error**: {{error.message}}\n\n**Stack**: {{error.stack}}
    Priority: 1 (Urgent)
  2. Slack: Alert #engineering with issue URL
  3. Linear: Add Link (link to error monitoring event)

2. Support Ticket → Linear Issue

Trigger: Freshdesk / Zendesk new ticket

Workflow:

  1. Condition: Ticket tagged "bug" or "engineering"
  2. Linear: Create Issue
    Team: engineering-team-id
    Title: [Support] {{ticket.subject}}
    Description: {{ticket.description}}\n\nCustomer: {{ticket.email}}
    Priority: based on ticket priority
  3. Linear: Add Comment with Freshdesk ticket URL
  4. Freshdesk: Update Ticket (add Linear issue URL as internal note)

3. GitHub PR → Update Linear State

Trigger: Webhook (GitHub PR merged)

Workflow:

  1. Linear: Update Issue
    Issue ID: {{extractedLinearId}}
    State ID: {{state.doneId}}
  2. Linear: Add Comment "Fixed in PR #{{pr.number}}"

4. Weekly Issue Triage Report

Trigger: Schedule Trigger (every Monday)

Workflow:

  1. Linear: List Issues
  2. AI Block: Summarize open high-priority issues
  3. Slack: Post triage summary to #engineering

Best Practices

  • ✅ Use List Teams once to discover and store team IDs as workflow variables
  • ✅ Store the issue gid from Create Issue for Add Comment and Add Link follow-ups
  • ✅ Use Markdown in description and comment fields for better formatting in Linear
  • ✅ Set priorities consistently — use numbers (0–4), not text
  • ✅ Add links to related resources (tickets, PRs, docs) to give engineers full context

Troubleshooting

"Linear credentials not found" / 401

Fix: Verify your API key is valid and not expired. Generate a new one in Linear → Settings → API.

Issue created in wrong team

Fix: Use List Teams to confirm the exact Team ID. Team IDs are UUIDs, not names.

State ID not working

Fix: State IDs are also UUIDs. Use Get Issue on an existing issue in the target state to discover its State ID, or fetch them via an HTTP Request to the Linear GraphQL API.

Priority value ignored

Fix: Priority must be an integer (0–4), passed as a string in the field. If passing from a variable, ensure it resolves to a number like "1" not "Urgent".

Limitations

  • Rate limits: Linear allows 1,500 requests per hour per API key
  • Custom fields: Not supported in this block — use HTTP Request with GraphQL
  • Attachments: File attachments not supported — use Add Link for resource URLs
  • List Issues: Returns 50 most recent issues globally — team-specific filtering requires custom GraphQL via HTTP Request

Related Blocks

  • GitHub: Create GitHub issues alongside Linear issues
  • Jira: Alternative for teams using Jira
  • Asana: Alternative for project management teams
  • Slack: Notify engineering teams when issues are created
  • HTTP Request: Advanced Linear GraphQL queries not covered by this block

Need Help?

Pro Tip: Use Add Comment + Add Link immediately after Create Issue to give engineers the full context they need — link to the triggering event (error, ticket, PR) and add a comment with key details. This prevents engineers from needing to dig through other systems.

Indite Documentation v1.6.0
PrivacyTermsSupport