Intermediate~20 min setupDeveloper Tools & Project ManagementVerified April 2026
GitHub logo
Jira logo

How to Route GitHub Bug Reports to Jira with N8n

Automatically create Jira Bug tickets when GitHub issues get labeled 'bug' with mapped severity levels.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Teams that need custom severity mapping rules or want to avoid monthly automation subscription costs.

Not ideal for

Teams wanting the fastest possible setup or those without technical resources to maintain workflows.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 20-person startup development team uses this to route GitHub bugs directly to their Jira sprint board. Before automation, product managers manually checked GitHub issues twice daily and copy-pasted bug reports into Jira, often missing severity labels. Now critical bugs automatically get high priority in Jira within 30 seconds of being labeled.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into n8n

Copy the pre-built n8n blueprint and paste it straight into n8n. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

GitHub repository with admin access to add webhooks
Jira project with Bug issue type enabled and create permissions
GitHub personal access token with repo scope
Jira API token or account with API access
N8n instance running and accessible from GitHub webhooks

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Issue Titleissue.title
Issue Descriptionissue.body
4 optional fields▸ show
Priority Levelpriority
Reporterissue.user.login
GitHub URLissue.html_url
Label Namesissue.labels

Step-by-Step Setup

1

Dashboard > New workflow

Create New Workflow

Start a new N8n workflow to handle the GitHub-to-Jira integration. This workflow will run whenever a GitHub issue receives a bug label.

  1. 1Click 'New workflow' from the N8n dashboard
  2. 2Click the '+' button to add your first node
  3. 3Name your workflow 'GitHub Bug Router'
What you should see: You should see a blank canvas with a single '+' button ready for your first node.
2

Node Library > Triggers > GitHub Trigger

Add GitHub Webhook Trigger

Configure N8n to listen for GitHub issue events. The webhook will fire whenever an issue is labeled, unlabeled, or modified.

  1. 1Click the '+' button and search for 'GitHub Trigger'
  2. 2Select 'GitHub Trigger' from the list
  3. 3Choose 'Issues' as the event type
  4. 4Set 'Events' to 'labeled'
What you should see: The GitHub Trigger node appears with webhook URL displayed in the configuration panel.
Common mistake — Don't select 'opened' or 'edited' events — you only want the 'labeled' event to avoid duplicate triggers
n8n
+
click +
search apps
GitHub
GI
GitHub
Add GitHub Webhook Trigger
GitHub
GI
module added
3

GitHub Trigger > Credentials > Create New

Connect GitHub Repository

Link your GitHub account and specify which repository to monitor. You'll need a GitHub personal access token with repo permissions.

  1. 1Click 'Create New' next to Credentials
  2. 2Enter your GitHub personal access token
  3. 3Select your target repository from the dropdown
  4. 4Click 'Save' to store the credential
What you should see: Repository dropdown shows your repos and the credential shows a green 'Connected' status.
4

Node Library > Logic > IF

Add Bug Label Filter

Filter the webhook to only process issues labeled with 'bug'. This prevents non-bug issues from creating Jira tickets.

  1. 1Add an 'IF' node after the GitHub trigger
  2. 2Set condition to 'String' comparison
  3. 3Set Value 1 to '{{ $json.label.name }}'
  4. 4Set Operation to 'equal' and Value 2 to 'bug'
What you should see: IF node shows two output paths: 'true' for bug labels and 'false' for other labels.
Common mistake — Case matters — if your GitHub labels use 'Bug' with capital B, adjust the filter accordingly
GitHub
GI
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Jira
JI
notified
5

Node Library > Data > Code

Map Severity from Labels

Extract severity information from GitHub labels to set the appropriate Jira priority. This code node checks for severity labels like 'critical', 'high', 'medium', 'low'.

  1. 1Add a 'Code' node after the IF 'true' branch
  2. 2Set the code language to JavaScript
  3. 3Add logic to check issue labels for severity keywords
  4. 4Map severity to Jira priority values (1-5 scale)
What you should see: Code node output shows the mapped priority value based on detected severity labels.
GitHub fields
title
body
state
html_url
user.login
available as variables:
1.props.title
1.props.body
1.props.state
1.props.html_url
1.props.user.login
6

Node Library > Apps > Jira

Add Jira Node

Configure the Jira integration to create new bug tickets. This node will receive the GitHub issue data and create a corresponding Jira issue.

  1. 1Add a 'Jira' node after the Code node
  2. 2Select 'Issue' as the resource
  3. 3Choose 'Create' as the operation
  4. 4Set 'Issue Type' to 'Bug'
What you should see: Jira node appears with configuration options for creating issues.
Common mistake — Make sure 'Bug' issue type exists in your Jira project — some projects use 'Defect' instead
7

Jira > Credentials > Create New

Configure Jira Credentials

Connect to your Jira instance using either basic auth or API token. You'll need your Jira domain and user credentials.

  1. 1Click 'Create New' next to Jira Credentials
  2. 2Enter your Jira domain (without https://)
  3. 3Add your email and API token
  4. 4Test the connection and save
What you should see: Jira credential shows green 'Connected' status and project dropdown populates.
8

Jira Node > Project Configuration

Select Target Project

Choose which Jira project should receive the bug reports. The project must have Bug issue type enabled.

  1. 1Select your target project from the Project dropdown
  2. 2Verify 'Bug' appears in the Issue Type field
  3. 3Set the default assignee if required by your project
What you should see: Project and Issue Type fields show your selections with no validation errors.
Common mistake — Some Jira projects require assignee — check your project settings if creation fails
9

Jira Node > Field Mapping

Map Issue Fields

Connect GitHub issue data to Jira fields. This includes title, description, priority, and any custom fields your project requires.

  1. 1Set Summary to '{{ $node.GitHub_Trigger.json.issue.title }}'
  2. 2Map Description to '{{ $node.GitHub_Trigger.json.issue.body }}'
  3. 3Set Priority to '{{ $node.Code.json.priority }}'
  4. 4Add Reporter as the GitHub issue author
What you should see: All required fields show green checkmarks with mapped expressions.
10

Jira Node > Description Field

Add GitHub Link

Include a link back to the original GitHub issue in the Jira ticket description. This helps developers jump between systems.

  1. 1Modify the Description field mapping
  2. 2Add GitHub issue URL at the bottom
  3. 3Use '{{ $node.GitHub_Trigger.json.issue.html_url }}' expression
  4. 4Format with 'GitHub Issue: [URL]' label
What you should see: Description field shows both GitHub issue body and the issue URL.
11

Workflow > Execute Workflow

Test the Workflow

Run a test to verify the integration works correctly. You'll manually trigger with sample GitHub data.

  1. 1Click 'Execute Workflow' button
  2. 2Choose 'Manual' execution
  3. 3Provide sample GitHub issue data with bug label
  4. 4Check that Jira ticket gets created
What you should see: Green checkmarks on all nodes and a new Jira ticket in your project.
Common mistake — Don't test with production data — create a test issue in GitHub or use sample JSON
n8n
▶ Run once
executed
GitHub
Jira
Jira
🔔 notification
received
12

Workflow Header > Active Toggle

Activate Workflow

Enable the workflow to run automatically on GitHub events. Copy the webhook URL to GitHub repository settings.

  1. 1Click 'Active' toggle in the top right
  2. 2Copy the webhook URL from GitHub Trigger node
  3. 3Go to GitHub repo Settings > Webhooks
  4. 4Add the N8n webhook URL with 'application/json' content type
What you should see: Workflow shows 'Active' status and GitHub webhook shows green checkmark after first ping.

Drop this into an n8n Code node.

JavaScript — Code Node// Enhanced severity detection in Code node
▸ Show code
// Enhanced severity detection in Code node
const labels = $input.first().json.issue.labels.map(l => l.name.toLowerCase());
let priority = 3; // default medium

... expand to see full code

// Enhanced severity detection in Code node
const labels = $input.first().json.issue.labels.map(l => l.name.toLowerCase());
let priority = 3; // default medium
if (labels.some(l => l.includes('critical') || l.includes('p0'))) priority = 1;
else if (labels.some(l => l.includes('high') || l.includes('p1'))) priority = 2;
else if (labels.some(l => l.includes('low') || l.includes('p3'))) priority = 4;
return [{json: {priority, severity_labels: labels}}];

Scaling Beyond 100+ bugs/week+ Records

If your volume exceeds 100+ bugs/week records, apply these adjustments.

1

Add Rate Limit Handling

Include a Wait node with 100ms delay before Jira creation. Jira's API rate limit is 10 requests/second and bulk bug imports can hit this ceiling quickly.

2

Batch Multiple Labels

Modify the Code node to handle multiple label changes in one execution. GitHub sometimes sends rapid-fire webhook events when users add several labels simultaneously.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use N8n for this if you need custom severity mapping logic or want to avoid monthly subscription costs. The Code node lets you build complex label-to-priority rules that Zapier can't handle without premium features. N8n also gives you unlimited GitHub-to-Jira workflows on the self-hosted version. Skip N8n if you need this running in 5 minutes — Make's pre-built GitHub/Jira templates are faster to deploy.

Cost

This workflow burns 2 executions per bug report (IF node + Jira creation). At 50 bugs/month, that's 100 executions total. N8n cloud's Starter plan ($20/month) includes 5,000 executions, so you're nowhere near the limit. Make would cost $9/month for the same volume but caps at 1,000 operations. Zapier starts at $20/month with a 750-task limit. N8n gives you the most room to grow.

Tradeoffs

Make beats N8n on the initial setup — its GitHub trigger includes built-in label filtering without needing an IF node. Zapier's Jira integration auto-maps more fields by default, saving configuration time. But N8n wins on flexibility — the Code node lets you implement complex severity detection rules that check multiple labels simultaneously, something Make requires premium routers to accomplish.

GitHub's webhook delivery isn't guaranteed — if N8n is down when the label gets added, the ticket won't get created. Set up webhook retry in your GitHub settings to handle this. Jira's API rate limit is 10 requests/second, so batch processing breaks at high volume. Your workflow will also fail silently if someone deletes the Bug issue type from your Jira project — N8n doesn't validate issue types before execution.

Ideas for what to build next

  • Add Slack NotificationsSend a message to #dev-team when critical bugs get created in Jira, including both GitHub and Jira links.
  • Sync Status UpdatesCreate a reverse workflow that updates GitHub issue status when Jira ticket moves to Done or Closed.
  • Auto-Assign Based on ComponentsUse GitHub labels like 'api' or 'frontend' to automatically assign Jira tickets to the right team members.

Related guides

Was this guide helpful?
GitHub + Jira overviewn8n profile →