- Home
- Resources
- Integrations
- Jira Software
Jira Software n8n integrationAutomate Jira Software with n8n.
Every question about the Jira Software n8n integration, answered on one page. The node covers 20 operations across 4 resources: issues, attachments, comments and users. The Jira Trigger listens to 39 events, from jira:issue_created to sprint and worklog changes. Written for teams whose backlog lives in Jira.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Jira Software n8n integration actually cover?
Two nodes, one credential. The Jira node calls the Jira API for you, with 20 operations spread over issues, issue attachments, issue comments and users. The Jira Trigger starts a workflow when Jira fires one of its 39 events, from an issue created to a sprint closed. Both ship with n8n, on n8n Cloud and on a self-hosted instance, so there is nothing to install.
Start with the shape most teams build first: triage. Something arrives, a form answer or a row in Google Sheets, issue.create files it in the right project, and issueComment.add posts the triage note underneath so the assignee reads the reasoning instead of a bare title.
Second shape: the release recap. The trigger hears jira:version_released, issue.getAll pulls every issue matching a JQL query, and the list goes out as one message in Slack. JQL is Jira's query language, the same syntax the issue search box takes.
Third shape: the round trip with code. A merged pull request in GitHub moves the ticket forward, because issue.update carries a Status field, and a comment records the change. The trigger does the return leg: jira:issue_updated wakes a workflow when a human edits the ticket by hand.
The node stops at 4 resources. Its trigger hears board, project and sprint events, but there is no board, project or sprint operation to act on them, so creating a sprint or renaming a board goes through the HTTP Request node, which calls any Jira endpoint while reusing the same stored connection.
Two limits are worth knowing before building. Moving a ticket through its workflow has no operation of its own: issue.update carries a Status field, and that is the route. And every list operation returns a first page only, unless Return All is switched on, so an export that comes back short is usually a Limit nobody touched. If n8n itself is the new part of the puzzle, the n8n training and the n8n review cover the platform beyond this node.
How do you connect Jira to n8n?
- 01
Pick an authentication method
A credential is the connection to Jira that n8n stores once, in the Credentials menu, and every workflow reuses from a dropdown. Three kinds work here. SW Cloud API token and SW Cloud OAuth2 both target Jira Software Cloud. SW Server account targets Jira Software Server and asks for the Email on the account, the Password and the Domain you reach Jira on.
- 02
Create the API token in your Atlassian profile
For the token route, open your Atlassian profile, go to Security then API tokens, select Create API Token, give it a Name such as n8n integration and an Expires on date, and copy the token while it is on screen. In n8n, fill Email with the address on the Jira account, API Token with what you copied, and Domain with the URL you use, for example
https://example.atlassian.net. - 03
Or register an OAuth 2.0 app, then connect
For OAuth2, create an OAuth 2.0 integration in the Atlassian Developer Console, add OAuth 2.0 (3LO) under Authorization, and paste the OAuth Redirect URL from n8n into Callback URL. Under Permissions, add Jira API and enable at least
read:jira-user,read:jira-work,write:jira-workandmanage:jira-webhook. Copy Client ID, Secret and Site URL into n8n, then select Connect to Jira SW Cloud.
What can start a workflow from Jira?
Jira Trigger is the node that starts a workflow when something happens in Jira Software. It listens to 39 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Jira Software account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
board_configuration_changed.*1board_configuration_ changed. board_configuration_ changed
board_created.*1board_created. board_created
board_deleted.*1board_deleted. board_deleted
board_updated.*1board_updated. board_updated
comment_created.*1comment_created. comment_created
comment_deleted.*1comment_deleted. comment_deleted
comment_updated.*1comment_updated. comment_updated
issuelink_created.*1issuelink_created. issuelink_created
issuelink_deleted.*1issuelink_deleted. issuelink_deleted
jira:issue_created.*1jira:issue_ created. jira:issue_ created
jira:issue_deleted.*1jira:issue_ deleted. jira:issue_ deleted
jira:issue_updated.*1jira:issue_ updated. jira:issue_ updated
jira:version_created.*1jira:version_ created. jira:version_ created
jira:version_deleted.*1jira:version_ deleted. jira:version_ deleted
jira:version_moved.*1jira:version_ moved. jira:version_ moved
jira:version_released.*1jira:version_ released. jira:version_ released
jira:version_unreleased.*1jira:version_ unreleased. jira:version_ unreleased
jira:version_updated.*1jira:version_ updated. jira:version_ updated
option_attachments_changed.*1option_attachments_ changed. option_attachments_ changed
option_issuelinks_changed.*1option_issuelinks_ changed. option_issuelinks_ changed
option_subtasks_changed.*1option_subtasks_ changed. option_subtasks_ changed
option_timetracking_changed.*1option_timetracking_ changed. option_timetracking_ changed
option_unassigned_issues_changed.*1option_unassigned_ issues_ changed. option_unassigned_ issues_ changed
option_voting_changed.*1option_voting_ changed. option_voting_ changed
option_watching_changed.*1option_watching_ changed. option_watching_ changed
project_created.*1project_created. project_created
project_deleted.*1project_deleted. project_deleted
project_updated.*1project_updated. project_updated
sprint_closed.*1sprint_closed. sprint_closed
sprint_created.*1sprint_created. sprint_created
sprint_deleted.*1sprint_deleted. sprint_deleted
sprint_started.*1sprint_started. sprint_started
sprint_updated.*1sprint_updated. sprint_updated
user_created.*1user_created. user_created
user_deleted.*1user_deleted. user_deleted
user_updated.*1user_updated. user_updated
worklog_created.*1worklog_created. worklog_created
worklog_deleted.*1worklog_deleted. worklog_deleted
worklog_updated.*1worklog_updated. worklog_updated
The trigger also accepts * (any event). Handy for logging, dangerous in production.
Configuration notes
01Set up the Jira Trigger
The trigger registers a webhook with Jira when you activate the workflow. A webhook is a URL that Jira calls by itself, so each event lands in n8n within seconds instead of waiting for a scheduled check.
Key parameters
- Events: the list of event names the workflow subscribes to; the wildcard
*takes all 39 at once, which is handy for a first test and noisy afterwards. - Jira Version: Cloud or Server, matching the credential you selected.
- Authenticate Webhook With: turns on authentication for the incoming call, which makes the webhook harder to reach from outside.
- Filter: in Additional Fields, a JQL query that limits which issues fire events; on Cloud OAuth2, leaving it blank watches every project the credential can reach.
- Exclude Body: leave it unchecked to receive the JSON payload, since checked it sends an empty body.
02Issue and issue link events
The busiest group, and the one most workflows subscribe to first. jira:issue_created fires when a ticket is filed, jira:issue_updated on any edit to it, jira:issue_deleted when it disappears. Two more cover the relations between tickets: issuelink_created and issuelink_deleted, which fire when a dependency is drawn between two issues or removed. Together they describe the life of a ticket, from filed to linked to gone.
Key parameters
- Events: subscribe to the three issue events and skip the link events unless dependencies matter to the workflow.
- Filter: a JQL query is the cheapest way to stop everything outside one project or one label from waking the workflow.
- Include Fields: in Additional Fields, decides which issue fields ride along in the payload, so a workflow can branch without a second call.
issue.get and branching on what changed.03Comment and worklog events
These follow what people write and what they log. comment_created, comment_updated and comment_deleted track the discussion on a ticket. worklog_created, worklog_updated and worklog_deleted track the time entries attached to it. Neither group touches the issue fields, so a workflow listening here hears the conversation and the hours without the noise of every edit.
Key parameters
- Events: comment events pair naturally with
issueComment.getAllwhen the whole thread matters, not just the last line. - Exclude Body: keep it unchecked here, because the comment text arrives in the JSON payload and a workflow that reads it needs the body.
04Sprint, board and version events
The agile side of the event list. Sprints fire sprint_created, sprint_started, sprint_updated, sprint_closed and sprint_deleted. Boards fire on creation, update, deletion and on board_configuration_changed. Versions cover the release cycle, with jira:version_released, jira:version_unreleased, jira:version_moved and their created, updated and deleted siblings. None of these has a matching operation on the node, so the workflow they start reads and writes issues, not sprints.
Key parameters
- Events:
sprint_closedandjira:version_releasedare the two that carry a reporting moment worth automating. - Jira Version: set it to the deployment the credential points at, since Cloud and Server are separate installations.
05Project, user and option events
The administrative tail of the list, quiet most weeks and useful when it fires. Projects report project_created, project_updated and project_deleted. Accounts report user_created, user_updated and user_deleted. Seven option events flag configuration changes, on attachments, issue links, subtasks, time tracking, unassigned issues, voting and watching. They are the ones that explain why a board behaved differently on Monday than it did on Friday.
Key parameters
- Events: the option events are the ones to subscribe to when a setting changing without notice is the actual problem.
- Authenticate Webhook With: worth enabling on this group, since the payloads describe how the instance is configured.
user_deleted.What can the Jira node do in a workflow?
The Jira Software node exposes 20 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Add | Remove | Changelog | Notify | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| Issue | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| Issue Attachment | ✓ | ✓ | ✓ | ✓ | ||||||
| Issue Comment | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| User | ✓ | ✓ | ✓ |
Operations index
Issue
8 operationsGet an issue changelog
issue.changelogWhat you see in n8n
Notes & use cases
Every edit made to a ticket leaves a line in its changelog, and this operation reads that history back into the workflow: which field moved, and when.
Key parameters
- Issue Key: the reference as it reads in Jira, like
OPS-12, often{{ $json.key }}when a trigger supplies it. - Return All: switched on, n8n walks every page of the history; switched off, Limit caps how many entries come back.
Create an issue
issue.createWhat you see in n8n
Notes & use cases
Files a new ticket and returns it with the key Jira just assigned, which the nodes downstream reuse to comment, attach or update.
Key parameters
- Project: picked from the list or given by ID, it decides where the issue lands.
- Issue Type: chosen the same way, from the types the project offers.
- Summary: the single line that becomes the ticket title.
- Additional Fields: where Description, Assignee, Priority, Parent Issue Key and Custom Fields live when a title is not enough.
Delete an issue
issue.deleteWhat you see in n8n
Notes & use cases
Removes a ticket from Jira for good. The node makes the subtask question explicit instead of deciding for you.
Key parameters
- Issue Key: the ticket that goes.
- Delete Subtasks: required here, so the workflow states what happens to the children rather than leaving it to a default.
Get an issue
issue.getWhat you see in n8n
Notes & use cases
Pulls one ticket back as JSON when the workflow only has its key to work from, which is the usual situation right after a webhook.
Key parameters
- Issue Key: the key of the ticket to read.
- Simplify: returns a trimmed response instead of the raw payload, which keeps later expressions readable.
- Fields: in Additional Fields, a comma separated list to narrow the response;
*allreturns everything, and a field prefixed with a minus is excluded.
Get many issues
issue.getAllWhat you see in n8n
Notes & use cases
Search, essentially. No key is required: the operation runs a query and returns every issue that matches it.
Key parameters
- JQL: in Options, the Jira query language expression that defines the set, the same syntax as the search box in Jira.
- Return All: on for a full export, off to stop at Limit.
- Expand: adds blocks to each issue, such as
changelogortransitions, when the list alone is too thin.
Create an email notification for an issue
issue.notifyWhat you see in n8n
Notes & use cases
Jira sends the email itself here: the operation drops a notification about a ticket into Jira's mail queue, addressed to the people you name.
Key parameters
- Issue Key: the ticket the email is about.
- Notification Recipients: who receives it, through Reporter, Assignee, Watchers, Voters, User Names or IDs and Group Names or IDs, or as raw JSON when JSON Parameters is on.
- Subject: in Additional Fields, next to Text Body and HTML Body; left empty, Jira uses the issue key and summary.
Get the status of an issue
issue.transitionsWhat you see in n8n
Notes & use cases
Before moving a ticket, a workflow has to know where it is allowed to go. This returns the transitions available on the issue, given the status it sits in.
Key parameters
- Issue Key: the ticket to inspect.
- Transition ID: in Additional Fields, to ask about one transition instead of the full list.
- Expand: accepts
transitions.fields, which describes the fields on each transition screen, hidden ones excluded.
Update an issue
issue.updateWhat you see in n8n
Notes & use cases
Edits a ticket field by field and leaves everything else untouched, which makes it safe to run on issues people are working in.
Key parameters
- Issue Key: the ticket to edit.
- Update Fields: the collection holding Summary, Description, Assignee, Priority, Labels, Issue Type, Parent Issue Key and Custom Fields.
- Status: also in Update Fields, and this is how a workflow moves a ticket along, since the node has no separate transition operation.
Issue Attachment
4 operationsAdd an attachment to an issue
issueAttachment.addWhat you see in n8n
Notes & use cases
Files travel through n8n as binary data, and this operation pushes one of them onto a ticket.
Key parameters
- Issue Key: the ticket that receives the file.
- Input Binary Field: the name of the binary field on the incoming item that holds the file, as the node before it named the field.
Get an attachment from an issue
issueAttachment.getWhat you see in n8n
Notes & use cases
Retrieves a single attachment by its own identifier, so the ticket it hangs on never enters the call.
Key parameters
- Attachment ID: the ID of the attachment, usually carried over from an earlier step.
- Download: required, and it goes hand in hand with the output field below.
- Put Output File in Field: the name of the output binary field the file is placed in.
Get many issue attachments
issueAttachment.getAllWhat you see in n8n
Notes & use cases
Works from the ticket instead of the file: everything attached to the issue comes back in one call.
Key parameters
- Issue Key: the ticket whose attachments are listed.
- Download and Put Output File in Field: both required, the second naming the output binary field the files land in.
- Return All: on to take the whole set, off to stop at Limit.
Remove an attachment from an issue
issueAttachment.removeWhat you see in n8n
Notes & use cases
Deletes one file and asks for nothing else: the identifier of the attachment is the whole call, and the ticket it belonged to stays where it is.
Key parameters
- Attachment ID: the ID of the attachment to remove.
Issue Comment
5 operationsAdd a comment
issueComment.addWhat you see in n8n
Notes & use cases
Comments are where an automation talks back to the people on the ticket. This posts one under the issue.
Key parameters
- Issue Key: the ticket the comment belongs to.
- Comment: the text itself.
- Document Format (JSON): with JSON Parameters on, the body goes in as Atlassian Document Format instead of plain text.
- Use Wiki Markup: in Options, parses wiki formatting in the comment; it is false unless you set it.
Get a comment
issueComment.getWhat you see in n8n
Notes & use cases
Reads one comment back, which takes both identifiers: the ticket, then the comment inside it.
Key parameters
- Issue Key: the ID or key of the issue holding the comment.
- Comment ID: the ID of the comment to read.
- Expand: in Options, accepts Rendered Body, which returns the comment rendered in HTML rather than as stored.
Get many comments
issueComment.getAllWhat you see in n8n
Notes & use cases
Returns the whole discussion on a ticket in one array, which is what a summary step needs to work from.
Key parameters
- Issue Key: the ID or key of the issue whose thread is read.
- Order By: Created Ascending or Created Descending, so the newest reply is either first or last.
- Return All: on for a long thread, off to stop at Limit.
Remove a comment
issueComment.removeWhat you see in n8n
Notes & use cases
Takes a comment off a ticket permanently. Unlike the attachment version, it needs both identifiers to find what to remove.
Key parameters
- Issue Key: the ID or key of the issue.
- Comment ID: the ID of the comment to remove.
Update a comment
issueComment.updateWhat you see in n8n
Notes & use cases
Rewrites a comment in place, which keeps a thread readable when a status line is refreshed several times a day instead of stacked.
Key parameters
- Comment ID: the comment to rewrite, alongside the Issue Key it sits under.
- Comment: the replacement text.
- Document Format (JSON): the Atlassian Document Format alternative, used when JSON Parameters is on.
User
3 operationsCreate a user
user.createWhat you see in n8n
Notes & use cases
Onboarding can finish inside Jira: the node creates the account rather than leaving it on an admin checklist.
Key parameters
- Username, Email Address and Display Name: the three required fields.
- Password: in Additional Fields; left empty, a random password is generated.
- Notification: sends the person the email confirming they were added to Jira.
manage:jira-configuration scope, which the default set leaves out.Delete a user
user.deleteWhat you see in n8n
Notes & use cases
The mirror image of onboarding, with one surprise: no field is required, and the account is identified by an optional one.
Key parameters
- Account ID: the account ID of the user to delete, the only field the operation reads.
manage:jira-configuration scope on an OAuth2 credential.Get a user
user.getWhat you see in n8n
Notes & use cases
Turns an account ID into a person: the display name, the email and, on request, the groups behind it.
Key parameters
- Account ID: the account ID of the user to retrieve.
- Expand: in Additional Fields,
groupsadds every group the user belongs to,applicationRolesadds the applications they can access.
Need help automating Jira Software with n8n?
A person reads every message.

