

How to Move Jira Tickets to In Review from GitHub PRs with Make
Automatically updates Jira ticket status to In Review when a GitHub pull request references the ticket key in the branch name.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
Development teams with consistent branch naming who need real-time Jira status updates
Not ideal for
Teams with inconsistent branch naming or complex ticket key formats across multiple projects
Sync type
real-timeUse case type
syncReal-World Example
A 12-person startup dev team uses this to automatically move tickets to In Review when PRs are opened for code review. Before automation, developers manually updated 15-20 tickets daily in Jira after creating PRs, often forgetting until standups. Now ticket status stays accurate and project managers see review progress in real-time without nagging developers.
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 Make
Copy the pre-built Make blueprint and paste it straight into Make. 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 | ||
| Pull Request Branch | head.ref | |
| Ticket Key Match | $1 | |
| Transition ID | transition.id | |
3 optional fieldsβΈ show
| PR Title | title |
| Author Username | user.login |
| Repository Name | repository.name |
Step-by-Step Setup
Scenarios > Create new scenario > +
Create New Make Scenario
Start a blank scenario in Make to connect GitHub pull request events to Jira status updates. This will be the container for your entire automation workflow.
- 1Log into Make and click 'Create a new scenario'
- 2Click the + button to add your first module
- 3Search for 'GitHub' in the app list
- 4Select 'GitHub' from the results
GitHub > Watch Pull Requests > Connection
Configure GitHub Pull Request Trigger
Set up the webhook trigger to fire when pull requests are opened. This monitors your repository for new PRs and captures the branch name containing ticket keys.
- 1Select 'Watch Pull Requests' from the GitHub triggers list
- 2Connect your GitHub account or select existing connection
- 3Choose your target repository from the dropdown
- 4Set Event to 'opened' only
- 5Click OK to save the trigger configuration
Text parser > Match pattern
Add Text Parser Module
Insert a text parser to extract Jira ticket keys from branch names. This uses regex to find patterns like PROJ-123 in the branch reference.
- 1Click the + button after the GitHub module
- 2Search for 'Text parser' and select it
- 3Choose 'Match pattern' as the function
- 4In Pattern field, enter: ([A-Z]+-[0-9]+)
- 5Map the Text field to GitHub > Pull Request > Head > Ref
Flow control > Router
Add Router for Conditional Logic
Add a router to handle cases where branch names don't contain Jira keys. This prevents the scenario from failing when PRs don't follow the naming convention.
- 1Click + after the text parser module
- 2Select 'Flow control' then 'Router'
- 3The router appears with two empty paths
- 4Click on the first path to configure it
Router > Filter > Condition
Configure Router Filter
Set up the filter condition to only proceed when a Jira key is found. This route processes PRs with valid ticket references while ignoring others.
- 1Click the wrench icon on the first router path
- 2Set Label to 'Jira Key Found'
- 3Set Condition to 'Text parser: $1 exists'
- 4Set the condition operator to 'Is not equal to' empty
- 5Click OK to save the filter
Jira Software > Make an API Call > Connection
Add Jira Connection Module
Connect to your Jira instance to enable ticket status updates. This establishes the authentication needed to modify issue statuses programmatically.
- 1Click + on the filtered router path
- 2Search for 'Jira Software' and select it
- 3Choose 'Make an API Call' from the actions
- 4Select 'POST' as the HTTP method
- 5Connect your Jira account with API token
Jira > API Call > URL Configuration
Configure Jira API Endpoint
Set the API endpoint to transition the ticket status. This calls Jira's transitions endpoint to move tickets through your workflow states.
- 1Set URL to: /rest/api/3/issue/{{text parser.$1}}/transitions
- 2Set Method to 'POST'
- 3In Headers, add 'Content-Type: application/json'
- 4In Body, enter: {"transition":{"id":"YOUR_TRANSITION_ID"}}
- 5Replace YOUR_TRANSITION_ID with your workflow's In Review transition ID
Scenario > Run once > Execution log
Test with Sample Data
Run a test to verify the integration works with real GitHub and Jira data. This validates your regex pattern captures ticket keys and Jira accepts the status change.
- 1Click 'Run once' at the bottom of the scenario
- 2Create a test PR with branch name like 'feature/PROJ-123-new-feature'
- 3Wait 10-15 seconds for the webhook to trigger
- 4Check the execution log for successful completion
- 5Verify the Jira ticket moved to In Review status
Module > Add error handler > Ignore
Handle Error Cases
Add error handling for failed Jira API calls and invalid ticket keys. This prevents the scenario from breaking when tickets don't exist or transitions fail.
- 1Right-click the Jira module and select 'Add error handler'
- 2Choose 'Ignore' as the error handling directive
- 3Add a second router path for when no Jira key is found
- 4Label the second path 'Skip - No Ticket Key'
- 5Leave the second path empty (it will complete successfully)
Scenario > Toggle ON > Confirm
Activate the Scenario
Turn on the scenario to start monitoring GitHub PRs automatically. This enables the webhook listener and begins processing new pull requests in real-time.
- 1Click the toggle switch in the bottom left to 'ON'
- 2Confirm the activation in the popup dialog
- 3Verify the webhook appears in your GitHub repo settings
- 4The scenario status shows 'Active' with a green indicator
Drop this into a Make custom function.
Copy this template{{replace(replace(1.head.ref; "feature/"; ""); "bugfix/"; "")}} - Use this in text parser to strip common branch prefixes before regex matching ticket keysβΈ Show code
{{replace(replace(1.head.ref; "feature/"; ""); "bugfix/"; "")}} - Use this in text parser to strip common branch prefixes before regex matching ticket keys... expand to see full code
{{replace(replace(1.head.ref; "feature/"; ""); "bugfix/"; "")}} - Use this in text parser to strip common branch prefixes before regex matching ticket keysScaling Beyond 100+ PRs per day+ Records
If your volume exceeds 100+ PRs per day records, apply these adjustments.
Add Operation Batching
Group multiple ticket updates using Make's array aggregator if PRs reference multiple tickets. This reduces API calls from 3 per ticket to 1 per batch.
Cache Transition IDs
Store Jira transition IDs in Make's data store instead of hardcoding them. This prevents API calls to fetch transition options on every PR and speeds execution by 40%.
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 Make for this if you need real-time status updates and your team consistently follows branch naming conventions. Make's webhook triggers fire within 30 seconds of PR creation, much faster than Zapier's 5-minute polling. The visual scenario builder makes it easy to add conditional logic for different ticket formats or multiple repositories. Skip Make if your team uses inconsistent branch names - n8n's more flexible text parsing would work better for messy naming patterns.
This workflow uses 3 operations per PR: GitHub webhook, text parser, and Jira API call. At 100 PRs per month, that's 300 operations monthly. Make's Core plan covers 10,000 operations for $9/month, so you're well within limits. Zapier charges $20/month for the same webhook volume on their Starter plan. n8n cloud costs $20/month for 5,000 executions. Make wins on cost until you hit 200+ PRs monthly.
Zapier has a native Jira 'Update Issue' action that handles status transitions without API calls, making setup faster than Make's manual API configuration. n8n offers better regex testing tools and more text parsing functions for complex branch name patterns. But Make's router system handles error cases more elegantly - failed ticket lookups don't break the entire scenario like they do in Zapier. For teams with consistent naming conventions, Make's reliability beats the others' convenience features.
You'll hit rate limits at 150+ API calls per hour if your team opens PRs in bursts during standup or sprint planning. Jira Cloud throttles at 1000 requests per hour per user, but Make's IP-based limits are stricter. Add a 2-second delay module before Jira calls if you see 429 errors. GitHub's webhook delivery can duplicate if your scenario takes longer than 10 seconds to respond - add operation count monitoring to catch runaway scenarios early.
Ideas for what to build next
- βAdd Slack Notifications β Send a Slack message to your dev channel when tickets move to In Review, including PR link and reviewer assignments.
- βAuto-assign Jira Tickets β Update the Jira assignee field to match the PR author, ensuring ticket ownership stays aligned with code changes.
- βTrack Review Duration β Log start time when tickets enter In Review and calculate average review time when PRs merge or tickets move to Done.
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