How it works
- When a connection is created, Nango automatically fetches the connected site’s URL from Jira’s accessible-resources API and stores it as
baseUrlon the connection — no setup needed on your end for routing. - Jira sends a POST request to your Nango webhook URL when a subscribed event occurs.
- Nango matches the payload’s site URL to the correct connection’s
baseUrland forwards the event to your app.
Jira signs dynamic webhook requests (
/rest/api/3/webhook) with a bearer JWT in the Authorization header, using your app’s client secret — Nango doesn’t verify this today, so treat your Nango webhook URL as sensitive if you rely on that path. Admin webhooks (registered via /rest/webhooks/1.0/webhook or the admin console) are different: you set a shared secret when creating them, and Jira signs requests with HMAC-SHA256 in an X-Hub-Signature header. Nango verifies that signature when you set the same value as the Webhook secret on the integration in the Nango dashboard.Setup
1. Get your Nango webhook URL
In the Nango dashboard, open your Jira integration and copy the Webhook URL.2. Register the webhook in Jira
- REST API (dynamic webhook)
- Admin webhook
Scoped to your app. Covers issue, comment, issue property, sprint, and version events only, and expires after 30 days.If the connection’s token doesn’t have the required scope for an event, Jira rejects the registration for that event. The response returns a
- Add both classic scopes
read:jira-workandmanage:jira-webhookin the Atlassian Developer Console’s Permissions step, then add them to your Jira integration’s Scopes field in the Nango dashboard.manage:jira-webhooklets your app call the webhook REST API;read:jira-workcovers the issue, comment, and worklog data behind the events below. See Jira’s webhooks reference for the scopes needed by other event categories.
- Register the webhook through Nango’s proxy. This example subscribes to issue events:
createdWebhookId for each registered webhook — save these IDs, you’ll need them to refresh or delete the webhook.- Refresh the webhook before it expires (30 days after creation, or after your last refresh) using Jira’s webhook refresh endpoint with the saved IDs — see Jira’s webhooks reference for the exact call. Run this on a schedule, for example from an action function, or Jira will silently stop sending events.
Handle the webhook
Once routed to a connection, you have two options:- Forward it to your app — Nango forwards the event to your webhook URL with connection attribution. See External webhook forwarding.
- Process it in a sync — run a sync when the webhook arrives using
webhookSubscriptionsandonWebhookin a sync script. See Real-time syncs.
Supported events
Nango can only route events whose payload includes aself link on issue, comment, sprint, board, worklog, version, issueLink, project, attachment, issuetype, filter, or user. Examples:
For the full list, see Jira’s webhook events reference.