Sapilon becomes publicly available on 1 December 2026: 42 days to go. The core goes open source the same day →

Jira integration

In short

Search, create and update issues, comments and transitions. Connect it on the Integrations page; your app then calls Jira through Sapilon without ever holding an Atlassian credential.

Lets your app search issues with JQL, create and update issues, add comments and move issues through their workflow on a Jira Cloud site, with an Atlassian API token.

The app acts as the account the token belongs to and sees only what that account can see.

Connecting

On the Integrations page choose Connect on Jira and fill in:

  • Site name — The part before .atlassian.net in your Jira address.
  • Account email — The email of the Atlassian account the token belongs to. Use a shared service account for anything long-lived.
  • API token — id.atlassian.com/manage-profile/security/api-tokens → Create API token.

Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.

  • Jira Cloud only; Jira Data Center is not supported.

What your app can do

Only these requests are available; anything else is refused.

  • GET /myself
  • GET /project/search
  • GET|POST /search/jql
  • POST /issue
  • GET|PUT /issue/*
  • GET|POST /issue/*/comment
  • GET|POST /issue/*/transitions

How the agent uses it

Use integrations.request('jira', …); paths are relative to https://<site>.atlassian.net/rest/api/3.

  • GET /myself — the connected account.
  • GET /project/search — projects. Example: { method: 'GET', path: '/project/search' }.
  • GET|POST /search/jql — search with JQL. Example: { method: 'POST', path: '/search/jql', body: { jql: 'project = OPS AND status != Done', fields: ['summary', 'status', 'assignee'], maxResults: 50 } }; page with nextPageToken.
  • POST /issue — create. Example: { method: 'POST', path: '/issue', body: { fields: { project: { key: 'OPS' }, issuetype: { name: 'Task' }, summary: 'Renew certificate' } } }.
  • GET|PUT /issue/{key} — read or update fields. Example: { method: 'PUT', path: '/issue/OPS-12', body: { fields: { summary: 'Renew TLS certificate' } } }.
  • GET|POST /issue/{key}/comment — Comment bodies are Atlassian Document Format: body: { body: { type: 'doc', version: 1, content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Done' }] }] } }.
  • GET|POST /issue/{key}/transitions — list the available transitions, then move: body: { transition: { id: '31' } }.

Deleting is not allowed.

More from Atlassian: https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/

Last updated .

Was this page helpful?