

How to Route Bug Reports from GitHub to Jira with Pipedream
Automatically creates Jira bug tickets when GitHub issues are labeled 'bug' with severity mapping from GitHub labels.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
Development teams who track bugs in Jira but receive reports through GitHub issues.
Not ideal for
Teams that want two-way sync or need to route multiple issue types beyond bugs.
Sync type
real-timeUse case type
routingReal-World Example
A 20-person development team gets bug reports filed as GitHub issues but manages their sprint work in Jira. Before automation, someone manually checked GitHub twice daily and created duplicate Jira tickets, missing urgent bugs for 3-6 hours. Now critical bugs flow into Jira within 30 seconds of labeling.
What Will This Cost?
Drag the slider to your expected monthly volume.
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
Import this workflow directly into Pipedream
Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. 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.
Optional
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Issue Title | summary | |
| Issue Description | description | |
| Priority Level | priority | |
| Issue Type | issuetype | |
| Project | project | |
3 optional fieldsβΈ show
| Reporter | reporter |
| Labels | labels |
| Source URL | customfield_10001 |
Step-by-Step Setup
Workflows > New > Workflow
Create new workflow
Log into pipedream.com and click the blue New button in the top right. Select Workflow from the dropdown menu. You'll land on a blank workflow canvas with a trigger step already added at the top.
- 1Click New in the top navigation
- 2Select Workflow from the dropdown
- 3You'll see an empty trigger step
Trigger > GitHub > New Issue Event
Add GitHub webhook trigger
Click on the trigger step and search for GitHub in the app list. Select 'New Issue Event' from the available triggers. This creates a webhook endpoint that GitHub will call whenever issue events happen in your repository.
- 1Click the trigger step
- 2Search for 'GitHub' in the app selector
- 3Choose 'New Issue Event' from the trigger list
- 4Click Continue
GitHub Trigger > Connect Account
Connect GitHub account
Click Connect Account and authorize Pipedream to access your GitHub repositories. After OAuth completes, select your target repository from the Repository dropdown. Choose 'issues' from the Events field to only listen for issue-related changes.
- 1Click Connect Account
- 2Complete GitHub OAuth in the popup
- 3Select your repository from the dropdown
- 4Set Events to 'issues'
Add Step > Filter
Add filter for bug labels
Click the plus icon below your trigger to add a new step. Search for 'Filter' and select it. This prevents the workflow from running on every GitHub issue event. You only want it to proceed when the action is 'labeled' and the label name is 'bug'.
- 1Click the + icon below the trigger
- 2Search for 'Filter'
- 3Select the Filter step
- 4Set condition to continue only if specific criteria match
Filter > Conditions
Configure bug label condition
In the filter condition, set the first dropdown to 'steps.trigger.event.action' and choose 'equal to'. Type 'labeled' in the value field. Add a second condition where 'steps.trigger.event.label.name' equals 'bug'. Set the logic to AND so both conditions must be true.
- 1Set first condition: action equals 'labeled'
- 2Click Add Condition
- 3Set second condition: label.name equals 'bug'
- 4Change logic operator to AND
Add Step > Code > Run Node.js Code
Add severity mapping code step
Add another step and choose 'Run Node.js Code'. This step will examine the GitHub issue labels and map them to Jira severity levels. GitHub might use labels like 'critical', 'high', 'medium' that need conversion to Jira's priority scheme.
- 1Click + to add another step
- 2Select 'Run Node.js Code'
- 3Name the step 'Map Severity'
- 4Clear the default code
This code examines all GitHub issue labels and maps severity indicators to Jira priorities. Paste it in the Node.js code step between the filter and Jira creation.
JavaScript β Code Stepexport default defineComponent({βΈ Show code
export default defineComponent({
async run({ steps, $ }) {
const issue = steps.trigger.event.issue;... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const issue = steps.trigger.event.issue;
const labels = issue.labels?.map(l => l.name.toLowerCase()) || [];
// Map GitHub labels to Jira priorities
let priority = 'Medium'; // default
if (labels.includes('critical') || labels.includes('p0')) {
priority = 'Highest';
} else if (labels.includes('high') || labels.includes('p1')) {
priority = 'High';
} else if (labels.includes('low') || labels.includes('p3')) {
priority = 'Low';
}
// Extract additional context
const severity = labels.find(l => l.startsWith('severity-'));
const component = labels.find(l => l.startsWith('component-'));
return {
title: issue.title,
description: `${issue.body}\n\nGitHub Issue: ${issue.html_url}\nReporter: ${issue.user.login}`,
priority,
severity,
component: component?.replace('component-', ''),
originalLabels: labels,
githubId: issue.id
};
}
});Code Step > Editor
Write severity mapping logic
Replace the default code with logic that checks all labels on the GitHub issue and converts them to Jira priority names. The code should return both the mapped priority and extract other useful fields like title and description for the Jira ticket.
- 1Delete the template code
- 2Paste the severity mapping code
- 3Update the label names to match your GitHub setup
- 4Test with sample data
Add Step > Jira > Create Issue
Add Jira create issue step
Add a new step and search for Jira. Select 'Create Issue' from the available actions. This step will take the mapped data from your code step and create the actual bug ticket in your Jira project.
- 1Click + to add a step
- 2Search for 'Jira'
- 3Choose 'Create Issue' action
- 4Click Continue
Jira Step > Connect Account > Configure Issue
Connect Jira and configure project
Connect your Jira account through OAuth or API token depending on your Jira type. Once connected, select your target project from the Project dropdown. Set Issue Type to 'Bug' and map the Summary field to the GitHub issue title from your trigger data.
- 1Click Connect Account and complete Jira auth
- 2Select your project from the dropdown
- 3Set Issue Type to 'Bug'
- 4Map Summary to GitHub issue title
Jira Step > Field Mapping
Map remaining Jira fields
Fill out the Description field with the GitHub issue body text. Set Priority using the mapped severity from your code step. Add the GitHub issue URL to a custom field or in the description so your team can reference the original report.
- 1Map Description to GitHub issue body
- 2Set Priority from code step output
- 3Add GitHub URL to description or custom field
- 4Configure any required custom fields
Test > Select Event Data
Test the workflow
Click the Test button in the top right to run your workflow with sample data. If you don't see recent GitHub events in the test data dropdown, go create a test issue in GitHub, add the 'bug' label, then come back and test. Check that your Jira project shows the new bug ticket.
- 1Click Test in the top navigation
- 2Select a recent GitHub issue event
- 3Click Run Test
- 4Check Jira project for new ticket
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
Use Pipedream for this if your team codes in JavaScript and wants instant webhook processing. The Node.js code steps let you build complex label-to-priority mapping logic that handles edge cases. GitHub webhooks fire within 2-3 seconds of labeling, faster than polling-based platforms. Skip Pipedream if your team prefers visual workflow builders without code.
Each workflow run consumes 1 credit. At 50 bug reports per month, you'll use 50 credits which costs $0 on the free tier. Make charges $9/month minimum for webhooks. Zapier needs the $20/month plan for webhooks. Pipedream wins on cost until you hit 10,000 credits monthly.
Make has better visual debugging when workflows fail - you see exactly which module broke and why. Zapier's formatter handles text manipulation without code. n8n gives you more GitHub trigger options like PR events and repository changes. Power Automate integrates better if you're already using Microsoft tools. But Pipedream's instant webhook processing beats all of them for time-sensitive bug routing where every minute matters.
You'll hit GitHub's webhook delivery retry logic if your workflow fails repeatedly - GitHub will eventually disable the webhook. Jira's API sometimes returns cryptic required field errors that don't match what you see in the UI. The GitHub labels array comes back empty if the issue has no labels, which breaks code expecting at least one element. Always add null checks and fallback values in your mapping logic.
Ideas for what to build next
- βAdd assignee mapping β Map GitHub issue assignees to corresponding Jira users based on username or email matching.
- βCreate reverse status updates β Build a second workflow that comments on GitHub issues when Jira bug status changes to Done or Won't Fix.
- βRoute to different projects β Extend the code step to examine component labels and route bugs to appropriate Jira projects automatically.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup