Jira sits at the center of engineering and product workflows — but manually updating issues, creating tickets from alerts, or syncing sprint data to other tools is a time sink. The n8n Jira node connects directly to Jira Software Cloud and Jira Software Data Center, letting you create, read, update, and transition issues without writing a single API call. This guide covers the operations you'll use most, the gotchas that trip up new users, and three production-ready patterns with free workflow JSON.
What the n8n Jira Node Does
The Jira node in n8n supports:
- Issue operations: Create, Get, Update, Delete issues
- Transitions: Move issues through workflow statuses (e.g., "In Progress" → "Done")
- Comments: Add and retrieve comments on any issue
- Linked Issues: Create issue links (blocks, duplicates, relates to)
- Users: Get user info and assignee search
- Projects: List projects, get project details
- Versions/Sprints: Work with fix versions and sprint assignments
Authentication: Jira Cloud uses API token auth (email + token); Jira Data Center uses Basic Auth or OAuth.
Setting Up the Jira Credential
For Jira Cloud:
- Go to id.atlassian.com → Security → Create and manage API tokens
- Create a new API token — copy it immediately
- In n8n: Credentials → Add → Jira API
-
Host:
https://yourorg.atlassian.net - Email: your Atlassian account email
- API Token: the token you just created
-
Host:
For Jira Data Center / Server:
- Use Basic Auth with your Jira username and password, or configure OAuth 1.0
Core Operations
Create Issue
The most commonly automated operation. Required fields vary by project — Jira enforces per-project required fields configured in your field configuration scheme.
Resource: Issue
Operation: Create
Project: MY-PROJECT (key, not name)
Issue Type: Bug / Story / Task / Epic
Summary: {{ $json.summary }}
Description: {{ $json.description }}
Important: If your project has required custom fields (e.g., "Team", "Story Points"), the create call will fail with a 400 if they're missing. Check your project's required fields in Jira → Project Settings → Issue Types.
Get Issue
Resource: Issue
Operation: Get
Issue Key: MY-123
Returns the full issue object including status, assignee, labels, custom fields, comments, attachments, and linked issues. Response can be large — use the Simplify toggle to get a flattened version of the most common fields.
Update Issue
Resource: Issue
Operation: Update
Issue Key: MY-123
Summary: Updated title
Assignee: user@company.com
Labels: bug, customer-reported
You can update individual fields without touching others. Custom fields use their Jira field ID (e.g., customfield_10016 for Story Points).
Transition Issue
Transitions move issues between statuses. Each project has its own workflow with specific transition IDs.
Resource: Issue
Operation: Transition
Issue Key: MY-123
Transition: In Review (or transition ID: 31)
To find available transitions for an issue: use the Get Many transitions operation or check Jira's REST API at /rest/api/3/issue/{issueKey}/transitions.
Add Comment
Resource: Issue
Operation: Add Comment
Issue Key: MY-123
Comment: Automated update: deployment succeeded at {{ $now.toISO() }}
Comments support Jira's Atlassian Document Format (ADF) for rich text, or plain text via the Simple Comment field.
6 Gotchas That Trip Up New Users
1. Project key vs. project name
The Jira node takes the project key (e.g., ENG, PROD) not the display name. Find keys in Jira → Projects — they're the short uppercase identifier in parentheses.
2. Transition IDs are project-specific
Every project has its own workflow. A "Done" transition in one project has a different ID than "Done" in another. Never hardcode transition IDs across projects — fetch them dynamically or set them per-project in your workflow.
3. Custom fields use internal IDs
Jira's REST API returns custom fields as customfield_10016, not "Story Points". To find a custom field's ID: export a sample issue via the API and inspect the keys, or go to Jira → Settings → Issues → Custom Fields and click the field to see its ID in the URL.
4. Required fields block issue creation
If issue creation fails with a 400 error and a "field is required" message, your project has mandatory custom fields. Either include them in the Create node or use the Jira admin to make them optional.
5. Jira Cloud vs. Data Center API differences
Jira Cloud uses API token auth and the v3 REST API. Jira Server/Data Center uses Basic Auth and the v2 REST API. Some fields and endpoints differ — the n8n node targets Cloud by default; toggle "Jira Version" in credentials for Data Center.
6. Rate limits on search operations
Jira Cloud throttles search (JQL) requests. If you're processing large backlogs, use pagination (startAt + maxResults) and add a Wait node between batches. Hitting limits returns a 429; build in retry logic with the Error Trigger node.
3 Production Patterns (Free Workflow JSON Below)
Pattern 1: Automated Bug Report from Error Alert
Problem: Your error monitoring tool (Sentry, Datadog, PagerDuty) fires an alert — you want a Jira bug ticket created automatically with full context, no manual copy-paste.
Workflow:
Webhook (receive alert)
→ Set node (map alert fields: title, severity, environment, stack trace URL)
→ Jira: Create Issue (Bug, priority from severity, description with alert context)
→ Slack: notify #eng-ops with Jira issue link
Key configuration:
- Map alert severity → Jira priority:
Critical→Highest,Error→High,Warning→Medium - Put the alert URL in the Description so engineers can jump to full context immediately
- Set the Label to
auto-createdto distinguish bot tickets from human ones
Pass bar: Bug ticket appears in Jira within 60 seconds of the alert firing, with correct priority and direct link to the alert.
Pattern 2: Sprint Review Digest to Slack
Problem: Every sprint review, someone manually compiles what was completed vs. what slipped. Automate a weekly digest that pulls sprint data from Jira and posts it to Slack.
Workflow:
Schedule Trigger (Friday 4 PM)
→ Jira: Get Issues (JQL: sprint in openSprints() AND status = Done)
→ Code node (group by assignee, count story points)
→ Jira: Get Issues (JQL: sprint in openSprints() AND status != Done)
→ Code node (build digest: completed list, carry-over list, points delivered)
→ Slack: post to #sprint-review with formatted digest
JQL patterns:
# Completed this sprint
project = ENG AND sprint in openSprints() AND status = Done
# Not completed (carry-over risk)
project = ENG AND sprint in openSprints() AND status != Done AND due <= now()
# Added mid-sprint (scope creep)
project = ENG AND sprint in openSprints() AND created >= -7d
Pass bar: Friday digest posts automatically with accurate counts; team stops manually compiling the report.
Pattern 3: Customer Feedback → Jira Ticket with Priority Scoring
Problem: Customer feedback comes in via Typeform or a support email — you want to create Jira tickets only for actionable items, auto-prioritized by sentiment and frequency.
Workflow:
Typeform Trigger (new feedback submission)
→ OpenAI node (classify: actionable/not, extract feature request, score sentiment 1-5)
→ IF node (if actionable = true)
→ Jira: Create Issue (Story or Improvement)
- Summary: AI-extracted feature request
- Description: original feedback + sentiment score
- Priority: mapped from sentiment score
- Label: customer-feedback
→ Gmail: send confirmation to customer
Scoring map:
// In Code node
const sentimentScore = $json.sentiment_score; // 1-5 from OpenAI
const priority = sentimentScore >= 4 ? 'High' : sentimentScore >= 3 ? 'Medium' : 'Low';
Pass bar: Actionable feedback creates a Jira ticket within 2 minutes; non-actionable feedback is dropped cleanly; customer gets confirmation email.
Free Workflow JSON
Download the three patterns above as importable n8n workflow JSON:
👉 Get the free n8n Jira workflow pack →
The pack includes all three workflows above, pre-wired and ready to import. Drop your Jira API credential, update project keys, and deploy.
Jira Node vs. HTTP Request Node
| Use case | Recommendation |
|---|---|
| Standard CRUD on issues, comments, transitions | Jira node — simpler, no auth wiring |
| Advanced JQL search with complex parameters | HTTP Request → /rest/api/3/search
|
| Jira Agile board / sprint operations | HTTP Request → Jira Agile REST API |
| Bulk operations (100+ issues) | HTTP Request with pagination loop |
| Jira Software vs. Jira Service Management fields | Test both; some SM fields aren't in node |
Quick-Reference: n8n Jira Expressions
// Get issue key from create response
{{ $json.key }} // → "ENG-123"
// Build issue URL
{{ 'https://yourorg.atlassian.net/browse/' + $json.key }}
// Format current time for Jira comment
{{ $now.toFormat('yyyy-MM-dd HH:mm') + ' UTC' }}
// Map severity to Jira priority
{{ {'critical': 'Highest', 'error': 'High', 'warning': 'Medium'}[$json.severity] || 'Low' }}
What to Build Next
Once you've automated basic issue management:
- Bi-directional sync: Jira ↔ Linear, Jira ↔ GitHub Issues — keep engineering and product in sync
- SLA monitoring: Schedule trigger that polls for issues with approaching due dates and alerts via Slack
-
Release notes generator: Pull all
status = Doneissues from a version, pass to OpenAI, post formatted release notes to Confluence
The Jira node is the foundation. The real value is connecting it to your monitoring, support, and communication tools so the entire incident-to-resolution loop is automated.
Ready-to-import n8n Jira workflow: The n8n Jira → Slack Sprint Digest ($9) pulls all open sprint issues every Monday morning and posts a grouped, clickable digest to Slack — broken out by status. Import in under 2 minutes.
Need a custom n8n workflow built for your Jira setup? The Done-For-You n8n Workflow Service delivers a production-ready, documented workflow for $99 — typically within 48 hours.
Top comments (1)
Are you using the Jira node to auto-create bug tickets from error alerts, build sprint review digests, or route customer feedback into your backlog? Drop your pattern in the comments — curious what workflows people are running in production.