Skip to main content

Linear

Linear's unified query interface lets you create and manage issues, sub-issues, and projects directly from Appsmith. Each command returns JSON so you can wire Linear workflows into widgets, automations, or downstream datasources without custom wrappers.

Connect Linear

Authenticate with Linear using Appsmith's built-in OAuth portal—no tokens or client IDs are required.

  1. Go to Datasources → + New and pick Linear.
  2. Click Connect to open the Linear consent screen in a pop-up window.
  3. Review the scopes Appsmith requests (issue and project access) and click Authorize.

If you ever revoke the OAuth grant inside Linear, return to the datasource and click Reconnect to refresh the credentials.

Query Linear

All Linear commands return JSON that mirrors Linear's GraphQL schema. Use the Commands dropdown inside the query editor to switch between the supported operations listed below.

Create Issue

Creates a new issue for a team and returns the freshly created record (id, identifier, timestamps, and workflow metadata).

Team Id string

The Linear team that should own the new issue. Collect the UUID from Linear's team settings or copy it from another issue payload. This field is required.

Title string

The issue title shown inside Linear. Keep it short and action-oriented so automations stay readable. This field is required.

Description string

Optional Markdown body that explains context, reproduction steps, or acceptance criteria.

Status Id string

The Linear workflow state to place the issue into (for example, "In Progress"). Leave blank to use the team's default first status.

Priority integer

A numeric priority from Linear's scale (1 = urgent, 4 = low). Omitting this value keeps the default priority.

Due Date string

ISO 8601 date (for example, 2025-12-31) that Linear uses to populate the due date chip.

Cycle Id string

Connects the issue to a Linear cycle. Provide the UUID returned by Search Issue or Linear's API.

Additional Fields object

JSON blob for any extra properties Linear exposes—such as assigneeId, labelIds, or custom fields.
{
"assigneeId": "a70bdf0f-530a-4887-857d-46151b52b47c",
"labelIds": ["de4ef1e9-9ac5-4a03-96a0-4d9686c8afee"]
}

Update Issue

Partially updates an existing issue—only the fields you send will change. The response includes the updated issue payload for downstream widgets.

Issue Id string

The Linear UUID of the issue you want to modify. Required.

Title string

New title for the issue. Skip this field to keep the current title.

Description string

Updated Markdown body.

Status Id string

Moves the issue to a new workflow state.

Priority integer

Resets priority using Linear's integer scale.

Due Date string

New ISO 8601 due date.

Cycle Id string

Associates the issue with a different cycle.

Additional Fields object

Advanced JSON payload for other mutable fields—such as reassigning via assigneeId or toggling custom booleans.

Get Issue by ID

Fetches the full issue record using its canonical UUID—ideal for refreshing widgets after updates.

Issue Id string

The record ID copied from Linear URLs or query results.

Get Issue by Issue Identifier

Retrieves an issue using the friendly key shown in Linear (for example, ENG-142).

External Id string

The issue identifier composed of the team key and sequence number.

Search Issue

Runs a disjunctive normal form query to filter issues by status, assignee, or other conditions.

Issue Filter Formula string

Provide Linear's filter syntax as a string. Each OR group contains AND clauses for precise targeting.
(statusId = "c168..." AND teamId = "a70b...") OR (assigneeId = "lead-uuid")

Delete Issue

Permanently removes an issue. Linear returns the deleted record's id so you can confirm the operation.

Issue Id string

The UUID of the issue to delete.

Archive Issue

Soft-archives an issue so it no longer appears in active boards but can still be restored later.

Issue Id string

The UUID of the issue to archive.

Create Sub Issue

Creates a child issue inside a parent issue's thread and inherits team metadata automatically.

Parent Id string

UUID of the parent issue. Required.

Team Id string

Team responsible for the sub-issue. Must match the parent's team. Required.

Title string

Sub-issue title. Required.

Description string

Optional Markdown body.

Additional Fields object

JSON payload for fields like lead, assigneeId, or SLA custom fields.

Create Project

Creates a Linear project spanning one or more teams and returns the project id for scheduling.

Team Ids string | array

Accepts either a single team UUID or a JSON array of UUIDs if the project should span multiple teams.

Project Name string

Human-readable name shown in Linear. Required.

Description string

Optional long-form project summary.

Additional Fields object

JSON payload for state, color, target dates, or other project metadata.
{
"state": "planned",
"description": "Launch automation initiative"
}

Update Project

Updates an existing project. Send only the fields you want to change; the response returns the full record.

Project Id string

The UUID of the project to update. Required.

Project Name string

New project name.

Description string

Updated project summary.

Additional Fields object

JSON for properties like state, targetDate, or custom fields.

Get Project by ID

Fetches a single project record for dashboards or automations.

Project Id string

The UUID of the project to retrieve.

Delete Project

Deletes a project permanently. Use with caution because Linear cannot restore deleted projects.

Project Id string

The UUID of the project to delete.

Search Teams

Filters Linear teams using the same disjunctive normal form syntax as issue searches.

Team Filter Formula string

Optional filter string to narrow the response to specific team attributes.

Custom Action

Build bespoke Linear calls with Custom Action when you need mutations or queries that are not exposed above.

Set the Custom Action type to POST and the endpoint to graphql, then use the Body tab to craft the request body and variables. Follow the Linear GraphQL docs for available queries and mutations. Test the call before wiring it into widgets to make sure the schema matches your expectations.

Linear custom action example showing POST and graphql settings

Troubleshooting

  • Re-authenticate: If a query suddenly returns 401 errors, open the Linear datasource and click Reconnect to refresh the OAuth grant.
  • Validate IDs: Copy issueId, projectId, and teamId straight from Linear's URLs or API responses to avoid typos.
  • Inspect responses: Use the Run button and the Response panel to read Linear's error messages—they often call out missing scopes or malformed filter formulas.