Setu Recipes: reusable workflows across every app.Browse templates

Integrations / Jira

Jira

Issue tracking and project management for software teams.

10 actions OAuth 2 5 read3 write2 destructive Calls api.atlassian.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "jira" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
read:jira-workRead your Jira projects and issues
write:jira-workCreate and update Jira issues and comments
read:jira-userSee Jira user profiles
offline_accessStay connected without asking you to sign in again

Actions

Add commentwritejira.add_commentAdd a comment to an issue.

Needs scope: write:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
issue_keystringRequiredIssue key
textstringRequiredComment text
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.add_comment",
  input: {
    "cloud_id": "<cloud_id>",
    "issue_key": "<issue_key>",
    "text": "<text>"
  },
});
Create issuewritejira.create_issueCreate an issue in a project. Needs the project key, an issue type such as Task or Bug, a title and a description.

Needs scope: write:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
project_keystringRequiredProject key, for example ABC
issue_typestringRequiredTask, Bug, Story...
summarystringRequiredTitle
descriptionstringRequiredPlain text description
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.create_issue",
  input: {
    "cloud_id": "<cloud_id>",
    "project_key": "<project_key>",
    "issue_type": "<issue_type>",
    "summary": "<summary>",
    "description": "<description>"
  },
});
Delete commentdestructivejira.delete_commentDelete a comment from an issue.

Needs scope: write:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
issue_keystringRequiredIssue key
comment_idstringRequiredComment ID
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.delete_comment",
  input: {
    "cloud_id": "<cloud_id>",
    "issue_key": "<issue_key>",
    "comment_id": "<comment_id>"
  },
  confirm: true,
});
Delete issuedestructivejira.delete_issuePermanently delete an issue.

Needs scope: write:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
issue_keystringRequiredIssue key
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.delete_issue",
  input: {
    "cloud_id": "<cloud_id>",
    "issue_key": "<issue_key>"
  },
  confirm: true,
});
Get issuereadjira.get_issueRead one issue: its summary, status, assignee and description.

Needs scope: read:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
issue_keystringRequiredIssue key, for example ABC-12
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.get_issue",
  input: {
    "cloud_id": "<cloud_id>",
    "issue_key": "<issue_key>"
  },
});
List projectsreadjira.list_projectsList Jira projects on a site.

Needs scope: read:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.list_projects",
  input: {
    "cloud_id": "<cloud_id>"
  },
});
List sitesreadjira.list_sitesList the Atlassian sites (Jira and Confluence) this connection can use. Call this first to get a cloud_id for the other tools.

Needs scope: read:jira-work

No input.

TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.list_sites",
  input: {},
});
List transitionsreadjira.list_transitionsList the status changes an issue can make right now.

Needs scope: read:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
issue_keystringRequiredIssue key
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.list_transitions",
  input: {
    "cloud_id": "<cloud_id>",
    "issue_key": "<issue_key>"
  },
});
Search issuesreadjira.search_issuesFind issues with a JQL query, for example project = ABC AND status = Open.

Needs scope: read:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
jqlstringRequiredJQL query
max_resultsintegerOptional
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.search_issues",
  input: {
    "cloud_id": "<cloud_id>",
    "jql": "<jql>"
  },
});
Move issuewritejira.transition_issueChange an issue's status using a transition ID from list_transitions.

Needs scope: write:jira-work

InputTypeDescription
cloud_idstringRequiredSite ID from list_sites (call that first)
issue_keystringRequiredIssue key
transition_idstringRequiredTransition ID
TypeScript
await setu.execute({
  userId: "user_1",
  action: "jira.transition_issue",
  input: {
    "cloud_id": "<cloud_id>",
    "issue_key": "<issue_key>",
    "transition_id": "<transition_id>"
  },
});