<!-- BusyBot node reference — https://busybot.net/tools/linear-trigger/ -->

> Node: Linear Trigger (`linear_trigger`) · Webhook trigger · v1
> Category: Development · Credentials: Linear (`linearApi`)
> Updated: 2026-08-16

# Linear Trigger

> Triggers on Linear events such as issue changes, comments, cycles, and project updates

## Overview

Receives webhook notifications from Linear when project management events occur, such as issue creation, comment updates, label changes, cycle updates, and project modifications. Linear sends the full event payload as JSON to the webhook URL. The trigger supports filtering by team and by resource type (Issue, Comment, Issue Label, Comment Reaction, Cycle, Project). Useful for automating issue triage, syncing project data, notifying teams of changes, and building custom workflows triggered by Linear activity.

**Category:** Development  
**Tool Name:** `linear_trigger`  
**Version:** 1

**Appearance:** Icon: `si-linear` | Color: `#5e6ad2`

## Node Type

**Trigger** — webhook (receives incoming HTTP callbacks)

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

This tool requires **Linear** credentials.
See the [Credentials Guide](https://busybot.net/credentials/linear-api/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Authentication | `options` | No | `apiToken` | Authentication method to use for Linear API calls. |
| | | | | Options: `apiToken` (API Token), `oAuth2` (OAuth2) |
| Team ID | `string` | No | — | The Linear Team ID to scope webhook events to. Enter the team UUID directly — find it in Linear under Settings > Teams. |
| Listen to Resources | `multiOptions` | Yes | `[]` | Which Linear resource types to listen for. Select one or more resource types whose events will trigger the workflow. |
| | | | | Options: `reaction` (Comment Reaction), `cycle` (Cycle), `issue` (Issue), `comment` (Issue Comment), `issueLabel` (Issue Label), `project` (Project) |

## Output Data

Each delivery produces one output item carrying the full Linear payload plus three metadata fields:

```json
{
  "_trigger": "linear_webhook",
  "_timestamp": "2026-01-01T00:00:00.000Z",
  "_webhookEvent": "Issue.create",
  "action": "create",
  "type": "Issue",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "organizationId": "",
  "url": "",
  "data": {
    "id": "test-issue-id",
    "identifier": "TEST-1",
    "title": "Test Issue",
    "priority": 3,
    "state": { "id": "", "name": "Todo" },
    "assignee": { "id": "", "name": "" },
    "creator": { "id": "", "name": "" },
    "team": { "id": "", "name": "" },
    "description": "",
    "createdAt": "2026-01-01T00:00:00.000Z",
    "updatedAt": "2026-01-01T00:00:00.000Z"
  },
  "updatedFrom": null
}
```

- `_trigger` — always `linear_webhook`.
- `_timestamp` — ISO 8601 timestamp of when the delivery arrived.
- `_webhookEvent` — a combined label of the form `{type}.{action}`, for example `Issue.create` or `Comment.update`.
- `action` — what happened: `create`, `update` or `remove`.
- `type` — the Linear resource type that fired, for example `Issue`, `Comment`, `Cycle` or `Project`.
- `data` — the resource itself. Its fields depend on the type; an issue carries `id`, `identifier`, `title`, `priority`, `state`, `assignee`, `creator`, `team`, `description`, `createdAt` and `updatedAt`.
- `updatedFrom` — on `update` actions, the previous values of the fields that changed. `null` otherwise.
- `url` — the Linear web URL for the resource, and `organizationId` identifies the workspace.

Reference values downstream by expression, for example `{{ $json.data.identifier }}` or `{{ $json.data.state.name }}`.

## Usage Examples

- Start a workflow when a new issue is created in Linear
- Trigger a notification when an issue comment is added
- Automate status updates when a Linear cycle is modified
- Sync project changes from Linear to an external system

## Example Configuration

Watch issue events for one team:

```json
{
  "type": "linear_trigger",
  "parameters": {
    "authentication": "apiToken",
    "teamId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "resources": ["issue"]
  }
}
```

Watch issues, comments and projects together:

```json
{
  "type": "linear_trigger",
  "parameters": {
    "authentication": "oAuth2",
    "teamId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "resources": ["issue", "comment", "project"]
  }
}
```

Build a communication hub from comments and reactions:

```json
{
  "type": "linear_trigger",
  "parameters": {
    "authentication": "apiToken",
    "teamId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "resources": ["comment", "reaction"]
  }
}
```

Track planning activity across cycles and projects:

```json
{
  "type": "linear_trigger",
  "parameters": {
    "authentication": "apiToken",
    "teamId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "resources": ["cycle", "project", "issueLabel"]
  }
}
```

### Trigger Behavior

- **Activation:** When the workflow is activated, a webhook endpoint is registered with the service.
- **Deactivation:** The webhook is automatically unregistered when the workflow is deactivated.
- **Payload:** The incoming webhook payload is parsed and output as workflow items.
- **Verification:** Supports signature verification where applicable.

## Tips

Entry point that fires when Linear sends a webhook for subscribed resource events. Configure the team to scope events to, and select which resource types to listen for (Issue, Comment, Issue Label, Comment Reaction, Cycle, Project). The trigger requires an API key with Admin scope to register webhooks. Linear delivers the full event payload including action type and resource data.