

How to route GitHub bug reports to Jira with Power Automate
Auto-creates Jira bug tickets when GitHub issues get labeled 'bug', mapping severity from GitHub labels to Jira priority fields.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
Development teams already using Microsoft 365 who need bug reports flowing from GitHub to Jira without manual copying.
Not ideal for
Teams needing complex conditional routing or custom field transformations beyond basic label mapping.
Sync type
real-timeUse case type
routingReal-World Example
A 25-person development team gets 40-60 bug reports per week across 8 GitHub repositories. Before automation, the product manager spent 2 hours daily copying issue details into Jira and assigning severity levels. Now bug reports flow automatically 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 Power Automate
Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. 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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Issue Title | summary | |
| Issue Description | description | |
| Issue Type | issuetype | |
| Project Key | project | |
3 optional fieldsβΈ show
| Priority Level | priority |
| Reporter | reporter |
| Labels | labels |
Step-by-Step Setup
My flows > New flow > Automated cloud flow
Create new automated flow
Navigate to make.powerautomate.com and sign in. Click 'My flows' in the left sidebar, then the 'New flow' button. Select 'Automated cloud flow' from the dropdown menu. Name your flow 'GitHub Bug to Jira Router'.
- 1Click 'My flows' in left navigation
- 2Click the 'New flow' dropdown button
- 3Select 'Automated cloud flow'
- 4Type 'GitHub Bug to Jira Router' as flow name
Trigger selection > Search > GitHub > When an issue is updated
Configure GitHub webhook trigger
In the trigger selection screen, search for 'GitHub' and select the GitHub connector. Choose 'When an issue is updated' trigger. This fires whenever issue labels change, get added, or removed in your repository.
- 1Type 'GitHub' in the search box
- 2Click the GitHub connector icon
- 3Select 'When an issue is updated' trigger
- 4Click 'Create' to proceed
GitHub trigger > Sign in
Connect your GitHub account
Click 'Sign in' in the GitHub trigger step. Authenticate with your GitHub account that has access to the repositories containing bug reports. Grant the requested permissions for reading issues and webhooks.
- 1Click 'Sign in' button in the GitHub step
- 2Enter your GitHub username and password
- 3Click 'Authorize PowerAutomate' if prompted
- 4Select the organization if you have multiple
GitHub trigger > Repository selection
Select repository and configure trigger
Choose your target repository from the dropdown. This should be the repo where developers label issues as bugs. Leave the other trigger settings at their defaults - we want all issue updates to fire the trigger.
- 1Click the Repository dropdown
- 2Select your main development repository
- 3Leave 'Events' field as default
- 4Click outside the step to save settings
New step > Control > Condition
Add condition to filter bug labels
Click 'New step' below the GitHub trigger. Search for 'condition' and select the Control connector's Condition action. This filters for issues that actually have bug labels before creating Jira tickets.
- 1Click '+ New step' button
- 2Type 'condition' in the search box
- 3Select the Control connector
- 4Click 'Condition' action
Condition > Dynamic content > labels
Configure bug label condition
In the condition's left box, click and select 'labels' from the GitHub dynamic content. Set the middle dropdown to 'contains'. In the right box, type 'bug' (or whatever label your team uses for bugs).
- 1Click the left condition field
- 2Select 'labels' from GitHub dynamic content
- 3Set middle dropdown to 'contains'
- 4Type 'bug' in the right field
Condition Yes branch > Add action > Jira > Create a new issue
Add Jira connection in Yes branch
Click 'Add an action' under the Yes branch (when bug label is found). Search for 'Jira' and select the Jira Software Cloud connector. Choose 'Create a new issue' action to generate bug tickets.
- 1Click 'Add an action' under Yes branch
- 2Type 'Jira' in connector search
- 3Select 'Jira Software Cloud'
- 4Choose 'Create a new issue' action
Jira step > Sign in > API token
Connect to Jira Cloud
Click 'Sign in' for the Jira connection. Enter your Jira Cloud site URL (yourcompany.atlassian.net), email, and API token. Get your API token from Atlassian account settings if you don't have one.
- 1Click 'Sign in' in the Jira step
- 2Enter your Jira site URL
- 3Enter your email address
- 4Paste your Jira API token
Jira step > Field mapping
Map GitHub issue to Jira fields
Select your Jira project from the dropdown. Set Issue Type to 'Bug'. Map the Summary field to GitHub's 'title' using dynamic content. Map Description to 'body' from GitHub. This creates structured bug tickets.
- 1Select your target Jira project
- 2Set Issue Type to 'Bug'
- 3Click Summary field and select 'title' from GitHub
- 4Click Description and select 'body' from GitHub
Jira step > Priority > Expression
Add priority mapping with expressions
Click the Priority field in Jira step. Click 'Expression' tab and enter: if(contains(triggerBody()?['issue']?['labels'], 'critical'), 'Highest', if(contains(triggerBody()?['issue']?['labels'], 'high'), 'High', 'Medium')). This maps GitHub labels to Jira priority levels.
- 1Click Priority dropdown in Jira step
- 2Click 'Expression' tab at top
- 3Paste the priority mapping expression
- 4Click 'OK' to save expression
Top toolbar > Save > Test
Test and activate flow
Click 'Save' in the top right to save your flow. Navigate to your GitHub repo, create a test issue, and add both 'bug' and 'critical' labels. Check your Jira project for the new bug ticket within 60 seconds.
- 1Click 'Save' button in top toolbar
- 2Go to your GitHub repository
- 3Create a new issue with 'bug' label
- 4Check Jira for the created ticket
Add this expression in the Jira Assignee field to automatically assign bugs based on GitHub repository. Paste it in the Expression tab when configuring the assignee field.
JavaScript β Code Stepif(equals(triggerBody()?['repository']?['name'], 'frontend-app'), '[email protected]',βΈ Show code
if(equals(triggerBody()?['repository']?['name'], 'frontend-app'), '[email protected]', if(equals(triggerBody()?['repository']?['name'], 'api-backend'), '[email protected]', if(equals(triggerBody()?['repository']?['name'], 'mobile-ios'), '[email protected]',
... expand to see full code
if(equals(triggerBody()?['repository']?['name'], 'frontend-app'), '[email protected]', if(equals(triggerBody()?['repository']?['name'], 'api-backend'), '[email protected]', if(equals(triggerBody()?['repository']?['name'], 'mobile-ios'), '[email protected]', '[email protected]' ) ) )
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 Power Automate for this if you're already in the Microsoft ecosystem and need reliable webhook delivery without vendor management overhead. The GitHub and Jira connectors handle authentication renewal automatically, and webhook registration happens behind the scenes. Skip Power Automate if you need complex field transformations or multiple conditional branches - Make handles those scenarios better.
Real math: GitHub webhook triggers are free, and Jira actions cost 1 run per bug report. At 50 bug reports per month, you'll use 50 runs total. Most Microsoft 365 business plans include 2,000 runs monthly, so this workflow costs effectively nothing unless you're processing 500+ bugs monthly.
Make wins on conditional logic complexity - their visual router handles 5+ different Jira projects cleaner than nested Power Automate conditions. Zapier's GitHub integration updates faster and includes more trigger options like specific label additions. n8n gives you raw webhook payload access for custom GitHub Enterprise setups. But Power Automate integrates natively with Teams for notifications and SharePoint for bug report documentation without extra authentication steps.
You'll hit GitHub webhook delivery delays during high-traffic periods - expect 2-3 minute delays instead of the promised 30 seconds. Jira Cloud API occasionally returns 500 errors during maintenance windows, failing your flow until the next retry. Priority mapping breaks if your team starts using emoji labels or changes label naming conventions without updating the expressions.
Ideas for what to build next
- βAdd reverse sync for status updates β Create a second flow that updates GitHub issue labels when Jira tickets move to Done or Won't Fix status.
- βRoute to different Jira projects by repository β Modify the condition to check repository name and create tickets in project-specific Jira instances.
- βSend Slack notifications for critical bugs β Add a Slack action after Jira creation to notify #dev-urgent channel when priority is Highest.
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