Reference · Tools
Jira Software integration
Create, update, search by JQL, delete and inspect Jira issues, including their changelog, transitions and email notifications; add, download and remove attachments, manage comments, and create, retrieve or delete users.
The Jira Software node manages issues, comments, attachments and users through the Jira REST API, handling binary attachments in both directions. A typical build is opening an issue from an inbound bug report, attaching the customer's screenshot, and commenting as the investigation progresses.
- Works as
- Action (binary)
- Tool name
jira- Parameters
- 66
- Outputs
- Output, Error
- Credentials
- Jira API
- Official docs
- Jira Software docs developer.atlassian.com
What you can build with Jira Software
- Create a Jira issue in project ABC.
- Upload a file attachment to issue KEY-123.
- Download all attachments from a Jira issue.
- Search issues with JQL query.
- Add a comment to a Jira issue.
- Transition an issue status.
Overview
The Jira Software tool provides full CRUD operations against the Jira REST API v2/v3. Supports four resources: (1) Issue — create, update, get, getAll (JQL search), delete, changelog, notify, transitions/status. (2) Issue Attachment — add (upload binary), get (download binary), getAll, remove. (3) Issue Comment — add, get, getAll, remove, update (supports ADF and wiki markup). (4) User — create, get, delete. Works with both Jira Cloud (email + API token) and Jira Server/Data Center (username + password, or PAT). Attachment operations handle binary data: upload reads from the item’s binary property, download writes fetched content to the binary store.
Node Type
Action (Binary) — handles file/binary data operations
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Jira API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Issue | issue |
| Issue Attachment | issueAttachment |
| Issue Comment | issueComment |
| User | user |
Operations
Issue (issue)
| Operation | Value | Description |
|---|---|---|
| Changelog | changelog | Get issue changelog. |
| Create | create | Create a new issue. |
| Delete | delete | Delete an issue. |
| Get | get | Get an issue. |
| Get Many | getAll | Search/get many issues via JQL. |
| Notify | notify | Create an email notification for an issue. |
| Status | transitions | Get available transitions for an issue. |
| Update | update | Update an issue. |
Issue Attachment (issueAttachment)
| Operation | Value | Description |
|---|---|---|
| Add | add | Add attachment to an issue. |
| Get | get | Get an attachment. |
| Get Many | getAll | Get many attachments from an issue. |
| Remove | remove | Remove an attachment. |
Issue Comment (issueComment)
| Operation | Value | Description |
|---|---|---|
| Add | add | Add comment to an issue. |
| Get | get | Get a comment. |
| Get Many | getAll | Get many comments. |
| Remove | remove | Remove a comment. |
| Update | update | Update a comment. |
User (user)
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a new user. |
| Delete | delete | Delete a user. |
| Get | get | Retrieve a user. |
Parameters
Issue: Changelog
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | The key of the issue. |
| Return All | boolean | No | false | |
| Limit | number | No | 50 | (shown when Return All is false) |
Issue: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Project | string | Yes | — | Project ID. Obtain from Jira project settings or GET /rest/api/2/project. |
| Issue Type | string | Yes | — | Issue type ID. Obtain from GET /rest/api/2/project/{projectId} (issueTypes array). |
| Summary | string | Yes | — | Issue title/summary. |
| Additional Fields | collection | No | {} | |
Options: groups | ||||
| — Assignee | string | No | — | User identifier. Cloud: accountId. Server: username. |
| — Component IDs | string | No | — | Comma-separated component IDs. |
| — Custom Fields (JSON) | json | No | {} | JSON object of custom field key-value pairs (e.g. {“customfield_10001”: “value”}). |
| — Description | string | No | — | Issue description text. |
| — Labels | string | No | — | Comma-separated label strings. |
| — Parent Issue Key | string | No | — | Parent issue key (required when issue type is sub-task). Will be upper-cased. |
| — Priority | string | No | — | Priority ID. Obtain from GET /rest/api/2/priority. |
| — Reporter | string | No | — | Reporter user identifier. Cloud: accountId. Server: username. |
| — Update History | boolean | No | false | Whether to update the user’s issue view history. |
Issue: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | The key of the issue to delete. |
| Delete Subtasks | boolean | No | false | Whether to also delete subtasks of this issue. |
Issue: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | The key of the issue (e.g. PROJ-123). |
| Simplify Output | boolean | No | false | Whether to simplify the output by flattening field IDs to display names. |
| Additional Fields | collection | No | {} | |
Options: groups | ||||
| — Expand | string | No | — | Comma-separated expand options: renderedFields, names, schema, transitions, editmeta, changelog, versionedRepresentations. |
| — Fields | string | No | — | Comma-separated field list to return. |
| — Fields by Key | boolean | No | false | Use field keys instead of IDs. |
| — Properties | string | No | — | Comma-separated issue property keys. |
| — Update History | boolean | No | false | Whether to update the user’s recent issue view history. |
Issue: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to the limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Options | collection | No | {} | |
Options: +created | ||||
| — Expand | string | No | — | Comma-separated expand options. |
| — Fields | string | No | *navigable | Comma-separated list of fields to return. Default: *navigable. |
| — JQL | string | No | — | JQL query to filter issues. Default searches all issues. |
Issue: Notify
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
| JSON Parameters | boolean | No | false | Whether to provide recipients as raw JSON. |
| Additional Fields | collection | No | {} | |
Options: groups | ||||
| — Subject | string | No | — | Email subject. |
| — Text Body | string | No | — | Plain text email body. |
| — HTML Body | string | No | — | HTML email body. |
| Notification Recipients (JSON) | json | No | {} | JSON object for “to” field: { reporter: bool, assignee: bool, watchers: bool, voters: bool, users: [{accountId: ”…”}], groups: [{name: ”…”}] } (shown when JSON Parameters is true) |
| Notification Restrictions (JSON) | json | No | {} | JSON object for “restrict” field: { groups: [{name: ”…”}] } (shown when JSON Parameters is true) |
| Notification Recipients | collection | No | {} | (shown when JSON Parameters is false) |
| — Reporter | boolean | No | false | |
| — Assignee | boolean | No | false | |
| — Watchers | boolean | No | false | |
| — Voters | boolean | No | false | |
| — Users (comma-separated accountIds) | string | No | — | Comma-separated list of user accountIds. |
| — Groups (comma-separated names) | string | No | — | Comma-separated list of group names. |
| Notification Restrictions | collection | No | {} | (shown when JSON Parameters is false) |
| — Groups (comma-separated names) | string | No | — | Comma-separated list of group names to restrict notification to. |
Issue: Status
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
| Additional Fields | collection | No | {} | |
Options: groups | ||||
| — Transition ID | string | No | — | Filter to a specific transition ID. |
| — Expand | string | No | — | Use “transitions.fields” to get screen fields. |
| — Skip Remote Only Condition | boolean | No | false | Include transitions normally hidden. |
Issue: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | The key of the issue to update (e.g. PROJ-123). |
| Update Fields | collection | No | {} | |
| — Assignee | string | No | — | User identifier. Cloud: accountId. Server: username. |
| — Custom Fields (JSON) | json | No | {} | JSON object of custom field key-value pairs. |
| — Description | string | No | — | Issue description text. |
| — Issue Type | string | No | — | Issue type ID to change to. |
| — Labels | string | No | — | Comma-separated label strings. |
| — Parent Issue Key | string | No | — | Parent issue key (required for sub-task types). |
| — Priority | string | No | — | Priority ID. |
| — Reporter | string | No | — | Reporter user identifier. |
| — Status (Transition ID) | string | No | — | Transition ID. If set, will first execute the transition, then update other fields. |
| — Summary | string | No | — | Issue title/summary. |
Issue Attachment: Add
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
Binary Property (binaryPropertyName) | string | Yes | data | Name of the binary property on the input item containing the file to upload. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. |
Issue Attachment: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Attachment ID | string | Yes | — | The ID of the attachment. |
| Download | boolean | No | false | Whether to download the attachment binary content. |
Binary Property (binaryProperty) | string | No | data | Name of the output binary property to store the downloaded file. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Download is true) |
Issue Attachment: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
| Return All | boolean | No | false | |
| Limit | number | No | 50 | (shown when Return All is false) |
| Download | boolean | No | false | Whether to download the attachment binary content. |
Binary Property (binaryProperty) | string | No | data | Name of the output binary property. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Download is true) |
Issue Attachment: Remove
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Attachment ID | string | Yes | — | The ID of the attachment to remove. |
Issue Comment: Add
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
| JSON Parameters | boolean | No | false | Whether to provide the comment body as raw Atlassian Document Format JSON. |
| Comment | string | No | — | The comment text. On Cloud, this is sent as ADF (unless wiki markup is enabled). On Server, this is plain text. (shown when JSON Parameters is false) |
| Document Format (JSON) | json | No | — | Raw Atlassian Document Format JSON body for the comment. (shown when JSON Parameters is true) |
| Options | collection | No | {} | |
Options: +created | ||||
| — Expand | string | No | — | Use “renderedBody” to get rendered HTML. |
| — Wiki Markup | boolean | No | false | Cloud only: send comment as wiki markup using API v2 instead of ADF v3. |
Issue Comment: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
| Comment ID | string | Yes | — | |
| Options | collection | No | {} | |
Options: +created | ||||
| — Expand | string | No | — | Use “renderedBody” to get rendered HTML. |
Issue Comment: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
| Return All | boolean | No | false | |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | |
Options: +created | ||||
| — Expand | string | No | — | Use “renderedBody” to get rendered HTML. |
| — Order By | options | No | +created | Sort order for comments. |
Options: +created, -created |
Issue Comment: Remove
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
| Comment ID | string | Yes | — |
Issue Comment: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Issue Key | string | Yes | — | |
| Comment ID | string | Yes | — | |
| JSON Parameters | boolean | No | false | Whether to provide the comment body as raw Atlassian Document Format JSON. |
| Comment | string | No | — | The comment text. On Cloud, this is sent as ADF (unless wiki markup is enabled). On Server, this is plain text. (shown when JSON Parameters is false) |
| Document Format (JSON) | json | No | — | Raw Atlassian Document Format JSON body for the comment. (shown when JSON Parameters is true) |
| Options | collection | No | {} | |
Options: +created | ||||
| — Expand | string | No | — | Use “renderedBody” to get rendered HTML. |
| — Wiki Markup | boolean | No | false | Cloud only: send comment as wiki markup using API v2 instead of ADF v3. |
User: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Username | string | Yes | — | |
| Email Address | string | Yes | — | |
| Display Name | string | Yes | — | |
| Additional Fields | collection | No | {} | |
Options: groups | ||||
| — Password | string | No | — | Password for the user. If not set, a random password is generated. |
| — Notification | boolean | No | false | Whether to send the user an email confirmation. |
User: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Account ID | string | Yes | — | The account ID of the user to delete. |
User: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Account ID | string | Yes | — | The account ID of the user to retrieve. |
| Additional Fields | collection | No | {} | |
Options: groups | ||||
| — Expand | multiOptions | No | [] | |
Options: groups (include all groups to which the user belongs), applicationRoles (include details of all applications the user can access) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Jira Version | options | No | cloud | Select Jira deployment type. Cloud uses email + API token. Server uses email + password. Server PAT uses a personal access token. |
Options: cloud, server, serverPat | ||||
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
Each output item’s JSON is the Jira response for that call — the incoming item JSON is replaced, not merged, so read anything you still need from the item upstream of this node. Operations that only confirm an action emit { "success": true } instead of a record. Binary data on the input item is forwarded on every Issue Attachment, Issue Comment and User operation, and on the Issue operations that fan out; the single-item Issue operations (Create, Update, Get, Delete, Notify) emit JSON only.
Five operations fan out, producing one output item per record instead of one per input item:
- Issue: Get Many — one item per matching issue. With Return All on, every page of the JQL search is fetched; otherwise the search is capped at Limit. When the search matches nothing, that input item produces no output items at all.
- Issue: Changelog — one item per changelog entry, with the same Return All / Limit behavior, and likewise no output items when the issue has no changelog history.
- Issue: Status — one item per available transition. When the issue has no available transitions, a single item
{ "transitions": [] }is emitted instead. - Issue Attachment: Get Many — one item per attachment on the issue, capped at Limit unless Return All is on. With Download on, each item also carries that attachment’s file on the binary property you named. When the issue has no attachments, a single item
{ "attachments": [] }is emitted instead. - Issue Comment: Get Many — one item per comment, with the same Return All / Limit behavior. No comments means no output items for that input item.
| Resource / Operation | What lands on the item |
|---|---|
issue / create | The created issue as Jira returns it, or success: true if the response carries no body. |
issue / update | success: true. When Status (Transition ID) is set the transition runs first, then the field changes are applied. |
issue / get | The issue as Jira returns it. With Simplify Output on it is reshaped into a flat object of id, key, self and one property per field, keyed by that field’s display name; a display name that collides with one already present gets a _1, _2 … suffix, and requesting renderedFields through Expand puts the rendered values on those properties. |
issue / getAll | One item per issue — see the fan-out notes above. |
issue / delete | success: true. |
issue / changelog | One item per changelog entry — see the fan-out notes above. |
issue / notify | success: true. |
issue / transitions | One item per transition, or a single transitions: [] item. |
issueAttachment / add | The attachment record Jira created for the uploaded file. The input item’s binary passes through unchanged. |
issueAttachment / get | The attachment’s metadata. With Download on, the file is added to the binary property you named, alongside any binary already on the item. |
issueAttachment / getAll | One item per attachment, or a single attachments: [] item. |
issueAttachment / remove | success: true. |
issueComment / add | The created comment as Jira returns it. |
issueComment / get | The requested comment. |
issueComment / getAll | One item per comment — see the fan-out notes above. |
issueComment / remove | success: true. |
issueComment / update | The updated comment as Jira returns it. |
user / create | The created user as Jira returns it. |
user / delete | success: true. |
user / get | The requested user. |
Reference the result downstream by expression, e.g. {{ $json.key }}.
Example Configuration
Create an issue with an assignee, priority and labels:
{
"type": "jira",
"parameters": {
"resource": "issue",
"operation": "create",
"project": "10000",
"issueType": "1",
"summary": "New bug report",
"additionalFields": {
"description": "Detailed description of the issue",
"assignee": "557058:a12345-1234-1234-1234-123456789012",
"priority": "2",
"labels": "bug,urgent"
}
}
}
Update an issue and move it through a transition in the same call:
{
"type": "jira",
"parameters": {
"resource": "issue",
"operation": "update",
"issueKey": "PROJ-123",
"updateFields": {
"summary": "Updated issue title",
"description": "Updated description",
"statusId": "3",
"assignee": "557058:a12345-1234-1234-1234-123456789012"
}
}
}
Read one issue with field names flattened for downstream use:
{
"type": "jira",
"parameters": {
"resource": "issue",
"operation": "get",
"issueKey": "PROJ-123",
"simplifyOutput": true,
"additionalFields": {
"expand": "changelog,names",
"fields": "*navigable",
"updateHistory": true
}
}
}
Search issues with JQL and cap the result set:
{
"type": "jira",
"parameters": {
"resource": "issue",
"operation": "getAll",
"returnAll": false,
"limit": 50,
"options": {
"jql": "project = PROJ AND status = Open",
"fields": "summary,status,assignee,created",
"expand": "names"
}
}
}
Add a plain-text comment:
{
"type": "jira",
"parameters": {
"resource": "issueComment",
"operation": "add",
"issueKey": "PROJ-123",
"jsonParameters": false,
"comment": "This is a new comment on the issue",
"options": {
"expand": "renderedBody",
"wikiMarkup": false
}
}
}
Add a formatted comment by supplying Atlassian Document Format directly:
{
"type": "jira",
"parameters": {
"resource": "issueComment",
"operation": "add",
"issueKey": "PROJ-123",
"jsonParameters": true,
"commentJson": "{\"version\":1,\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"This is a comment with formatted text\"}]}]}"
}
}
Upload the file on the item’s data binary property to an issue:
{
"type": "jira",
"parameters": {
"resource": "issueAttachment",
"operation": "add",
"issueKey": "PROJ-123",
"binaryPropertyName": "data"
}
}
Fetch an attachment and download its contents into a named binary property:
{
"type": "jira",
"parameters": {
"resource": "issueAttachment",
"operation": "get",
"attachmentId": "12345",
"download": true,
"binaryProperty": "attachmentData"
}
}
Email an issue notification to the reporter, the assignee and a named group:
{
"type": "jira",
"parameters": {
"resource": "issue",
"operation": "notify",
"issueKey": "PROJ-123",
"jsonParameters": false,
"additionalFields": {
"subject": "Issue Update Notification",
"textBody": "This issue has been updated",
"htmlBody": "<p>This <strong>issue</strong> has been updated</p>"
},
"notificationRecipientsUi": {
"reporter": true,
"assignee": true,
"watchers": false,
"voters": false,
"users": "557058:a12345-1234-1234-1234-123456789012",
"groups": "jira-administrators"
}
}
}
Create a user with a temporary password:
{
"type": "jira",
"parameters": {
"resource": "user",
"operation": "create",
"username": "john.doe",
"emailAddress": "john.doe@company.com",
"displayName": "John Doe",
"additionalFields": {
"password": "temporaryPassword123",
"notification": true
}
}
}
The three steps of a create-if-missing pattern. First, search for existing issues:
{
"type": "jira",
"parameters": {
"resource": "issue",
"operation": "getAll",
"options": {
"jql": "project = MYPROJ AND status != Done"
}
}
}
Then create the issue when the search found nothing:
{
"type": "jira",
"parameters": {
"resource": "issue",
"operation": "create",
"project": "10000",
"issueType": "1",
"summary": "Automated issue creation"
}
}
Then move the issue to its next status:
{
"type": "jira",
"parameters": {
"resource": "issue",
"operation": "update",
"issueKey": "MYPROJ-123",
"updateFields": {
"statusId": "3"
}
}
}
Report the outcome back on the issue, taking the key from the incoming item:
{
"type": "jira",
"parameters": {
"resource": "issueComment",
"operation": "add",
"issueKey": "{{ $json.key }}",
"comment": "Processing completed successfully"
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
This tool manages Jira issues, comments, attachments, and users. It is ideal when you need to create, update, retrieve, or delete these items, including uploading and downloading binary attachments. It produces updated Jira items, new issues, comments, attachments, or users, and retrieved information about them.
Frequently asked questions
Can it upload and download attachments?
Yes, both. Binary data from an upstream node can be attached to an issue, and existing attachments can be pulled down as binary for storage or processing.
What can it manage besides issues?
Comments, attachments and users, so a workflow can create the issue, add context as comments, and look up the people involved without a second integration.
How do I react to changes in Jira?
Use the Jira Trigger for inbound events. Note the two use different credentials — this node takes a Jira API credential, the trigger a Jira Software Cloud credential.
Does it work with Jira Cloud and self-hosted?
It talks to the Jira REST API, so it works wherever that API is reachable with the credential you supply.
Build with Jira Software
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Jira API credentials first.
Open BusyBotLast reviewed . Spotted something wrong? Tell us.