# Linear (/integrations/linear)





{/* MANUAL-CONTENT-START:intro */}

Use [Linear](https://linear.app) to manage issues, labels, comments, projects, cycles, attachments, issue relations, and customers. The actions also list users, teams, workflow states, notifications, and favorites.

Connect an account or [personal API key](/integrations/linear-service-account) with access to the target teams. Use returned IDs to connect issue and project operations, and consult the action reference for archive, unarchive, merge, and delete behavior.

{/* MANUAL-CONTENT-END */}

Connection guides: [API keys](/integrations/linear-service-account).

## OAuth scopes [#oauth-scopes]

Sim requests these scopes when someone connects a Linear account. For a self-hosted deployment, register your own app with the provider using the settings below. See [Integrations and OAuth](/platform/self-hosting/integrations-oauth) for setup.

| Setting | Value |
| - | - |
| Redirect URI | `<NEXT_PUBLIC_APP_URL>/api/auth/oauth2/callback/linear` |
| Environment variables | `LINEAR_CLIENT_ID`, `LINEAR_CLIENT_SECRET` |

| Scope | Description |
| - | - |
| `read` | Read issues, projects, teams, and other workspace data |
| `write` | Create and update issues, projects, comments, and other workspace data |

## Use the block [#usage-instructions]

Manage issues, comments, projects, labels, workflow states, cycles, attachments, and more. Trigger workflows based on Linear webhook events.

## Actions [#actions]

### Linear Issue Reader [#linear-issue-reader]

Fetch and filter issues from Linear

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | No | Linear team ID (UUID format) to filter issues by team |
  | `projectId` | string | No | Linear project ID (UUID format) to filter issues by project |
  | `assigneeId` | string | No | User ID to filter by assignee |
  | `stateId` | string | No | Workflow state ID to filter by status |
  | `priority` | number | No | Priority to filter by (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |
  | `labelIds` | array | No | Array of label IDs to filter by |
  | `createdAfter` | string | No | Filter issues created after this date (ISO 8601 format) |
  | `updatedAfter` | string | No | Filter issues updated after this date (ISO 8601 format) |
  | `includeArchived` | boolean | No | Include archived issues (default: false) |
  | `first` | number | No | Number of issues to return (default: 50, max: 250) |
  | `after` | string | No | Pagination cursor for next page |
  | `orderBy` | string | No | Sort order: "createdAt" or "updatedAt" (default: "updatedAt") |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `hasNextPage` | boolean | Whether there are more results |
  | `endCursor` | string | Cursor for the next page |
  | `issues` | array | Array of filtered issues from Linear |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
  | ↳ `description` | string | Issue description |
  | ↳ `priority` | number | Priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |
  | ↳ `estimate` | number | Estimate in points |
  | ↳ `url` | string | Issue URL |
  | ↳ `dueDate` | string | Due date (YYYY-MM-DD) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `state` | object | Workflow state/status |
  | ↳ `id` | string | State ID |
  | ↳ `name` | string | State name (e.g., "Todo", "In Progress") |
  | ↳ `type` | string | State type (unstarted, started, completed, canceled) |
  | ↳ `assignee` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teamId` | string | Team ID |
  | ↳ `teamName` | string | Team name |
  | ↳ `projectId` | string | Project ID |
  | ↳ `projectName` | string | Project name |
  | ↳ `cycleId` | string | Cycle ID |
  | ↳ `cycleNumber` | number | Cycle number |
  | ↳ `cycleName` | string | Cycle name |
  | ↳ `labels` | array | Issue labels |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `color` | string | Label color (hex) |
</ReferenceDetails>

### Linear Get Issue [#linear-get-issue]

Get a single issue by ID from Linear with full details

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `issue` | object | The issue with full details |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
  | ↳ `description` | string | Issue description |
  | ↳ `priority` | number | Priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |
  | ↳ `estimate` | number | Estimate in points |
  | ↳ `url` | string | Issue URL |
  | ↳ `dueDate` | string | Due date (YYYY-MM-DD) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `completedAt` | string | Completion timestamp (ISO 8601) |
  | ↳ `canceledAt` | string | Cancellation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `state` | object | Workflow state/status |
  | ↳ `id` | string | State ID |
  | ↳ `name` | string | State name (e.g., "Todo", "In Progress") |
  | ↳ `type` | string | State type (unstarted, started, completed, canceled) |
  | ↳ `assignee` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teamId` | string | Team ID |
  | ↳ `projectId` | string | Project ID |
  | ↳ `labels` | array | Issue labels |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `color` | string | Label color (hex) |
</ReferenceDetails>

### Linear Issue Writer [#linear-issue-writer]

Create a new issue in Linear

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | Yes | Linear team ID (UUID format) where the issue will be created |
  | `projectId` | string | No | Linear project ID (UUID format) to associate with the issue |
  | `title` | string | Yes | Issue title |
  | `description` | string | No | Issue description |
  | `stateId` | string | No | Workflow state ID (status) |
  | `assigneeId` | string | No | User ID to assign the issue to |
  | `priority` | number | No | Priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |
  | `estimate` | number | No | Estimate in points |
  | `labelIds` | array | No | Array of label IDs to set on the issue |
  | `cycleId` | string | No | Cycle ID to assign the issue to |
  | `parentId` | string | No | Parent issue ID (for creating sub-issues) |
  | `dueDate` | string | No | Due date in ISO 8601 format (date only: YYYY-MM-DD) |
  | `subscriberIds` | array | No | Array of user IDs to subscribe to the issue |
  | `projectMilestoneId` | string | No | Project milestone ID to associate with the issue |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `issue` | object | The created issue with all its properties |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
  | ↳ `description` | string | Issue description |
  | ↳ `priority` | number | Priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |
  | ↳ `estimate` | number | Estimate in points |
  | ↳ `url` | string | Issue URL |
  | ↳ `dueDate` | string | Due date (YYYY-MM-DD) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `completedAt` | string | Completion timestamp (ISO 8601) |
  | ↳ `canceledAt` | string | Cancellation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `state` | object | Workflow state/status |
  | ↳ `id` | string | State ID |
  | ↳ `name` | string | State name (e.g., "Todo", "In Progress") |
  | ↳ `type` | string | State type (unstarted, started, completed, canceled) |
  | ↳ `assignee` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teamId` | string | Team ID |
  | ↳ `projectId` | string | Project ID |
  | ↳ `labels` | array | Issue labels |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `color` | string | Label color (hex) |
  | ↳ `cycleId` | string | Cycle ID |
  | ↳ `cycleNumber` | number | Cycle number |
  | ↳ `cycleName` | string | Cycle name |
  | ↳ `parentId` | string | Parent issue ID |
  | ↳ `parentTitle` | string | Parent issue title |
  | ↳ `projectMilestoneId` | string | Project milestone ID |
  | ↳ `projectMilestoneName` | string | Project milestone name |
</ReferenceDetails>

### Linear Update Issue [#linear-update-issue]

Update an existing issue in Linear

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID to update |
  | `title` | string | No | New issue title |
  | `description` | string | No | New issue description |
  | `stateId` | string | No | Workflow state ID (status) |
  | `assigneeId` | string | No | User ID to assign the issue to |
  | `priority` | number | No | Priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |
  | `estimate` | number | No | Estimate in points |
  | `labelIds` | array | No | Array of label IDs to set on the issue (replaces all existing labels) |
  | `projectId` | string | No | Project ID to move the issue to |
  | `cycleId` | string | No | Cycle ID to assign the issue to |
  | `parentId` | string | No | Parent issue ID (for making this a sub-issue) |
  | `dueDate` | string | No | Due date in ISO 8601 format (date only: YYYY-MM-DD) |
  | `addedLabelIds` | array | No | Array of label IDs to add to the issue (without replacing existing labels) |
  | `removedLabelIds` | array | No | Array of label IDs to remove from the issue |

  #### Output [#output-3]

  | Parameter | Type | Description |
  | - | - | - |
  | `issue` | object | The updated issue |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
  | ↳ `description` | string | Issue description |
  | ↳ `priority` | number | Priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |
  | ↳ `estimate` | number | Estimate in points |
  | ↳ `url` | string | Issue URL |
  | ↳ `dueDate` | string | Due date (YYYY-MM-DD) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `completedAt` | string | Completion timestamp (ISO 8601) |
  | ↳ `canceledAt` | string | Cancellation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `state` | object | Workflow state/status |
  | ↳ `id` | string | State ID |
  | ↳ `name` | string | State name (e.g., "Todo", "In Progress") |
  | ↳ `type` | string | State type (unstarted, started, completed, canceled) |
  | ↳ `assignee` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teamId` | string | Team ID |
  | ↳ `projectId` | string | Project ID |
  | ↳ `labels` | array | Issue labels |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `color` | string | Label color (hex) |
  | ↳ `cycleId` | string | Cycle ID |
  | ↳ `cycleNumber` | number | Cycle number |
  | ↳ `cycleName` | string | Cycle name |
  | ↳ `parentId` | string | Parent issue ID |
  | ↳ `parentTitle` | string | Parent issue title |
  | ↳ `projectMilestoneId` | string | Project milestone ID |
  | ↳ `projectMilestoneName` | string | Project milestone name |
</ReferenceDetails>

### Linear Archive Issue [#linear-archive-issue]

Archive an issue in Linear

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID to archive |

  #### Output [#output-4]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the archive operation was successful |
  | `issueId` | string | The ID of the archived issue |
</ReferenceDetails>

### Linear Unarchive Issue [#linear-unarchive-issue]

Unarchive (restore) an archived issue in Linear

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID to unarchive |

  #### Output [#output-5]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the unarchive operation was successful |
  | `issueId` | string | The ID of the unarchived issue |
</ReferenceDetails>

### Linear Delete Issue [#linear-delete-issue]

Delete (trash) an issue in Linear

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID to delete |

  #### Output [#output-6]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the delete operation was successful |
</ReferenceDetails>

### Linear Search Issues [#linear-search-issues]

Search for issues in Linear using full-text search

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `query` | string | Yes | Search query string |
  | `teamId` | string | No | Filter by team ID |
  | `includeArchived` | boolean | No | Include archived issues in search results |
  | `first` | number | No | Number of results to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-7]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `issues` | array | Array of matching issues |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
  | ↳ `description` | string | Issue description |
  | ↳ `priority` | number | Priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |
  | ↳ `estimate` | number | Estimate in points |
  | ↳ `url` | string | Issue URL |
  | ↳ `dueDate` | string | Due date (YYYY-MM-DD) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `completedAt` | string | Completion timestamp (ISO 8601) |
  | ↳ `canceledAt` | string | Cancellation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `state` | object | Workflow state/status |
  | ↳ `id` | string | State ID |
  | ↳ `name` | string | State name (e.g., "Todo", "In Progress") |
  | ↳ `type` | string | State type (unstarted, started, completed, canceled) |
  | ↳ `assignee` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teamId` | string | Team ID |
  | ↳ `projectId` | string | Project ID |
  | ↳ `labels` | array | Issue labels |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `color` | string | Label color (hex) |
</ReferenceDetails>

### Linear Add Label to Issue [#linear-add-label-to-issue]

Add a label to an issue in Linear

<ReferenceDetails>
  #### Input [#input-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID |
  | `labelId` | string | Yes | Label ID to add to the issue |

  #### Output [#output-8]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the label was successfully added |
  | `issueId` | string | The ID of the issue |
</ReferenceDetails>

### Linear Remove Label from Issue [#linear-remove-label-from-issue]

Remove a label from an issue in Linear

<ReferenceDetails>
  #### Input [#input-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID |
  | `labelId` | string | Yes | Label ID to remove from the issue |

  #### Output [#output-9]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the label was successfully removed |
  | `issueId` | string | The ID of the issue |
</ReferenceDetails>

### Linear Create Comment [#linear-create-comment]

Add a comment to an issue in Linear

<ReferenceDetails>
  #### Input [#input-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID to comment on |
  | `body` | string | Yes | Comment text (supports Markdown) |

  #### Output [#output-10]

  | Parameter | Type | Description |
  | - | - | - |
  | `comment` | object | The created comment |
  | ↳ `id` | string | Comment ID |
  | ↳ `body` | string | Comment text (Markdown) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `user` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `issue` | object | Issue object |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
</ReferenceDetails>

### Linear Update Comment [#linear-update-comment]

Edit a comment in Linear

<ReferenceDetails>
  #### Input [#input-11]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `commentId` | string | Yes | Comment ID to update |
  | `body` | string | No | New comment text (supports Markdown) |

  #### Output [#output-11]

  | Parameter | Type | Description |
  | - | - | - |
  | `comment` | object | The updated comment |
  | ↳ `id` | string | Comment ID |
  | ↳ `body` | string | Comment text (Markdown) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `user` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `issue` | object | Issue object |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
</ReferenceDetails>

### Linear Delete Comment [#linear-delete-comment]

Delete a comment from Linear

<ReferenceDetails>
  #### Input [#input-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `commentId` | string | Yes | Comment ID to delete |

  #### Output [#output-12]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the delete operation was successful |
</ReferenceDetails>

### Linear List Comments [#linear-list-comments]

List all comments on an issue in Linear

<ReferenceDetails>
  #### Input [#input-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Linear issue ID |
  | `first` | number | No | Number of comments to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-13]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `comments` | array | Array of comments on the issue |
  | ↳ `id` | string | Comment ID |
  | ↳ `body` | string | Comment text (Markdown) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `user` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `issue` | object | Issue object |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
</ReferenceDetails>

### Linear List Projects [#linear-list-projects]

List projects in Linear with optional filtering

<ReferenceDetails>
  #### Input [#input-14]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | No | Filter by team ID |
  | `includeArchived` | boolean | No | Include archived projects |
  | `first` | number | No | Number of projects to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-14]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `projects` | array | Array of projects |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | ↳ `description` | string | Project description |
  | ↳ `state` | string | Project state (planned, started, paused, completed, canceled) |
  | ↳ `priority` | number | Project priority (0-4) |
  | ↳ `startDate` | string | Start date (YYYY-MM-DD) |
  | ↳ `targetDate` | string | Target date (YYYY-MM-DD) |
  | ↳ `url` | string | Project URL |
  | ↳ `lead` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teams` | array | Associated teams |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Get Project [#linear-get-project]

Get a single project by ID from Linear

<ReferenceDetails>
  #### Input [#input-15]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Linear project ID |

  #### Output [#output-15]

  | Parameter | Type | Description |
  | - | - | - |
  | `project` | object | The project with full details |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | ↳ `description` | string | Project description |
  | ↳ `state` | string | Project state (planned, started, paused, completed, canceled) |
  | ↳ `priority` | number | Project priority (0-4) |
  | ↳ `startDate` | string | Start date (YYYY-MM-DD) |
  | ↳ `targetDate` | string | Target date (YYYY-MM-DD) |
  | ↳ `url` | string | Project URL |
  | ↳ `lead` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teams` | array | Associated teams |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Create Project [#linear-create-project]

Create a new project in Linear

<ReferenceDetails>
  #### Input [#input-16]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | Yes | Team ID to create the project in |
  | `name` | string | Yes | Project name |
  | `description` | string | No | Project description |
  | `leadId` | string | No | User ID of the project lead |
  | `startDate` | string | No | Project start date (ISO format) |
  | `targetDate` | string | No | Project target date (ISO format) |
  | `priority` | number | No | Project priority (0-4) |

  #### Output [#output-16]

  | Parameter | Type | Description |
  | - | - | - |
  | `project` | object | The created project |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | ↳ `description` | string | Project description |
  | ↳ `state` | string | Project state (planned, started, paused, completed, canceled) |
  | ↳ `priority` | number | Project priority (0-4) |
  | ↳ `startDate` | string | Start date (YYYY-MM-DD) |
  | ↳ `targetDate` | string | Target date (YYYY-MM-DD) |
  | ↳ `url` | string | Project URL |
  | ↳ `lead` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teams` | array | Associated teams |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Update Project [#linear-update-project]

Update an existing project in Linear

<ReferenceDetails>
  #### Input [#input-17]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID to update |
  | `name` | string | No | New project name |
  | `description` | string | No | New project description |
  | `state` | string | No | Project state (planned, started, completed, canceled) |
  | `leadId` | string | No | User ID of the project lead |
  | `startDate` | string | No | Project start date (ISO format: YYYY-MM-DD) |
  | `targetDate` | string | No | Project target date (ISO format: YYYY-MM-DD) |
  | `priority` | number | No | Project priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low) |

  #### Output [#output-17]

  | Parameter | Type | Description |
  | - | - | - |
  | `project` | object | The updated project |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | ↳ `description` | string | Project description |
  | ↳ `state` | string | Project state (planned, started, paused, completed, canceled) |
  | ↳ `priority` | number | Project priority (0-4) |
  | ↳ `startDate` | string | Start date (YYYY-MM-DD) |
  | ↳ `targetDate` | string | Target date (YYYY-MM-DD) |
  | ↳ `url` | string | Project URL |
  | ↳ `lead` | object | User object |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `teams` | array | Associated teams |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Archive Project [#linear-archive-project]

Archive a project in Linear

<ReferenceDetails>
  #### Input [#input-18]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID to archive |

  #### Output [#output-18]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the archive operation was successful |
  | `projectId` | string | The ID of the archived project |
</ReferenceDetails>

### Linear List Users [#linear-list-users]

List all users in the Linear workspace

<ReferenceDetails>
  #### Input [#input-19]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `includeDisabled` | boolean | No | Include disabled/inactive users |
  | `first` | number | No | Number of users to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-19]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `users` | array | Array of workspace users |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `displayName` | string | Display name |
  | ↳ `active` | boolean | Whether user is active |
  | ↳ `admin` | boolean | Whether user is admin |
  | ↳ `avatarUrl` | string | Avatar URL |
</ReferenceDetails>

### Linear List Teams [#linear-list-teams]

List all teams in the Linear workspace

<ReferenceDetails>
  #### Input [#input-20]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `first` | number | No | Number of teams to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-20]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `teams` | array | Array of teams |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
  | ↳ `key` | string | Team key (used in issue identifiers) |
  | ↳ `description` | string | Team description |
</ReferenceDetails>

### Linear Get Current User [#linear-get-current-user]

Get the currently authenticated user (viewer) information

<ReferenceDetails>
  #### Input [#input-21]

  | Parameter | Type | Required | Description |
  | - | - | - | - |

  #### Output [#output-21]

  | Parameter | Type | Description |
  | - | - | - |
  | `user` | object | The currently authenticated user |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User name |
  | ↳ `email` | string | User email |
  | ↳ `displayName` | string | Display name |
  | ↳ `active` | boolean | Whether user is active |
  | ↳ `admin` | boolean | Whether user is admin |
  | ↳ `avatarUrl` | string | Avatar URL |
</ReferenceDetails>

### Linear List Labels [#linear-list-labels]

List all labels in Linear workspace or team

<ReferenceDetails>
  #### Input [#input-22]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | No | Filter by team ID |
  | `first` | number | No | Number of labels to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-22]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `labels` | array | Array of labels |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `color` | string | Label color (hex) |
  | ↳ `description` | string | Label description |
  | ↳ `isGroup` | boolean | Whether this label is a group |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Create Label [#linear-create-label]

Create a new label in Linear

<ReferenceDetails>
  #### Input [#input-23]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `name` | string | Yes | Label name |
  | `color` | string | No | Label color (hex format, e.g., "#ff0000") |
  | `description` | string | No | Label description |
  | `teamId` | string | No | Team ID (if omitted, creates workspace label) |

  #### Output [#output-23]

  | Parameter | Type | Description |
  | - | - | - |
  | `label` | object | The created label |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `color` | string | Label color (hex) |
  | ↳ `description` | string | Label description |
  | ↳ `isGroup` | boolean | Whether this label is a group |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Update Label [#linear-update-label]

Update an existing label in Linear

<ReferenceDetails>
  #### Input [#input-24]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `labelId` | string | Yes | Label ID to update |
  | `name` | string | No | New label name |
  | `color` | string | No | New label color (hex format) |
  | `description` | string | No | New label description |

  #### Output [#output-24]

  | Parameter | Type | Description |
  | - | - | - |
  | `label` | object | The updated label |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `color` | string | Label color (hex) |
  | ↳ `description` | string | Label description |
  | ↳ `isGroup` | boolean | Whether this label is a group |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Archive Label [#linear-archive-label]

Archive a label in Linear

<ReferenceDetails>
  #### Input [#input-25]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `labelId` | string | Yes | Label ID to archive |

  #### Output [#output-25]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the archive operation was successful |
  | `labelId` | string | The ID of the archived label |
</ReferenceDetails>

### Linear List Workflow States [#linear-list-workflow-states]

List all workflow states (statuses) in Linear

<ReferenceDetails>
  #### Input [#input-26]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | No | Filter by team ID |
  | `first` | number | No | Number of states to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-26]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `states` | array | Array of workflow states |
  | ↳ `id` | string | State ID |
  | ↳ `name` | string | State name (e.g., "Todo", "In Progress") |
  | ↳ `description` | string | State description |
  | ↳ `type` | string | State type (triage, backlog, unstarted, started, completed, canceled) |
  | ↳ `color` | string | State color (hex) |
  | ↳ `position` | number | State position in workflow |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Create Workflow State [#linear-create-workflow-state]

Create a new workflow state (status) in Linear

<ReferenceDetails>
  #### Input [#input-27]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | Yes | Team ID to create the state in |
  | `name` | string | Yes | State name (e.g., "In Review") |
  | `color` | string | No | State color (hex format) |
  | `type` | string | Yes | State type: "backlog", "unstarted", "started", "completed", or "canceled" |
  | `description` | string | No | State description |
  | `position` | number | No | Position in the workflow |

  #### Output [#output-27]

  | Parameter | Type | Description |
  | - | - | - |
  | `state` | object | The created workflow state |
  | ↳ `id` | string | State ID |
  | ↳ `name` | string | State name (e.g., "Todo", "In Progress") |
  | ↳ `description` | string | State description |
  | ↳ `type` | string | State type (triage, backlog, unstarted, started, completed, canceled) |
  | ↳ `color` | string | State color (hex) |
  | ↳ `position` | number | State position in workflow |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Update Workflow State [#linear-update-workflow-state]

Update an existing workflow state in Linear

<ReferenceDetails>
  #### Input [#input-28]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `stateId` | string | Yes | Workflow state ID to update |
  | `name` | string | No | New state name |
  | `color` | string | No | New state color (hex format) |
  | `description` | string | No | New state description |
  | `position` | number | No | New position in workflow |

  #### Output [#output-28]

  | Parameter | Type | Description |
  | - | - | - |
  | `state` | object | The updated workflow state |
  | ↳ `id` | string | State ID |
  | ↳ `name` | string | State name (e.g., "Todo", "In Progress") |
  | ↳ `description` | string | State description |
  | ↳ `type` | string | State type (triage, backlog, unstarted, started, completed, canceled) |
  | ↳ `color` | string | State color (hex) |
  | ↳ `position` | number | State position in workflow |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear List Cycles [#linear-list-cycles]

List cycles (sprints/iterations) in Linear

<ReferenceDetails>
  #### Input [#input-29]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | No | Filter by team ID |
  | `first` | number | No | Number of cycles to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-29]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `cycles` | array | Array of cycles |
  | ↳ `id` | string | Cycle ID |
  | ↳ `number` | number | Cycle number |
  | ↳ `name` | string | Cycle name |
  | ↳ `startsAt` | string | Start date (ISO 8601) |
  | ↳ `endsAt` | string | End date (ISO 8601) |
  | ↳ `completedAt` | string | Completion date (ISO 8601) |
  | ↳ `progress` | number | Progress percentage (0-1) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Get Cycle [#linear-get-cycle]

Get a single cycle by ID from Linear

<ReferenceDetails>
  #### Input [#input-30]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `cycleId` | string | Yes | Cycle ID |

  #### Output [#output-30]

  | Parameter | Type | Description |
  | - | - | - |
  | `cycle` | object | The cycle with full details |
  | ↳ `id` | string | Cycle ID |
  | ↳ `number` | number | Cycle number |
  | ↳ `name` | string | Cycle name |
  | ↳ `startsAt` | string | Start date (ISO 8601) |
  | ↳ `endsAt` | string | End date (ISO 8601) |
  | ↳ `completedAt` | string | Completion date (ISO 8601) |
  | ↳ `progress` | number | Progress percentage (0-1) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Create Cycle [#linear-create-cycle]

Create a new cycle (sprint/iteration) in Linear

<ReferenceDetails>
  #### Input [#input-31]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | Yes | Team ID to create the cycle in |
  | `startsAt` | string | Yes | Cycle start date (ISO format) |
  | `endsAt` | string | Yes | Cycle end date (ISO format) |
  | `name` | string | No | Cycle name (optional, will be auto-generated if not provided) |

  #### Output [#output-31]

  | Parameter | Type | Description |
  | - | - | - |
  | `cycle` | object | The created cycle |
  | ↳ `id` | string | Cycle ID |
  | ↳ `number` | number | Cycle number |
  | ↳ `name` | string | Cycle name |
  | ↳ `startsAt` | string | Start date (ISO 8601) |
  | ↳ `endsAt` | string | End date (ISO 8601) |
  | ↳ `completedAt` | string | Completion date (ISO 8601) |
  | ↳ `progress` | number | Progress percentage (0-1) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Get Active Cycle [#linear-get-active-cycle]

Get the currently active cycle for a team

<ReferenceDetails>
  #### Input [#input-32]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `teamId` | string | Yes | Team ID |

  #### Output [#output-32]

  | Parameter | Type | Description |
  | - | - | - |
  | `cycle` | object | The active cycle (null if no active cycle) |
  | ↳ `id` | string | Cycle ID |
  | ↳ `number` | number | Cycle number |
  | ↳ `name` | string | Cycle name |
  | ↳ `startsAt` | string | Start date (ISO 8601) |
  | ↳ `endsAt` | string | End date (ISO 8601) |
  | ↳ `completedAt` | string | Completion date (ISO 8601) |
  | ↳ `progress` | number | Progress percentage (0-1) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `team` | object | Team object |
  | ↳ `id` | string | Team ID |
  | ↳ `name` | string | Team name |
</ReferenceDetails>

### Linear Create Attachment [#linear-create-attachment]

Add an attachment to an issue in Linear

<ReferenceDetails>
  #### Input [#input-33]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Issue ID to attach to |
  | `url` | string | No | URL of the attachment |
  | `file` | file | No | File to attach |
  | `title` | string | Yes | Attachment title |
  | `subtitle` | string | No | Attachment subtitle/description |

  #### Output [#output-33]

  | Parameter | Type | Description |
  | - | - | - |
  | `attachment` | object | The created attachment |
  | ↳ `id` | string | Attachment ID |
  | ↳ `title` | string | Attachment title |
  | ↳ `subtitle` | string | Attachment subtitle |
  | ↳ `url` | string | Attachment URL |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
</ReferenceDetails>

### Linear List Attachments [#linear-list-attachments]

List all attachments on an issue in Linear

<ReferenceDetails>
  #### Input [#input-34]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Issue ID |
  | `first` | number | No | Number of attachments to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-34]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `attachments` | array | Array of attachments |
  | ↳ `id` | string | Attachment ID |
  | ↳ `title` | string | Attachment title |
  | ↳ `subtitle` | string | Attachment subtitle |
  | ↳ `url` | string | Attachment URL |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Update Attachment [#linear-update-attachment]

Update an attachment metadata in Linear

<ReferenceDetails>
  #### Input [#input-35]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `attachmentId` | string | Yes | Attachment ID to update |
  | `title` | string | Yes | New attachment title |
  | `subtitle` | string | No | New attachment subtitle |

  #### Output [#output-35]

  | Parameter | Type | Description |
  | - | - | - |
  | `attachment` | object | The updated attachment |
  | ↳ `id` | string | Attachment ID |
  | ↳ `title` | string | Attachment title |
  | ↳ `subtitle` | string | Attachment subtitle |
  | ↳ `url` | string | Attachment URL |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Delete Attachment [#linear-delete-attachment]

Delete an attachment from Linear

<ReferenceDetails>
  #### Input [#input-36]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `attachmentId` | string | Yes | Attachment ID to delete |

  #### Output [#output-36]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the delete operation was successful |
</ReferenceDetails>

### Linear Create Issue Relation [#linear-create-issue-relation]

Link two issues together in Linear (blocks, relates to, duplicates)

<ReferenceDetails>
  #### Input [#input-37]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Source issue ID |
  | `relatedIssueId` | string | Yes | Target issue ID to link to |
  | `type` | string | Yes | Relation type: "blocks", "duplicate", or "related". Note: When creating "blocks" from A to B, the inverse relation (B blocked by A) is automatically created. |

  #### Output [#output-37]

  | Parameter | Type | Description |
  | - | - | - |
  | `relation` | object | The created issue relation |
  | ↳ `id` | string | Relation ID |
  | ↳ `type` | string | Relation type |
  | ↳ `issue` | object | Source issue |
  | ↳ `relatedIssue` | object | Target issue |
</ReferenceDetails>

### Linear List Issue Relations [#linear-list-issue-relations]

List all relations (dependencies) for an issue in Linear

<ReferenceDetails>
  #### Input [#input-38]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | Yes | Issue ID |
  | `first` | number | No | Number of relations to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-38]

  | Parameter | Type | Description |
  | - | - | - |
  | `relations` | array | Array of issue relations |
  | ↳ `id` | string | Relation ID |
  | ↳ `type` | string | Relation type |
  | ↳ `issue` | object | Source issue |
  | ↳ `relatedIssue` | object | Target issue |
  | `pageInfo` | object | Pagination information |
</ReferenceDetails>

### Linear Delete Issue Relation [#linear-delete-issue-relation]

Remove a relation between two issues in Linear

<ReferenceDetails>
  #### Input [#input-39]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `relationId` | string | Yes | Relation ID to delete |

  #### Output [#output-39]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the delete operation was successful |
</ReferenceDetails>

### Linear Create Favorite [#linear-create-favorite]

Bookmark an issue, project, cycle, or label in Linear

<ReferenceDetails>
  #### Input [#input-40]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `issueId` | string | No | Issue ID to favorite |
  | `projectId` | string | No | Project ID to favorite |
  | `cycleId` | string | No | Cycle ID to favorite |
  | `labelId` | string | No | Label ID to favorite |

  #### Output [#output-40]

  | Parameter | Type | Description |
  | - | - | - |
  | `favorite` | object | The created favorite |
  | ↳ `id` | string | Favorite ID |
  | ↳ `type` | string | Favorite type |
  | ↳ `issue` | object | Favorited issue (if applicable) |
  | ↳ `project` | object | Favorited project (if applicable) |
  | ↳ `cycle` | object | Favorited cycle (if applicable) |
</ReferenceDetails>

### Linear List Favorites [#linear-list-favorites]

List all bookmarked items for the current user in Linear

<ReferenceDetails>
  #### Input [#input-41]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `first` | number | No | Number of favorites to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-41]

  | Parameter | Type | Description |
  | - | - | - |
  | `favorites` | array | Array of favorited items |
  | ↳ `id` | string | Favorite ID |
  | ↳ `type` | string | Favorite type |
  | ↳ `issue` | object | Favorited issue |
  | ↳ `project` | object | Favorited project |
  | ↳ `cycle` | object | Favorited cycle |
  | `pageInfo` | object | Pagination information |
</ReferenceDetails>

### Linear Create Project Update [#linear-create-project-update]

Post a status update for a project in Linear

<ReferenceDetails>
  #### Input [#input-42]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID to post update for |
  | `body` | string | Yes | Update message (supports Markdown) |
  | `health` | string | No | Project health: "onTrack", "atRisk", or "offTrack" |

  #### Output [#output-42]

  | Parameter | Type | Description |
  | - | - | - |
  | `update` | object | The created project update |
  | ↳ `id` | string | Update ID |
  | ↳ `body` | string | Update message |
  | ↳ `health` | string | Project health status |
  | ↳ `createdAt` | string | Creation timestamp |
  | ↳ `user` | object | User who created the update |
</ReferenceDetails>

### Linear List Project Updates [#linear-list-project-updates]

List all status updates for a project in Linear

<ReferenceDetails>
  #### Input [#input-43]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID |
  | `first` | number | No | Number of updates to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-43]

  | Parameter | Type | Description |
  | - | - | - |
  | `updates` | array | Array of project updates |
  | ↳ `id` | string | Update ID |
  | ↳ `body` | string | Update message |
  | ↳ `health` | string | Project health |
  | ↳ `createdAt` | string | Creation timestamp |
  | ↳ `user` | object | User who created the update |
  | `pageInfo` | object | Pagination information |
</ReferenceDetails>

### Linear List Notifications [#linear-list-notifications]

List notifications for the current user in Linear

<ReferenceDetails>
  #### Input [#input-44]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `first` | number | No | Number of notifications to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-44]

  | Parameter | Type | Description |
  | - | - | - |
  | `notifications` | array | Array of notifications |
  | ↳ `id` | string | Notification ID |
  | ↳ `type` | string | Notification type |
  | ↳ `createdAt` | string | Creation timestamp |
  | ↳ `readAt` | string | Read timestamp (null if unread) |
  | ↳ `issue` | object | Related issue |
  | `pageInfo` | object | Pagination information |
</ReferenceDetails>

### Linear Update Notification [#linear-update-notification]

Mark a notification as read or unread in Linear

<ReferenceDetails>
  #### Input [#input-45]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `notificationId` | string | Yes | Notification ID to update |
  | `readAt` | string | No | Timestamp to mark as read (ISO format). Pass null or omit to mark as unread |

  #### Output [#output-45]

  | Parameter | Type | Description |
  | - | - | - |
  | `notification` | object | The updated notification |
  | ↳ `id` | string | Notification ID |
  | ↳ `type` | string | Notification type |
  | ↳ `createdAt` | string | Creation timestamp |
  | ↳ `readAt` | string | Read timestamp |
  | ↳ `issue` | object | Related issue |
</ReferenceDetails>

### Linear Create Customer [#linear-create-customer]

Create a new customer in Linear

<ReferenceDetails>
  #### Input [#input-46]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `name` | string | Yes | Customer name |
  | `domains` | array | No | Domains associated with this customer |
  | `externalIds` | array | No | External IDs from other systems |
  | `logoUrl` | string | No | Customer's logo URL |
  | `ownerId` | string | No | ID of the user who owns this customer |
  | `revenue` | number | No | Annual revenue from this customer |
  | `size` | number | No | Size of the customer organization |
  | `statusId` | string | No | Customer status ID |
  | `tierId` | string | No | Customer tier ID |

  #### Output [#output-46]

  | Parameter | Type | Description |
  | - | - | - |
  | `customer` | object | The created customer |
  | ↳ `id` | string | Customer ID |
  | ↳ `name` | string | Customer name |
  | ↳ `domains` | array | Associated domains |
  | ↳ `externalIds` | array | External IDs from other systems |
  | ↳ `logoUrl` | string | Logo URL |
  | ↳ `slugId` | string | Unique URL slug |
  | ↳ `approximateNeedCount` | number | Number of customer needs |
  | ↳ `revenue` | number | Annual revenue |
  | ↳ `size` | number | Organization size |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear List Customers [#linear-list-customers]

List all customers in Linear

<ReferenceDetails>
  #### Input [#input-47]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `first` | number | No | Number of customers to return (default: 50) |
  | `after` | string | No | Cursor for pagination |
  | `includeArchived` | boolean | No | Include archived customers (default: false) |

  #### Output [#output-47]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `customers` | array | Array of customers |
  | ↳ `id` | string | Customer ID |
  | ↳ `name` | string | Customer name |
  | ↳ `domains` | array | Associated domains |
  | ↳ `externalIds` | array | External IDs from other systems |
  | ↳ `logoUrl` | string | Logo URL |
  | ↳ `slugId` | string | Unique URL slug |
  | ↳ `approximateNeedCount` | number | Number of customer needs |
  | ↳ `revenue` | number | Annual revenue |
  | ↳ `size` | number | Organization size |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Create Customer Request [#linear-create-customer-request]

Create a customer request (need) in Linear. Assign to customer, set urgency (priority: 0 = Not important, 1 = Important), and optionally link to an issue.

<ReferenceDetails>
  #### Input [#input-48]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `customerId` | string | Yes | Customer ID to assign this request to |
  | `body` | string | No | Description of the customer request |
  | `priority` | number | No | Urgency level: 0 = Not important, 1 = Important (default: 0) |
  | `issueId` | string | No | Issue ID to link this request to |
  | `projectId` | string | No | Project ID to link this request to |

  #### Output [#output-48]

  | Parameter | Type | Description |
  | - | - | - |
  | `customerNeed` | object | The created customer request |
  | ↳ `id` | string | Customer request ID |
  | ↳ `body` | string | Request description |
  | ↳ `priority` | number | Urgency level (0 = Not important, 1 = Important) |
  | ↳ `createdAt` | string | Creation timestamp |
  | ↳ `updatedAt` | string | Last update timestamp |
  | ↳ `archivedAt` | string | Archive timestamp (null if not archived) |
  | ↳ `customer` | object | Assigned customer |
  | ↳ `issue` | object | Linked issue (null if not linked) |
  | ↳ `project` | object | Linked project (null if not linked) |
  | ↳ `creator` | object | User who created the request |
  | ↳ `url` | string | URL to the customer request |
</ReferenceDetails>

### Linear Update Customer Request [#linear-update-customer-request]

Update a customer request (need) in Linear. Can change urgency, description, customer assignment, and linked issue.

<ReferenceDetails>
  #### Input [#input-49]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `customerNeedId` | string | Yes | Customer request ID to update |
  | `body` | string | No | Updated description of the customer request |
  | `priority` | number | No | Updated urgency level: 0 = Not important, 1 = Important |
  | `customerId` | string | No | New customer ID to assign this request to |
  | `issueId` | string | No | New issue ID to link this request to |
  | `projectId` | string | No | New project ID to link this request to |

  #### Output [#output-49]

  | Parameter | Type | Description |
  | - | - | - |
  | `customerNeed` | object | The updated customer request |
  | ↳ `id` | string | Customer request ID |
  | ↳ `body` | string | Request description |
  | ↳ `priority` | number | Urgency level (0 = Not important, 1 = Important) |
  | ↳ `createdAt` | string | Creation timestamp |
  | ↳ `updatedAt` | string | Last update timestamp |
  | ↳ `archivedAt` | string | Archive timestamp (null if not archived) |
  | ↳ `customer` | object | Assigned customer |
  | ↳ `issue` | object | Linked issue (null if not linked) |
  | ↳ `project` | object | Linked project (null if not linked) |
  | ↳ `creator` | object | User who created the request |
  | ↳ `url` | string | URL to the customer request |
</ReferenceDetails>

### Linear List Customer Requests [#linear-list-customer-requests]

List all customer requests (needs) in Linear

<ReferenceDetails>
  #### Input [#input-50]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `first` | number | No | Number of customer requests to return (default: 50) |
  | `after` | string | No | Cursor for pagination |
  | `includeArchived` | boolean | No | Include archived customer requests (default: false) |

  #### Output [#output-50]

  | Parameter | Type | Description |
  | - | - | - |
  | `customerNeeds` | array | Array of customer requests |
  | ↳ `id` | string | Customer request ID |
  | ↳ `body` | string | Request description |
  | ↳ `priority` | number | Urgency level (0 = Not important, 1 = Important) |
  | ↳ `createdAt` | string | Creation timestamp |
  | ↳ `updatedAt` | string | Last update timestamp |
  | ↳ `archivedAt` | string | Archive timestamp (null if not archived) |
  | ↳ `customer` | object | Assigned customer |
  | ↳ `issue` | object | Linked issue (null if not linked) |
  | ↳ `project` | object | Linked project (null if not linked) |
  | ↳ `creator` | object | User who created the request |
  | ↳ `url` | string | URL to the customer request |
  | `pageInfo` | object | Pagination information |
</ReferenceDetails>

### Linear Get Customer [#linear-get-customer]

Get a single customer by ID in Linear

<ReferenceDetails>
  #### Input [#input-51]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `customerId` | string | Yes | Customer ID to retrieve |

  #### Output [#output-51]

  | Parameter | Type | Description |
  | - | - | - |
  | `customer` | object | The customer data |
  | ↳ `id` | string | Customer ID |
  | ↳ `name` | string | Customer name |
  | ↳ `domains` | array | Associated domains |
  | ↳ `externalIds` | array | External IDs from other systems |
  | ↳ `logoUrl` | string | Logo URL |
  | ↳ `slugId` | string | Unique URL slug |
  | ↳ `approximateNeedCount` | number | Number of customer needs |
  | ↳ `revenue` | number | Annual revenue |
  | ↳ `size` | number | Organization size |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Update Customer [#linear-update-customer]

Update a customer in Linear

<ReferenceDetails>
  #### Input [#input-52]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `customerId` | string | Yes | Customer ID to update |
  | `name` | string | No | Updated customer name |
  | `domains` | array | No | Updated domains |
  | `externalIds` | array | No | Updated external IDs |
  | `logoUrl` | string | No | Updated logo URL |
  | `ownerId` | string | No | Updated owner user ID |
  | `revenue` | number | No | Updated annual revenue |
  | `size` | number | No | Updated organization size |
  | `statusId` | string | No | Updated customer status ID |
  | `tierId` | string | No | Updated customer tier ID |

  #### Output [#output-52]

  | Parameter | Type | Description |
  | - | - | - |
  | `customer` | object | The updated customer |
  | ↳ `id` | string | Customer ID |
  | ↳ `name` | string | Customer name |
  | ↳ `domains` | array | Associated domains |
  | ↳ `externalIds` | array | External IDs from other systems |
  | ↳ `logoUrl` | string | Logo URL |
  | ↳ `slugId` | string | Unique URL slug |
  | ↳ `approximateNeedCount` | number | Number of customer needs |
  | ↳ `revenue` | number | Annual revenue |
  | ↳ `size` | number | Organization size |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Delete Customer [#linear-delete-customer]

Delete a customer in Linear

<ReferenceDetails>
  #### Input [#input-53]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `customerId` | string | Yes | Customer ID to delete |

  #### Output [#output-53]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the deletion was successful |
</ReferenceDetails>

### Linear Merge Customers [#linear-merge-customers]

Merge two customers in Linear by moving all data from source to target

<ReferenceDetails>
  #### Input [#input-54]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `sourceCustomerId` | string | Yes | Source customer ID (will be deleted after merge) |
  | `targetCustomerId` | string | Yes | Target customer ID (will receive all data) |

  #### Output [#output-54]

  | Parameter | Type | Description |
  | - | - | - |
  | `customer` | object | The merged target customer |
</ReferenceDetails>

### Linear Create Customer Status [#linear-create-customer-status]

Create a new customer status in Linear

<ReferenceDetails>
  #### Input [#input-55]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `name` | string | Yes | Customer status name |
  | `color` | string | Yes | Status color (hex code) |
  | `description` | string | No | Status description |
  | `displayName` | string | No | Display name for the status |
  | `position` | number | No | Position in status list |

  #### Output [#output-55]

  | Parameter | Type | Description |
  | - | - | - |
  | `customerStatus` | object | The created customer status |
  | ↳ `id` | string | Customer status ID |
  | ↳ `name` | string | Status name |
  | ↳ `description` | string | Status description |
  | ↳ `color` | string | Status color (hex) |
  | ↳ `position` | number | Position in list |
  | ↳ `type` | string | Status type (active, inactive) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last updated timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Update Customer Status [#linear-update-customer-status]

Update a customer status in Linear

<ReferenceDetails>
  #### Input [#input-56]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `statusId` | string | Yes | Customer status ID to update |
  | `name` | string | No | Updated status name |
  | `color` | string | No | Updated status color |
  | `description` | string | No | Updated description |
  | `displayName` | string | No | Updated display name |
  | `position` | number | No | Updated position |

  #### Output [#output-56]

  | Parameter | Type | Description |
  | - | - | - |
  | `customerStatus` | object | The updated customer status |
  | ↳ `id` | string | Customer status ID |
  | ↳ `name` | string | Status name |
  | ↳ `description` | string | Status description |
  | ↳ `color` | string | Status color (hex) |
  | ↳ `position` | number | Position in list |
  | ↳ `type` | string | Status type (active, inactive) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last updated timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Delete Customer Status [#linear-delete-customer-status]

Delete a customer status in Linear

<ReferenceDetails>
  #### Input [#input-57]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `statusId` | string | Yes | Customer status ID to delete |

  #### Output [#output-57]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the deletion was successful |
</ReferenceDetails>

### Linear List Customer Statuses [#linear-list-customer-statuses]

List all customer statuses in Linear

<ReferenceDetails>
  #### Input [#input-58]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `first` | number | No | Number of statuses to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-58]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `customerStatuses` | array | List of customer statuses |
  | ↳ `id` | string | Customer status ID |
  | ↳ `name` | string | Status name |
  | ↳ `description` | string | Status description |
  | ↳ `color` | string | Status color (hex) |
  | ↳ `position` | number | Position in list |
  | ↳ `type` | string | Status type (active, inactive) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last updated timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Create Customer Tier [#linear-create-customer-tier]

Create a new customer tier in Linear

<ReferenceDetails>
  #### Input [#input-59]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `name` | string | Yes | Customer tier name |
  | `color` | string | Yes | Tier color (hex code) |
  | `displayName` | string | No | Display name for the tier |
  | `description` | string | No | Tier description |
  | `position` | number | No | Position in tier list |

  #### Output [#output-59]

  | Parameter | Type | Description |
  | - | - | - |
  | `customerTier` | object | The created customer tier |
  | ↳ `id` | string | Customer tier ID |
  | ↳ `name` | string | Tier name |
  | ↳ `displayName` | string | Display name |
  | ↳ `description` | string | Tier description |
  | ↳ `color` | string | Tier color (hex) |
  | ↳ `position` | number | Position in list |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Update Customer Tier [#linear-update-customer-tier]

Update a customer tier in Linear

<ReferenceDetails>
  #### Input [#input-60]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `tierId` | string | Yes | Customer tier ID to update |
  | `name` | string | No | Updated tier name |
  | `color` | string | No | Updated tier color |
  | `displayName` | string | No | Updated display name |
  | `description` | string | No | Updated description |
  | `position` | number | No | Updated position |

  #### Output [#output-60]

  | Parameter | Type | Description |
  | - | - | - |
  | `customerTier` | object | The updated customer tier |
</ReferenceDetails>

### Linear Delete Customer Tier [#linear-delete-customer-tier]

Delete a customer tier in Linear

<ReferenceDetails>
  #### Input [#input-61]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `tierId` | string | Yes | Customer tier ID to delete |

  #### Output [#output-61]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the deletion was successful |
</ReferenceDetails>

### Linear List Customer Tiers [#linear-list-customer-tiers]

List all customer tiers in Linear

<ReferenceDetails>
  #### Input [#input-62]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `first` | number | No | Number of tiers to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-62]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `customerTiers` | array | List of customer tiers |
  | ↳ `id` | string | Customer tier ID |
  | ↳ `name` | string | Tier name |
  | ↳ `displayName` | string | Display name |
  | ↳ `description` | string | Tier description |
  | ↳ `color` | string | Tier color (hex) |
  | ↳ `position` | number | Position in list |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Delete Project [#linear-delete-project]

Delete a project in Linear

<ReferenceDetails>
  #### Input [#input-63]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID to delete |

  #### Output [#output-63]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the deletion was successful |
</ReferenceDetails>

### Linear Create Project Label [#linear-create-project-label]

Create a new project label in Linear

<ReferenceDetails>
  #### Input [#input-64]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `name` | string | Yes | Project label name |
  | `color` | string | No | Label color (hex code) |
  | `description` | string | No | Label description |
  | `isGroup` | boolean | No | Whether this is a label group |
  | `parentId` | string | No | Parent label group ID |

  #### Output [#output-64]

  | Parameter | Type | Description |
  | - | - | - |
  | `projectLabel` | object | The created project label |
  | ↳ `id` | string | Project label ID |
  | ↳ `name` | string | Label name |
  | ↳ `description` | string | Label description |
  | ↳ `color` | string | Label color (hex) |
  | ↳ `isGroup` | boolean | Whether this label is a group |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Update Project Label [#linear-update-project-label]

Update a project label in Linear

<ReferenceDetails>
  #### Input [#input-65]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `labelId` | string | Yes | Project label ID to update |
  | `name` | string | No | Updated label name |
  | `color` | string | No | Updated label color |
  | `description` | string | No | Updated description |

  #### Output [#output-65]

  | Parameter | Type | Description |
  | - | - | - |
  | `projectLabel` | object | The updated project label |
  | ↳ `id` | string | Project label ID |
  | ↳ `name` | string | Label name |
  | ↳ `description` | string | Label description |
  | ↳ `color` | string | Label color (hex) |
  | ↳ `isGroup` | boolean | Whether this label is a group |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Delete Project Label [#linear-delete-project-label]

Delete a project label in Linear

<ReferenceDetails>
  #### Input [#input-66]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `labelId` | string | Yes | Project label ID to delete |

  #### Output [#output-66]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the deletion was successful |
</ReferenceDetails>

### Linear List Project Labels [#linear-list-project-labels]

List all project labels in Linear

<ReferenceDetails>
  #### Input [#input-67]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | No | Optional project ID to filter labels for a specific project |
  | `first` | number | No | Number of labels to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-67]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `projectLabels` | array | List of project labels |
  | ↳ `id` | string | Project label ID |
  | ↳ `name` | string | Label name |
  | ↳ `description` | string | Label description |
  | ↳ `color` | string | Label color (hex) |
  | ↳ `isGroup` | boolean | Whether this label is a group |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last update timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Add Label to Project [#linear-add-label-to-project]

Add a label to a project in Linear

<ReferenceDetails>
  #### Input [#input-68]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID |
  | `labelId` | string | Yes | Label ID to add |

  #### Output [#output-68]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the label was added successfully |
  | `projectId` | string | The project ID |
</ReferenceDetails>

### Linear Remove Label from Project [#linear-remove-label-from-project]

Remove a label from a project in Linear

<ReferenceDetails>
  #### Input [#input-69]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID |
  | `labelId` | string | Yes | Label ID to remove |

  #### Output [#output-69]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the label was removed successfully |
  | `projectId` | string | The project ID |
</ReferenceDetails>

### Linear Create Project Milestone [#linear-create-project-milestone]

Create a new project milestone in Linear

<ReferenceDetails>
  #### Input [#input-70]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID |
  | `name` | string | Yes | Milestone name |
  | `description` | string | No | Milestone description |
  | `targetDate` | string | No | Target date (ISO 8601) |

  #### Output [#output-70]

  | Parameter | Type | Description |
  | - | - | - |
  | `projectMilestone` | object | The created project milestone |
  | ↳ `id` | string | Project milestone ID |
  | ↳ `name` | string | Milestone name |
  | ↳ `description` | string | Milestone description |
  | ↳ `projectId` | string | Project ID |
  | ↳ `targetDate` | string | Target date (YYYY-MM-DD) |
  | ↳ `progress` | number | Progress percentage (0-1) |
  | ↳ `sortOrder` | number | Sort order within the project |
  | ↳ `status` | string | Milestone status (done, next, overdue, unstarted) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Update Project Milestone [#linear-update-project-milestone]

Update a project milestone in Linear

<ReferenceDetails>
  #### Input [#input-71]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `milestoneId` | string | Yes | Project milestone ID to update |
  | `name` | string | No | Updated milestone name |
  | `description` | string | No | Updated description |
  | `targetDate` | string | No | Updated target date (ISO 8601) |

  #### Output [#output-71]

  | Parameter | Type | Description |
  | - | - | - |
  | `projectMilestone` | object | The updated project milestone |
  | ↳ `id` | string | Project milestone ID |
  | ↳ `name` | string | Milestone name |
  | ↳ `description` | string | Milestone description |
  | ↳ `projectId` | string | Project ID |
  | ↳ `targetDate` | string | Target date (YYYY-MM-DD) |
  | ↳ `progress` | number | Progress percentage (0-1) |
  | ↳ `sortOrder` | number | Sort order within the project |
  | ↳ `status` | string | Milestone status (done, next, overdue, unstarted) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Delete Project Milestone [#linear-delete-project-milestone]

Delete a project milestone in Linear

<ReferenceDetails>
  #### Input [#input-72]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `milestoneId` | string | Yes | Project milestone ID to delete |

  #### Output [#output-72]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the deletion was successful |
</ReferenceDetails>

### Linear List Project Milestones [#linear-list-project-milestones]

List all milestones for a project in Linear

<ReferenceDetails>
  #### Input [#input-73]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `projectId` | string | Yes | Project ID to list milestones for |
  | `first` | number | No | Number of milestones to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-73]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `projectMilestones` | array | List of project milestones |
  | ↳ `id` | string | Project milestone ID |
  | ↳ `name` | string | Milestone name |
  | ↳ `description` | string | Milestone description |
  | ↳ `projectId` | string | Project ID |
  | ↳ `targetDate` | string | Target date (YYYY-MM-DD) |
  | ↳ `progress` | number | Progress percentage (0-1) |
  | ↳ `sortOrder` | number | Sort order within the project |
  | ↳ `status` | string | Milestone status (done, next, overdue, unstarted) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Create Project Status [#linear-create-project-status]

Create a new project status in Linear

<ReferenceDetails>
  #### Input [#input-74]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `name` | string | Yes | Project status name |
  | `type` | string | Yes | Status type: "backlog", "planned", "started", "paused", "completed", or "canceled" |
  | `color` | string | Yes | Status color (hex code) |
  | `position` | number | Yes | Position in status list (e.g. 0, 1, 2...) |
  | `description` | string | No | Status description |
  | `indefinite` | boolean | No | Whether the status is indefinite |

  #### Output [#output-74]

  | Parameter | Type | Description |
  | - | - | - |
  | `projectStatus` | object | The created project status |
  | ↳ `id` | string | Project status ID |
  | ↳ `name` | string | Status name |
  | ↳ `description` | string | Status description |
  | ↳ `color` | string | Status color (hex) |
  | ↳ `indefinite` | boolean | Whether this status is indefinite |
  | ↳ `position` | number | Position in list |
  | ↳ `type` | string | Status type (backlog, planned, started, paused, completed, canceled) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last updated timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Update Project Status [#linear-update-project-status]

Update a project status in Linear

<ReferenceDetails>
  #### Input [#input-75]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `statusId` | string | Yes | Project status ID to update |
  | `name` | string | No | Updated status name |
  | `color` | string | No | Updated status color |
  | `description` | string | No | Updated description |
  | `indefinite` | boolean | No | Updated indefinite flag |
  | `position` | number | No | Updated position |

  #### Output [#output-75]

  | Parameter | Type | Description |
  | - | - | - |
  | `projectStatus` | object | The updated project status |
  | ↳ `id` | string | Project status ID |
  | ↳ `name` | string | Status name |
  | ↳ `description` | string | Status description |
  | ↳ `color` | string | Status color (hex) |
  | ↳ `indefinite` | boolean | Whether this status is indefinite |
  | ↳ `position` | number | Position in list |
  | ↳ `type` | string | Status type (backlog, planned, started, paused, completed, canceled) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last updated timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

### Linear Delete Project Status [#linear-delete-project-status]

Delete a project status in Linear

<ReferenceDetails>
  #### Input [#input-76]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `statusId` | string | Yes | Project status ID to delete |

  #### Output [#output-76]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Whether the deletion was successful |
</ReferenceDetails>

### Linear List Project Statuses [#linear-list-project-statuses]

List all project statuses in Linear

<ReferenceDetails>
  #### Input [#input-77]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `first` | number | No | Number of statuses to return (default: 50) |
  | `after` | string | No | Cursor for pagination |

  #### Output [#output-77]

  | Parameter | Type | Description |
  | - | - | - |
  | `pageInfo` | object | Pagination information |
  | ↳ `hasNextPage` | boolean | Whether there are more results |
  | ↳ `endCursor` | string | Cursor for the next page |
  | `projectStatuses` | array | List of project statuses |
  | ↳ `id` | string | Project status ID |
  | ↳ `name` | string | Status name |
  | ↳ `description` | string | Status description |
  | ↳ `color` | string | Status color (hex) |
  | ↳ `indefinite` | boolean | Whether this status is indefinite |
  | ↳ `position` | number | Position in list |
  | ↳ `type` | string | Status type (backlog, planned, started, paused, completed, canceled) |
  | ↳ `createdAt` | string | Creation timestamp (ISO 8601) |
  | ↳ `updatedAt` | string | Last updated timestamp (ISO 8601) |
  | ↳ `archivedAt` | string | Archive timestamp (ISO 8601) |
</ReferenceDetails>

## Triggers [#triggers]

A trigger starts a workflow when a supported event occurs in this service.

### Linear Comment Created [#linear-comment-created]

Trigger workflow when a new comment is created in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-78]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Comment) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Comment ID |
  | ↳ `body` | string | Comment body text |
  | ↳ `edited` | boolean | Whether the comment body has been edited (Linear webhook payload field) |
  | ↳ `url` | string | Comment URL |
  | ↳ `issueId` | string | Issue ID this comment belongs to |
  | ↳ `userId` | string | User ID of the comment author |
  | ↳ `editedAt` | string | Last edited timestamp |
  | ↳ `createdAt` | string | Comment creation timestamp |
  | ↳ `updatedAt` | string | Comment last update timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `resolvedAt` | string | Resolved timestamp (for comment threads) |
  | ↳ `parent` | object | Parent comment object (if this is a reply) |
  | ↳ `reactionData` | object | Reaction data for the comment |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Comment Updated [#linear-comment-updated]

Trigger workflow when a comment is updated in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-79]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Comment) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Comment ID |
  | ↳ `body` | string | Comment body text |
  | ↳ `edited` | boolean | Whether the comment body has been edited (Linear webhook payload field) |
  | ↳ `url` | string | Comment URL |
  | ↳ `issueId` | string | Issue ID this comment belongs to |
  | ↳ `userId` | string | User ID of the comment author |
  | ↳ `editedAt` | string | Last edited timestamp |
  | ↳ `createdAt` | string | Comment creation timestamp |
  | ↳ `updatedAt` | string | Comment last update timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `resolvedAt` | string | Resolved timestamp (for comment threads) |
  | ↳ `parent` | object | Parent comment object (if this is a reply) |
  | ↳ `reactionData` | object | Reaction data for the comment |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Customer Request Created [#linear-customer-request-created]

Trigger workflow when a new customer request is created in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-80]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (CustomerNeed) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Customer request ID |
  | ↳ `body` | string | Request body content (Markdown) |
  | ↳ `priority` | number | Request priority (0 = Not important, 1 = Important) |
  | ↳ `customerId` | string | Customer ID |
  | ↳ `issueId` | string | Linked issue ID |
  | ↳ `projectId` | string | Associated project ID |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `url` | string | Customer request URL |
  | ↳ `createdAt` | string | Request creation timestamp |
  | ↳ `updatedAt` | string | Request last update timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Customer Request Updated [#linear-customer-request-updated]

Trigger workflow when a customer request is updated in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-81]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (CustomerNeed) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Customer request ID |
  | ↳ `body` | string | Request body content (Markdown) |
  | ↳ `priority` | number | Request priority (0 = Not important, 1 = Important) |
  | ↳ `customerId` | string | Customer ID |
  | ↳ `issueId` | string | Linked issue ID |
  | ↳ `projectId` | string | Associated project ID |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `url` | string | Customer request URL |
  | ↳ `createdAt` | string | Request creation timestamp |
  | ↳ `updatedAt` | string | Request last update timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Cycle Created [#linear-cycle-created]

Trigger workflow when a new cycle is created in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-82]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Cycle) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Cycle ID |
  | ↳ `number` | number | Cycle number |
  | ↳ `name` | string | Cycle name |
  | ↳ `description` | string | Cycle description |
  | ↳ `teamId` | string | Team ID |
  | ↳ `startsAt` | string | Cycle start date |
  | ↳ `endsAt` | string | Cycle end date |
  | ↳ `completedAt` | string | Completed timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `autoArchivedAt` | string | Auto-archived timestamp |
  | ↳ `createdAt` | string | Cycle creation timestamp |
  | ↳ `updatedAt` | string | Cycle last update timestamp |
  | ↳ `progress` | number | Cycle progress (0-1) |
  | ↳ `scopeHistory` | array | History of scope changes |
  | ↳ `completedScopeHistory` | array | History of completed scope |
  | ↳ `inProgressScopeHistory` | array | History of in-progress scope |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Cycle Updated [#linear-cycle-updated]

Trigger workflow when a cycle is updated in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-83]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Cycle) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Cycle ID |
  | ↳ `number` | number | Cycle number |
  | ↳ `name` | string | Cycle name |
  | ↳ `description` | string | Cycle description |
  | ↳ `teamId` | string | Team ID |
  | ↳ `startsAt` | string | Cycle start date |
  | ↳ `endsAt` | string | Cycle end date |
  | ↳ `completedAt` | string | Completed timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `autoArchivedAt` | string | Auto-archived timestamp |
  | ↳ `createdAt` | string | Cycle creation timestamp |
  | ↳ `updatedAt` | string | Cycle last update timestamp |
  | ↳ `progress` | number | Cycle progress (0-1) |
  | ↳ `scopeHistory` | array | History of scope changes |
  | ↳ `completedScopeHistory` | array | History of completed scope |
  | ↳ `inProgressScopeHistory` | array | History of in-progress scope |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Issue Created [#linear-issue-created]

Trigger workflow when a new issue is created in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-84]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Issue) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
  | ↳ `description` | string | Issue description |
  | ↳ `identifier` | string | Issue identifier (e.g., ENG-123) |
  | ↳ `number` | number | Issue number |
  | ↳ `priority` | number | Issue priority (0 = None, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low) |
  | ↳ `estimate` | number | Issue estimate |
  | ↳ `sortOrder` | number | Issue sort order |
  | ↳ `teamId` | string | Team ID |
  | ↳ `stateId` | string | Workflow state ID |
  | ↳ `assigneeId` | string | Assignee user ID |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `projectId` | string | Project ID |
  | ↳ `cycleId` | string | Cycle ID |
  | ↳ `parentId` | string | Parent issue ID (for sub-issues) |
  | ↳ `labelIds` | array | Array of label IDs |
  | ↳ `subscriberIds` | array | Array of subscriber user IDs |
  | ↳ `url` | string | Issue URL |
  | ↳ `branchName` | string | Git branch name |
  | ↳ `customerTicketCount` | number | Number of customer tickets |
  | ↳ `dueDate` | string | Issue due date |
  | ↳ `snoozedUntilAt` | string | Snoozed until timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `canceledAt` | string | Canceled timestamp |
  | ↳ `completedAt` | string | Completed timestamp |
  | ↳ `startedAt` | string | Started timestamp |
  | ↳ `triagedAt` | string | Triaged timestamp |
  | ↳ `createdAt` | string | Issue creation timestamp |
  | ↳ `updatedAt` | string | Issue last update timestamp |
  | ↳ `autoArchivedAt` | string | Auto-archived timestamp |
  | ↳ `autoClosedAt` | string | Auto-closed timestamp |
  | ↳ `previousIdentifiers` | array | Array of previous issue identifiers (when an issue is moved between teams) |
  | ↳ `integrationSourceType` | string | Integration source type (if created from an integration) |
  | ↳ `slaStartedAt` | string | SLA timer started timestamp |
  | ↳ `slaBreachesAt` | string | SLA breach timestamp |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Issue Removed [#linear-issue-removed]

Trigger workflow when an issue is removed/deleted in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-85]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Issue) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
  | ↳ `description` | string | Issue description |
  | ↳ `identifier` | string | Issue identifier (e.g., ENG-123) |
  | ↳ `number` | number | Issue number |
  | ↳ `priority` | number | Issue priority (0 = None, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low) |
  | ↳ `estimate` | number | Issue estimate |
  | ↳ `sortOrder` | number | Issue sort order |
  | ↳ `teamId` | string | Team ID |
  | ↳ `stateId` | string | Workflow state ID |
  | ↳ `assigneeId` | string | Assignee user ID |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `projectId` | string | Project ID |
  | ↳ `cycleId` | string | Cycle ID |
  | ↳ `parentId` | string | Parent issue ID (for sub-issues) |
  | ↳ `labelIds` | array | Array of label IDs |
  | ↳ `subscriberIds` | array | Array of subscriber user IDs |
  | ↳ `url` | string | Issue URL |
  | ↳ `branchName` | string | Git branch name |
  | ↳ `customerTicketCount` | number | Number of customer tickets |
  | ↳ `dueDate` | string | Issue due date |
  | ↳ `snoozedUntilAt` | string | Snoozed until timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `canceledAt` | string | Canceled timestamp |
  | ↳ `completedAt` | string | Completed timestamp |
  | ↳ `startedAt` | string | Started timestamp |
  | ↳ `triagedAt` | string | Triaged timestamp |
  | ↳ `createdAt` | string | Issue creation timestamp |
  | ↳ `updatedAt` | string | Issue last update timestamp |
  | ↳ `autoArchivedAt` | string | Auto-archived timestamp |
  | ↳ `autoClosedAt` | string | Auto-closed timestamp |
  | ↳ `previousIdentifiers` | array | Array of previous issue identifiers (when an issue is moved between teams) |
  | ↳ `integrationSourceType` | string | Integration source type (if created from an integration) |
  | ↳ `slaStartedAt` | string | SLA timer started timestamp |
  | ↳ `slaBreachesAt` | string | SLA breach timestamp |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Issue Updated [#linear-issue-updated]

Trigger workflow when an issue is updated in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-86]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Issue) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Issue ID |
  | ↳ `title` | string | Issue title |
  | ↳ `description` | string | Issue description |
  | ↳ `identifier` | string | Issue identifier (e.g., ENG-123) |
  | ↳ `number` | number | Issue number |
  | ↳ `priority` | number | Issue priority (0 = None, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low) |
  | ↳ `estimate` | number | Issue estimate |
  | ↳ `sortOrder` | number | Issue sort order |
  | ↳ `teamId` | string | Team ID |
  | ↳ `stateId` | string | Workflow state ID |
  | ↳ `assigneeId` | string | Assignee user ID |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `projectId` | string | Project ID |
  | ↳ `cycleId` | string | Cycle ID |
  | ↳ `parentId` | string | Parent issue ID (for sub-issues) |
  | ↳ `labelIds` | array | Array of label IDs |
  | ↳ `subscriberIds` | array | Array of subscriber user IDs |
  | ↳ `url` | string | Issue URL |
  | ↳ `branchName` | string | Git branch name |
  | ↳ `customerTicketCount` | number | Number of customer tickets |
  | ↳ `dueDate` | string | Issue due date |
  | ↳ `snoozedUntilAt` | string | Snoozed until timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `canceledAt` | string | Canceled timestamp |
  | ↳ `completedAt` | string | Completed timestamp |
  | ↳ `startedAt` | string | Started timestamp |
  | ↳ `triagedAt` | string | Triaged timestamp |
  | ↳ `createdAt` | string | Issue creation timestamp |
  | ↳ `updatedAt` | string | Issue last update timestamp |
  | ↳ `autoArchivedAt` | string | Auto-archived timestamp |
  | ↳ `autoClosedAt` | string | Auto-closed timestamp |
  | ↳ `previousIdentifiers` | array | Array of previous issue identifiers (when an issue is moved between teams) |
  | ↳ `integrationSourceType` | string | Integration source type (if created from an integration) |
  | ↳ `slaStartedAt` | string | SLA timer started timestamp |
  | ↳ `slaBreachesAt` | string | SLA breach timestamp |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Label Created [#linear-label-created]

Trigger workflow when a new label is created in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-87]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (IssueLabel) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `description` | string | Label description |
  | ↳ `color` | string | Label color (hex code) |
  | ↳ `organizationId` | string | Organization ID |
  | ↳ `teamId` | string | Team ID (if team-specific label) |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `isGroup` | boolean | Whether this is a label group |
  | ↳ `parentId` | string | Parent label ID (for nested labels) |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `createdAt` | string | Label creation timestamp |
  | ↳ `updatedAt` | string | Label last update timestamp |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Label Updated [#linear-label-updated]

Trigger workflow when a label is updated in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-88]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (IssueLabel) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Label ID |
  | ↳ `name` | string | Label name |
  | ↳ `description` | string | Label description |
  | ↳ `color` | string | Label color (hex code) |
  | ↳ `organizationId` | string | Organization ID |
  | ↳ `teamId` | string | Team ID (if team-specific label) |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `isGroup` | boolean | Whether this is a label group |
  | ↳ `parentId` | string | Parent label ID (for nested labels) |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `createdAt` | string | Label creation timestamp |
  | ↳ `updatedAt` | string | Label last update timestamp |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Project Created [#linear-project-created]

Trigger workflow when a new project is created in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-11]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-89]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Project) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | ↳ `description` | string | Project description |
  | ↳ `icon` | string | Project icon |
  | ↳ `color` | string | Project color |
  | ↳ `state` | string | Project state (planned, started, completed, canceled, backlog) |
  | ↳ `slugId` | string | Project slug ID |
  | ↳ `url` | string | Project URL |
  | ↳ `leadId` | string | Project lead user ID |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `memberIds` | array | Array of member user IDs |
  | ↳ `teamIds` | array | Array of team IDs |
  | ↳ `priority` | number | Project priority |
  | ↳ `sortOrder` | number | Project sort order |
  | ↳ `startDate` | string | Project start date |
  | ↳ `targetDate` | string | Project target date |
  | ↳ `startedAt` | string | Started timestamp |
  | ↳ `completedAt` | string | Completed timestamp |
  | ↳ `canceledAt` | string | Canceled timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `createdAt` | string | Project creation timestamp |
  | ↳ `updatedAt` | string | Project last update timestamp |
  | ↳ `progress` | number | Project progress (0-1) |
  | ↳ `scope` | number | Project scope estimate |
  | ↳ `statusId` | string | Project status ID |
  | ↳ `bodyData` | object | Project body data (rich text content) |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Project Update Created [#linear-project-update-created]

Trigger workflow when a new project update is posted in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-90]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (ProjectUpdate) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Project update ID |
  | ↳ `body` | string | Update body content |
  | ↳ `url` | string | Project update URL |
  | ↳ `projectId` | string | Project ID |
  | ↳ `userId` | string | User ID of the author |
  | ↳ `health` | string | Project health (onTrack, atRisk, offTrack) |
  | ↳ `editedAt` | string | Last edited timestamp |
  | ↳ `createdAt` | string | Update creation timestamp |
  | ↳ `updatedAt` | string | Update last update timestamp |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Project Updated [#linear-project-updated]

Trigger workflow when a project is updated in Linear

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-91]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Project) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | ↳ `description` | string | Project description |
  | ↳ `icon` | string | Project icon |
  | ↳ `color` | string | Project color |
  | ↳ `state` | string | Project state (planned, started, completed, canceled, backlog) |
  | ↳ `slugId` | string | Project slug ID |
  | ↳ `url` | string | Project URL |
  | ↳ `leadId` | string | Project lead user ID |
  | ↳ `creatorId` | string | Creator user ID |
  | ↳ `memberIds` | array | Array of member user IDs |
  | ↳ `teamIds` | array | Array of team IDs |
  | ↳ `priority` | number | Project priority |
  | ↳ `sortOrder` | number | Project sort order |
  | ↳ `startDate` | string | Project start date |
  | ↳ `targetDate` | string | Project target date |
  | ↳ `startedAt` | string | Started timestamp |
  | ↳ `completedAt` | string | Completed timestamp |
  | ↳ `canceledAt` | string | Canceled timestamp |
  | ↳ `archivedAt` | string | Archived timestamp |
  | ↳ `createdAt` | string | Project creation timestamp |
  | ↳ `updatedAt` | string | Project last update timestamp |
  | ↳ `progress` | number | Project progress (0-1) |
  | ↳ `scope` | number | Project scope estimate |
  | ↳ `statusId` | string | Project status ID |
  | ↳ `bodyData` | object | Project body data (rich text content) |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>

### Linear Webhook [#linear-webhook]

Trigger workflow from Linear events you select when creating the webhook in Linear (not guaranteed to be every model or event type).

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-14]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | API Key |
  | `teamId` | string | No | Team ID |

  #### Output [#output-92]

  | Parameter | Type | Description |
  | - | - | - |
  | `action` | string | Action performed (create, update, remove) |
  | `type` | string | Entity type (Issue, Comment, Project, Cycle, IssueLabel, ProjectUpdate, etc.) |
  | `webhookId` | string | Webhook ID |
  | `webhookTimestamp` | number | Webhook timestamp (milliseconds) |
  | `organizationId` | string | Organization ID |
  | `createdAt` | string | Event creation timestamp |
  | `url` | string | URL of the subject entity in Linear (top-level webhook payload) |
  | `actor` | object | |
  | ↳ `id` | string | User ID |
  | ↳ `name` | string | User display name |
  | ↳ `actorType` | string | Actor type from Linear (e.g. user, OauthClient, Integration) |
  | ↳ `email` | string | Actor email (present for user actors in Linear webhook payloads) |
  | ↳ `url` | string | Actor profile URL in Linear (distinct from the top-level subject entity `url`) |
  | `data` | object | Complete entity data object |
  | `updatedFrom` | object | Previous values for changed fields (only present on update) |
</ReferenceDetails>
