Linear
Linear is a project management and issue tracking tool designed primarily for software teams.
Categories: Project Management
Type: linear/v1
Connections
Version: 1
OAuth2 Authorization Code
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| clientId | Client Id | STRING | true | |
| clientSecret | Client Secret | STRING | true |
Connection Setup
- Login to the dashboard at https://linear.app/login.
- You need to create a new OAuth2 Application to get credentials. First click on your profile.
- Click on Settings.
- Under Administration section, choose API.
- Click on New OAuth application.
- Fill information and enable Public.
- Enable Webhooks and fill information. Then click Create.
- Copy the Client ID and Client secret. Use these credentials to create a connection in ByteChef.
Actions
Create Issue
Name: createIssue
Creates a new issue.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| title | Issue Title | STRING | The title of the new issue. | true |
| teamId | Team ID | STRING | The ID of the team where this issue should be created. | true |
| statusId | Status | STRING | The status of the issue. | true |
| priority | Priority | INTEGER Options0, 1, 2, 3, 4 | The priority of the issue. | false |
| assigneeId | Assignee ID | STRING | The identifier of the user to assign the issue to. | false |
| description | Description | STRING | The detailed description of the issue. | false |
Example JSON Structure
{
"label" : "Create Issue",
"name" : "createIssue",
"parameters" : {
"title" : "",
"teamId" : "",
"statusId" : "",
"priority" : 1,
"assigneeId" : "",
"description" : ""
},
"type" : "linear/v1/createIssue"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| success | BOOLEAN Optionstrue, false | Whether the operation was successful. |
| issue | OBJECT Properties{STRING(id), STRING(title)} | The issue that was created or updated. |
Output Example
{
"success" : false,
"issue" : {
"id" : "",
"title" : ""
}
}Find Team ID, Status ID and Assignee ID
To find the Team ID, click here.
To find the Status ID, click here.
To find the Assignee ID, click here.
Update Issue
Name: updateIssue
Update an issue.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| teamId | Team ID | STRING | The ID of the team where this issue should be created. | true |
| issueId | Issue ID | STRING Depends OnteamId | The identifier of the issue to update. | true |
| title | Issue Title | STRING | The title of the new issue. | false |
| statusId | Status | STRING | The status of the issue. | false |
| priority | Priority | INTEGER Options0, 1, 2, 3, 4 | The priority of the issue. | false |
| assigneeId | Assignee ID | STRING | The identifier of the user to assign the issue to. | false |
| description | Description | STRING | The detailed description of the issue. | false |
Example JSON Structure
{
"label" : "Update Issue",
"name" : "updateIssue",
"parameters" : {
"teamId" : "",
"issueId" : "",
"title" : "",
"statusId" : "",
"priority" : 1,
"assigneeId" : "",
"description" : ""
},
"type" : "linear/v1/updateIssue"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| success | BOOLEAN Optionstrue, false | Whether the operation was successful. |
| issue | OBJECT Properties{STRING(id), STRING(title)} | The issue that was created or updated. |
Output Example
{
"success" : false,
"issue" : {
"id" : "",
"title" : ""
}
}Find Team ID, Issue ID, Status ID and Assignee ID
To find the Team ID, click here.
To find the Issue ID, click here.
To find the Status ID, click here.
To find the Assignee ID, click here.
Create Project
Name: createProject
Creates a new project.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| name | Project Name | STRING | The name of the project. | true |
| teamId | Team ID | STRING | The ID of the team where this project should be created. | true |
| statusId | Status | STRING | The status of the project. | false |
| priority | Priority | INTEGER Options0, 1, 2, 3, 4 | The priority of the project. | false |
| startDate | Start Date | DATE | The planned start date of the project. | false |
| description | Description | STRING | The detailed description of the project. | false |
Example JSON Structure
{
"label" : "Create Project",
"name" : "createProject",
"parameters" : {
"name" : "",
"teamId" : "",
"statusId" : "",
"priority" : 1,
"startDate" : "2021-01-01",
"description" : ""
},
"type" : "linear/v1/createProject"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| success | BOOLEAN Optionstrue, false | Whether the operation was successful. |
| project | OBJECT Properties{STRING(id), STRING(name)} | The project that was created or updated. |
Output Example
{
"success" : false,
"project" : {
"id" : "",
"name" : ""
}
}Find Team ID and Status ID
To find the Team ID, click here.
To find the Status ID, click here.
Update Project
Name: updateProject
Update a project.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| projectId | Project ID | STRING | The identifier of the project to update. | true |
| name | Project Name | STRING | The name of the project. | false |
| statusId | Status | STRING | The status of the project. | false |
| priority | Priority | INTEGER Options0, 1, 2, 3, 4 | The priority of the project. | false |
| startDate | Start Date | DATE | The planned start date of the project. | false |
| description | Description | STRING | The detailed description of the issue. | false |
Example JSON Structure
{
"label" : "Update Project",
"name" : "updateProject",
"parameters" : {
"projectId" : "",
"name" : "",
"statusId" : "",
"priority" : 1,
"startDate" : "2021-01-01",
"description" : ""
},
"type" : "linear/v1/updateProject"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| success | BOOLEAN Optionstrue, false | Whether the operation was successful. |
| project | OBJECT Properties{STRING(id), STRING(name)} | The project that was created or updated. |
Output Example
{
"success" : false,
"project" : {
"id" : "",
"name" : ""
}
}Find Project ID and Status ID
To find the Project ID, click here.
To find the Status ID, click here.
Create Comment
Name: createComment
Creates a new comment.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| teamId | Team ID | STRING | The ID of the team where this issue should be created. | false |
| issueId | Issue ID | STRING Depends OnteamId | The identifier of the issue to update. | true |
| body | Comment Body | STRING | The comment content in markdown format. | true |
Example JSON Structure
{
"label" : "Create Comment",
"name" : "createComment",
"parameters" : {
"teamId" : "",
"issueId" : "",
"body" : ""
},
"type" : "linear/v1/createComment"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| success | BOOLEAN Optionstrue, false | Whether the operation was successful. |
| comment | OBJECT Properties{STRING(id), {STRING(id)}(issue), STRING(body)} | The comment that was created. |
Output Example
{
"success" : false,
"comment" : {
"id" : "",
"issue" : {
"id" : ""
},
"body" : ""
}
}Find Team ID and Issue ID
To find the Team ID, click here.
To find the Issue ID, click here.
Raw Graphql Query
Name: rawGraphqlQuery
Perform a raw Graphql query.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| query | Query | STRING | The query to perform. | true |
| variables | Variables | STRING | The variables for the query. | false |
Example JSON Structure
{
"label" : "Raw Graphql Query",
"name" : "rawGraphqlQuery",
"parameters" : {
"query" : "",
"variables" : ""
},
"type" : "linear/v1/rawGraphqlQuery"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| data | OBJECT Properties{} | Response data. |
Output Example
{
"data" : { }
}Triggers
New Issue
Name: newIssue
Triggers when new issue is created.
Type: DYNAMIC_WEBHOOK
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| allPublicTeams | All Public Teams | BOOLEAN Optionstrue, false | If true, the webhook will be created for all public teams. | true |
| teamId | Team ID | STRING | true |
Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| id | STRING | The unique identifier of the entity. |
| title | STRING | The issue's title. |
| team | OBJECT Properties{STRING(id), STRING(name)} | The team that the issue is associated with. |
| state | OBJECT Properties{STRING(name)} | The workflow state that the issue is associated with. |
| priority | STRING | The priority of the issue. |
| assignee | OBJECT Properties{STRING(id), STRING(name)} | The user to whom the issue is assigned to. |
| description | STRING | The issue's description in markdown format. |
JSON Example
{
"label" : "New Issue",
"name" : "newIssue",
"parameters" : {
"allPublicTeams" : false,
"teamId" : ""
},
"type" : "linear/v1/newIssue"
}Find Team ID
To find the Team ID, click here.
Updated Issue
Name: updatedIssue
Triggers when an issue is updated.
Type: DYNAMIC_WEBHOOK
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| allPublicTeams | All Public Teams | BOOLEAN Optionstrue, false | If true, the webhook will be created for all public teams. | true |
| teamId | Team ID | STRING | true |
Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| id | STRING | The unique identifier of the entity. |
| title | STRING | The issue's title. |
| team | OBJECT Properties{STRING(id), STRING(name)} | The team that the issue is associated with. |
| state | OBJECT Properties{STRING(name)} | The workflow state that the issue is associated with. |
| priority | STRING | The priority of the issue. |
| assignee | OBJECT Properties{STRING(id), STRING(name)} | The user to whom the issue is assigned to. |
| description | STRING | The issue's description in markdown format. |
JSON Example
{
"label" : "Updated Issue",
"name" : "updatedIssue",
"parameters" : {
"allPublicTeams" : false,
"teamId" : ""
},
"type" : "linear/v1/updatedIssue"
}Find Team ID
To find the Team ID, click here.
Removed Issue
Name: removedIssue
Triggers when an issue is removed.
Type: DYNAMIC_WEBHOOK
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| allPublicTeams | All Public Teams | BOOLEAN Optionstrue, false | If true, the webhook will be created for all public teams. | true |
| teamId | Team ID | STRING | true |
Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| id | STRING | The unique identifier of the entity. |
| title | STRING | The issue's title. |
| team | OBJECT Properties{STRING(id), STRING(name)} | The team that the issue is associated with. |
| state | OBJECT Properties{STRING(name)} | The workflow state that the issue is associated with. |
| priority | STRING | The priority of the issue. |
| assignee | OBJECT Properties{STRING(id), STRING(name)} | The user to whom the issue is assigned to. |
| description | STRING | The issue's description in markdown format. |
JSON Example
{
"label" : "Removed Issue",
"name" : "removedIssue",
"parameters" : {
"allPublicTeams" : false,
"teamId" : ""
},
"type" : "linear/v1/removedIssue"
}Find Team ID
To find the Team ID, click here.
What to do if your action is not listed here?
If this component doesn't have the action you need, you can use Custom Action to create your own. Custom Actions empower you to define HTTP requests tailored to your specific requirements, allowing for greater flexibility in integrating with external services or APIs.
To create a Custom Action, simply specify the desired HTTP method, path, and any necessary parameters. This way, you can extend the functionality of your component beyond the predefined actions, ensuring that you can meet all your integration needs effectively.
Additional Instructions
How to find the Team ID
- Method 1: Via API
Use the {teams{nodes{id name}}} query to retrieve a list of all teams and their IDs.
The Team ID can also be found in the output of the following triggers:
- New Issue Trigger
- Removed Issue Trigger
- Updated Issue Trigger
How to find the Issue ID
- Method 1: Via API
Use the {issues{nodes{id title}}} query to retrieve a list of all issues and their IDs.
The Issue ID can also be found in the output of the following actions and triggers:
- Create Comment
- Create Issue
- Update Issue
- New Issue Trigger
- Removed Issue Trigger
- Updated Issue Trigger
How to find the Issue Status ID
- Method 1: Via API
Use the {workflowStates{nodes{id name}}} query to retrieve a list of all statuses and their IDs.
How to find the Assignee ID
- Method 1: Via API
Use the {users{nodes{id displayName}}} query to retrieve a list of all assignees and their IDs.
The Assignee ID can also be found in the output of the following triggers:
- New Issue Trigger
- Removed Issue Trigger
- Updated Issue Trigger
How to find the Project Status ID
- Method 1: Via API
Use the {projectStatuses {nodes {id name}}} query to retrieve a list of all statuses and their IDs.
How to find the Project ID
- Method 1: Via API
Use the {projects{nodes{id name}}} query to retrieve a list of all projects and their IDs.
The Project ID can also be found in the output of the following actions:
- Create Project
- Update Project
How is this guide?
Last updated on