Jira
Jira is a project management and issue tracking tool used for software development, task management, and agile project management.
This connector targets Jira Cloud. For the self-hosted product, use Jira Server instead.
Authentication Types
Jira (Cloud) supports 3 authentication methods:
-
OAuth - Create your own Atlassian OAuth app with custom scopes. Every user connects with their Atlassian account.
- Pros: Full control, per-user tracking, production-ready
- Cons: ~2 min setup
-
Instant OAuth - Use Willow's pre-configured Jira app for the fastest setup.
- Pros: Fastest setup, no configuration needed
- Cons: Limited scopes, not recommended for production
-
API Key - Authenticate with one shared Atlassian token: a classic API token (
email:api_token) from a dedicated account, or a scoped token from an Atlassian service account.- Pros: Easy setup
- Cons: Single credential for all users
Configuration
Before using the connector, you need to configure the Jira Organization Domain — the base URL Willow calls. You set it yourself, and the correct value depends on your authentication type. For API Key it depends specifically on which kind of token you paste:
| Authentication type | Credential you enter | Jira Organization Domain to enter | Auth header Willow sends |
|---|---|---|---|
| OAuth | 3LO access token (via consent) | https://api.atlassian.com/ex/jira/{cloudId} (gateway) | Bearer <token> |
| Instant OAuth | 3LO access token (via consent) | https://api.atlassian.com/ex/jira/{cloudId} (gateway) | Bearer <token> |
| API Key — classic token | email:api_token | https://your-org.atlassian.net (bare site) | Basic base64(email:token) |
| API Key — service account | scoped token, no email | https://api.atlassian.com/ex/jira/{cloudId} (gateway) | Bearer <token> |
Why the difference: Atlassian only accepts 3LO and scoped tokens through the api.atlassian.com gateway, while a classic API token (Basic auth) only works against the bare site. Willow picks the header automatically from the credential format — a value containing a colon (email:api_token) is sent as Basic, and a bare token (a scoped service-account token) is sent as Bearer — so you only need to set the Organization Domain to the matching value above.
Finding your Cloud ID
On OAuth and Instant OAuth you can just enter your site, https://your-org.atlassian.net. When you save, Willow looks your Cloud ID up from the site itself and stores the gateway URL instead, then shows you what it saved. Nothing else to do.
To find the Cloud ID yourself — you need it for an API Key with a service-account token, which Willow does not rewrite:
- Sign in to your Jira site in a browser.
- Open
https://your-org.atlassian.net/_edge/tenant_info(replaceyour-orgwith your Jira subdomain). - The page returns JSON like
{"cloudId":"e1acb0fb-318d-4fc3-ba56-db2b0ae14466", ...}. Copy thecloudIdvalue. - Substitute it into the gateway URL, for example
https://api.atlassian.com/ex/jira/e1acb0fb-318d-4fc3-ba56-db2b0ae14466, and enter that as the Jira Organization Domain.
A classic-token API Key uses the bare site URL and needs no Cloud ID. If you move an integration from OAuth to a classic-token API Key, put the site URL back — the gateway URL left behind by the rewrite returns 401 for Basic auth.
Setting up OAuth
-
Click Create → OAuth 2.0 integration
-
Enter a name for your app and click Create
-
In the left sidebar, go to Permissions
-
Click Add next to Jira API and configure the scopes you need
Minimal scopes (required for basic functionality):
read:jira-userread:jira-workwrite:jira-workmanage:jira-projectread:project:jiraAdditional scopes for specific endpoints:
read:issue:jirawrite:issue:jiraread:attachment:jiraJira Software (Agile) scopes — for boards, sprints, and backlog:
read:board-scope:jira-softwarewrite:board-scope:jira-softwareread:board-scope.admin:jira-softwarewrite:board-scope.admin:jira-softwareread:sprint:jira-softwarewrite:sprint:jira-software -
In the left sidebar, go to Authorization
-
Click Add next to OAuth 2.0 (3LO)
-
Set the Callback URL:
- For SaaS deployments:
https://{org}.mcp-s.com/{org}/api/auth/callback - For On-Premise deployments:
{connectUrl}/{org}/api/auth/callback
- For SaaS deployments:
-
Click Save changes
-
In the left sidebar, go to Settings
-
Copy the Client ID and Secret
-
In Willow, paste the Client ID and Client Secret
-
Select the same scopes you configured in Atlassian, and also add
offline_access -
Enter your Jira Organization Domain in Configuration.
Since OAuth uses the Atlassian API gateway, the base URL should be:
https://api.atlassian.com/ex/jira/{cloudId}For example:
https://api.atlassian.com/ex/jira/e1acb0fb-318d-4fc3-ba56-db2b0ae14466To find your Cloud ID, open the following URL in your browser (replace
your-orgwith your Jira subdomain):https://your-org.atlassian.net/_edge/tenant_infoCopy the
cloudIdvalue from the JSON response. -
Click Save Changes
Setting up Instant OAuth
-
Click Connect to sign in with your Atlassian account.
-
Find your Cloud ID by opening the following URL in your browser (replace
your-orgwith your Jira subdomain):https://your-org.atlassian.net/_edge/tenant_infoCopy the
cloudIdvalue from the response. -
In General Settings, enter your Jira organization domain using this format:
https://api.atlassian.com/ex/jira/{cloudId}Replace
{cloudId}with the value copied in the previous step. -
Click Save Changes.
Reading Jira Forms
Jira issues (especially Jira Service Management requests like Cloud Account Request or onboarding forms) often carry native Jira forms. Some form questions are linked to Jira fields, but many are not — that data lives only inside the form and is not returned by the standard issue tools. Forms are served by a separate Atlassian API, so Willow exposes two dedicated tools:
- Get Issue Forms — lists the forms attached to an issue and returns each form's
formId, name and submitted state. - Get Issue Form Answers — takes a
formIdand returns the answers as a flattened list of{ fieldKey, label, answer, choice }entries (multi-valued answers are joined into a comma-separated string).
Typical flow: call Get Issue Forms for an issue to get the formId, then call Get Issue Form Answers with that formId to read the submitted values.
What you need
These tools call {orgDomain}/forms/..., so they reuse the same base URL and read:jira-work scope as the other Jira tools — no extra scope, consent, or configuration field. They work automatically as long as your Organization Domain is set to the Atlassian API gateway base, which already contains your Cloud ID:
https://api.atlassian.com/ex/jira/{cloudId}
This is the same value the OAuth and Instant OAuth setup steps above configure. To find your {cloudId}, open the following URL in your browser (replace your-org with your Jira subdomain) and copy the cloudId value from the JSON response:
https://your-org.atlassian.net/_edge/tenant_info
The forms tools require the gateway-style Organization Domain (https://api.atlassian.com/ex/jira/{cloudId}). Integrations authenticated with a classic API Key against a bare site domain (https://your-org.atlassian.net) can read issues but will not reach the Forms API, which is only served through the gateway. OAuth and service-account API keys already use the gateway, so they reach it.
Generating an API Key
You can authenticate with either a classic token (technical user) or a scoped token (service account).
Classic token (technical user)
-
Sign in to the dedicated Atlassian account you want the integration to act as.
-
Go to https://id.atlassian.com/manage-profile/security/api-tokens
-
Click Create API token (a classic, unscoped token), give it a descriptive label, and click Create.
-
Copy the token immediately.
-
In Willow, enter the API key in the format
your-email@example.com:your-api-token, and set the Jira Organization Domain to your bare site (https://your-org.atlassian.net).
Scoped token (service account)
Atlassian service accounts are license-free identities that can only create scoped tokens, which Atlassian accepts as Bearer against the API gateway.
-
As an org admin, create or open a service account and create an API token with the Jira scopes your enabled tools need.
-
Copy the token immediately.
-
In Willow, paste the token on its own (no email, no colon), and set the Jira Organization Domain to the gateway base (
https://api.atlassian.com/ex/jira/{cloudId}). Willow detects the bare token and sends it asBearerautomatically.