Forum Discussion
JPD to Azure DevOps: syncing approved ideas to Epics and getting delivery status back
If your product team prioritizes ideas in Jira Product Discovery (JPD) and your engineers deliver in Azure DevOps, you're probably recreating approved ideas as Epics by hand. After that, the Epic moves through delivery and never gets reflected in JPD.
I often see this split. Development works in Azure DevOps; other departments move to Jira, and manual tracking becomes a fallback whenever work spans both. Here's what I've learned about connecting the two, including the parts that don't sync cleanly.
What happens without a sync
Your product team creates an epic in Azure DevOps and copies over the title, the description, and maybe the acceptance criteria.
Then engineering takes over. State changes, comments, and linked pull requests stay in Azure DevOps, so product has to open the board to find out whether something shipped. This defeats the point of keeping the roadmap in JPD.
Why JPD is harder to integrate than regular Jira
You'd expect the Jira Cloud REST API to cover it, since JPD runs inside Jira. It covers part of it.
- JPD projects are team-managed, so their fields don't share with company-managed projects the way regular Jira fields do.
- The Jira Cloud API reads and updates JPD ideas as issues, but there's no dedicated public API for JPD-specific artifacts.
- Insights, views, and the newer roadmap fields sit outside what the standard API gives you.
- Formula fields don't come through the API at all.
The Atlassian-maintained Azure DevOps for Jira app doesn't solve this either. It links development activity to Jira issues, and it doesn't create or sync work items between the two tools.
What syncs and what needs work
- Standard fields sync without trouble: summary, description, status, priority, assignee, reporter, comments, attachments, and labels.
- Custom fields such as impact and effort scores, RICE values, product areas, and goals sync cleanly, since they're regular custom fields.
- Insights, views, and roadmap fields need custom scripting, and some aren't fully supported.
- Formula fields won't sync, because the API never returns them.
The connection is easy to establish. Field mapping is where most of the work goes, and 2 problems come up again and again.
The first is user mapping. Jira identifies people by account ID, and Azure DevOps uses Entra ID identities, so assignee and reporter need an explicit lookup between the two. Add a fallback for users who only exist on one side. Syncs can break because the default assignee left the company and their account was deactivated.
The second is empty fields. A sync that assumes a value is always there fails when a field is left blank in JPD, so handle nulls before you go live.
Use case 1: Push approved ideas to Azure DevOps as Epics
Idea to Epic handoff
Current Setup: Product prioritizes in JPD. Engineering works from an Azure DevOps board.
Problem: Approved ideas get recreated as Epics manually, and the scoring context gets lost along the way.
Solution: A query-based trigger on the JPD side picks up ideas once they hit an approved status and creates the Epic in the right Azure DevOps project, with score fields carried over.
Most teams I talk to don't want every idea pushed across. They want to decide when something crosses over, so the trigger condition matters more than people expect.
- One idea usually maps to one Epic. JPD doesn't carry a Feature or User Story hierarchy, so any split into Features and stories happens in Azure DevOps after the sync.
- Use a JQL trigger such as project = ROADMAP AND status = Approved so only ready ideas cross over. A manual "sync this" action may not exist on the JPD idea view, and a query-based trigger also removes the risk of someone syncing the wrong idea by accident.
- Use the JPD product area field to set the area path on the Epic, so it lands on the right team's board without anyone triaging it.
Use case 2: Get delivery status back into JPD
Epic state to idea status
Current Setup: The idea lives in JPD, and the Epic lives in Azure DevOps.
Problem: Product only knows delivery status by asking engineering or opening the board.
Solution: Map the Epic's state back to the idea's status, so the roadmap in JPD shows what's shipping.
Example mapping for the Agile process template:
- New → Ready for delivery
- Active → Implementing
- Resolved → Waiting for release
- Closed → Released
If your organization uses Scrum, CMMI, or an inherited custom process, your Epic states will differ, so build the mapping from your own process. Decide field by field which side wins when both teams edit the same thing. Status usually flows from Azure DevOps to JPD only, and priority often flows the other way.
Going further with pull requests and release gates
Some teams want more than a done or not-done flag. One setup I've seen ties Jira story status to Azure DevOps pull request events. A story moves to Code Review when a PR goes up, Ready for QA once the PR is approved, and back to In Progress if QA rejects it.
The same logic works at the release level. Azure DevOps moves the linked Jira release through UAT Approved, Security Approved, and CAB Approved as each gate clears, then adds a link to the deployment pipeline once the release goes out.
This applies to Jira Software stories and releases, not JPD ideas directly. None of it works out of the box. You write it into the sync rules on both sides, with service hooks on the Azure DevOps side firing the events.
The admin rights problem
Product and engineering rarely hold admin rights on each other's tools, and I've seen this stall projects completely. At one bank, the Jira admin wasn't an admin in Azure DevOps, and corporate policy blocked direct access between the two systems.
Pick a setup where each side authenticates and controls its own configuration. On the Azure DevOps side, that means a scoped PAT or an Entra ID service principal owned by your Azure DevOps admin. Nobody needs admin rights on the other team's system to keep the sync running.
Plan for a separate security review too. In most organizations, the person who owns the integration isn't the person who signs off on it, and InfoSec will ask where data is stored, how long it's kept, and how it's encrypted. Have those answers ready before the technical evaluation ends, so the project doesn't stall at the last step.
What to check before you pick an approach
You have 3 realistic options:
- Jira Automation plus Azure DevOps service hooks. This is free and works for simple one-way flows. It gets harder once you need two-way updates, attachments, or anything beyond creating the Epic once.
- Custom middleware on Azure Functions or Logic Apps. You get full control, and you also own every API change on both sides from then on.
- A third-party integration platform. This is faster to set up, with a subscription cost and less control over the internals.
Whichever you choose, check it against these:
- Bidirectional sync, with direction set per field
- Support for JPD custom fields, plus a plan for insights and roadmap fields
- Query-based triggers on the JPD side
- State mapping that handles your Azure DevOps process template
- User mapping between Jira account IDs and Entra ID identities, with a fallback
- Separate admin control on each side, with PAT or Entra ID authentication
- Scripting for conditional logic such as PR events and release gates
- Clear error reporting that tells you which item failed and why, plus automatic retries
- Audit logging, role-based access, and the certifications your security team asks about (ISO 27001 is the usual one)
Error reporting is often skipped during evaluation. When a sync fails at scale, you need to see the failing work item and the component that broke without exporting logs to a spreadsheet.
If you run Azure DevOps Server on-premises, add one more check: how the tool reaches your server from the Jira Cloud side. That decides whether you need to open inbound access or run part of the integration inside your network.
FAQs
Can you sync Jira Product Discovery with Azure DevOps?
Yes. JPD ideas behave as Jira issues through the Jira Cloud API, so an integration can create Azure DevOps Epics from approved ideas and send state changes back. Standard and custom fields work. Insights, views, roadmap fields, and formula fields need extra work or won't sync.
Does Jira Product Discovery have its own API?
The regular Jira Cloud REST API reads and updates JPD ideas as issues. There's no dedicated public API for JPD-specific artifacts such as insights or formula fields.
Will RICE scores sync to Azure DevOps?
RICE, impact, and effort scores sync because they're standard custom fields. You'll need matching custom fields on the Epic work item type in your Azure DevOps process to receive them.
Can Jira Automation handle this on its own?
It can create an Epic in Azure DevOps through a web request when an idea is approved. Keeping both sides updated after that, including comments, attachments, and state, is where automation rules usually run out.
Do I need admin access to both Jira and Azure DevOps?
Not if each side authenticates separately. Your Azure DevOps admin sets up a PAT or service principal on their side, your Jira admin handles theirs, and neither needs rights on the other system.
Before you build
Pull up the JPD fields your product team uses every week and check each one against your sync rules. Then run a test sync on a few ideas and compare the values on both sides before you go live.