done. Nothing else crosses the seam.
Setup
1
Import the blueprints
From the repo:
pb-to-jira and jira-to-pb. In Make: Create a new scenario → ⋯ → Import Blueprint.2
Create the webhooks
In each scenario, open the first module and create a new custom webhook. Copy both URLs.
3
Fill the placeholders
Scenario A (PB → Jira): your site URL (
YOUR_SITE.atlassian.net), project key, and a Basic auth value. base64(your-email:api-token) (create the token at id.atlassian.com → Security). Scenario B: your ProductBrain API key (Settings → API Keys).4
Point ProductBrain at Make
5
Point Jira at Make
Jira → Settings → System → Webhooks → new webhook with Scenario B’s URL, event Issue: updated. Optionally scope it with JQL on your project label, which Scenario A adds to every issue it creates:
labels = "pbp-my-project".6
Turn both scenarios on
Create a job in ProductBrain, Jira issue appears. Complete it, the job shows
done.How the linkage works
The issue carries two labels:pb-job-12 and pbp-my-project. Scenario B parses them, Jira Cloud webhooks deliver descriptions in ADF format, so labels are the reliable carrier. Don’t remove the pb- labels.
Claim an existing issue
Already have a Jira issue for the work? Link it to a job by hand. Add the same two labels Scenario A would have written:pb-job-12, wherejob-12is the job’s ID in ProductBrainpbp-my-project, wheremy-projectis your ProductBrain project ID
done.
This works because Scenario B never checks who created the issue. Its filter has two conditions: the status category key equals done, and the joined labels contain pb-job-. The job ID and project ID then come from the labels alone. Things to know:
- Both labels are required. The filter only looks for
pb-job-. Withoutpbp-, Scenario B reads the wrong project ID and the update fails. - One job per issue. With two
pb-job-labels, Scenario B uses the last one. - Labelling a finished issue. If the issue is already in a done status, adding the labels is itself an update, so expect the job to be marked
donestraight away. - Check for a twin. If Scenario A was on when the job was created, Jira already has a Story with these labels. Remove the
pb-labels from the one you don’t want, or the first of the two to finish marks the jobdone. - JQL scope. If you scoped the Jira webhook on your
pbp-project label, as the setup suggests, the two labels above already match it. A scope on any other label needs that label on the issue too, or Jira never sends the update.
This section is read from the two blueprints, not tested against a live Jira site.
When does a job become done?
In ProductBrain, done means the work is live in production. The integration marks the job done when its Jira issue reaches a done status category, so point the trigger at the state your team uses for shipped work. If your team closes tickets before a release goes out, move the trigger to the status that means released, or jobs will read done early.
Verified with live Make scenarios against payloads in Jira’s documented webhook shape. The first run on your Jira site is the final validation.

