DEV Community

Pirate Prentice
Pirate Prentice

Posted on • Edited on

n8n Jira Node: Automate Issues, Projects, and Sprint Workflows (Free Workflow JSON)

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:

  1. Go to id.atlassian.com → Security → Create and manage API tokens
  2. Create a new API token — copy it immediately
  3. In n8n: Credentials → Add → Jira API
    • Host: https://yourorg.atlassian.net
    • Email: your Atlassian account email
    • API Token: the token you just created

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 }}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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() }}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Key configuration:

  • Map alert severity → Jira priority: CriticalHighest, ErrorHigh, WarningMedium
  • Put the alert URL in the Description so engineers can jump to full context immediately
  • Set the Label to auto-created to 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Scoring map:

// In Code node
const sentimentScore = $json.sentiment_score; // 1-5 from OpenAI
const priority = sentimentScore >= 4 ? 'High' : sentimentScore >= 3 ? 'Medium' : 'Low';
Enter fullscreen mode Exit fullscreen mode

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' }}
Enter fullscreen mode Exit fullscreen mode

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 = Done issues 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)

Collapse
 
pirateprentice profile image
Pirate Prentice

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.