Integrate with Jira

How to get there: Go to Settings in the sidebar → Integrations tab (under Other) → Jira section.

Integrating ProductLift with Jira lets you push feedback into your development workflow with one click and keep statuses in sync automatically. This guide covers connecting Jira Cloud, pushing a post into Jira, linking an existing Jira issue to a post, and setting up two-way status sync.

Only Jira Cloud is supported (the *.atlassian.net flavor). Jira Server / Data Center are not supported.

1. Create a Jira API token

ProductLift authenticates as your Atlassian account using an API token. Tokens are scoped to your user, so push and transition actions in Jira will appear as actions by you.

  1. Go to https://id.atlassian.com/manage-profile/security/api-tokens. The token must be created here, not from Bitbucket or Confluence settings; those tokens won't authenticate against Jira.
  2. Click Create API token.
  3. Give it a name like ProductLift and copy the token. You will only see it once.

2. Connect Jira in ProductLift

  1. Open the integration: Settings → Integrations → Jira section. Click to expand.
  2. Enable Jira integration and fill in:
    • Jira Cloud base URL — for example https://team.atlassian.net.
    • Account email — the Atlassian account that owns the API token.
    • API token — paste the token you just created.
    • Project key — the prefix Jira uses for issues in this project (e.g. PROJ for PROJ-123).
    • Default issue type — usually Task, Story, or Bug.
  3. Click Save.
  4. Click Test connection. A green message confirms ProductLift can reach Jira with your credentials.

The token is encrypted at rest. If you ever need to rotate it, paste the new token over the masked **** placeholder and save.

3. Push a post into Jira

On any post detail view, an admin can push the post to Jira as a new issue.

  1. Open the post.
  2. Click Push to → Jira under the integrations widget.
  3. ProductLift creates a new issue in your configured project, using:
    • Post title → Jira Summary
    • Post content + a backlink to the post + requester email → Jira Description (Atlassian Document Format)
    • The configured Default issue type

After the push, the post shows the linked Jira key and live status. The button is disabled for a post that is already linked.

If the Jira issue already exists, you can link it instead of creating a new one.

  1. Open the post.
  2. Click Link existing, pick Jira, and paste the issue key (e.g. PROJ-123). You can also paste a full Jira URL; ProductLift will pull the key out.
  3. Click Check to confirm the issue exists and see whether it's already linked to another ProductLift post (this avoids accidental duplicate links).
  4. Click Link. ProductLift stores the link and posts a comment on the Jira issue with a backlink to this post so anyone viewing the issue can jump back.

5. Set up status sync

Status sync is two-way:

  • When a post's status changes in ProductLift, ProductLift transitions the linked Jira issue to the mapped Jira state.
  • When a linked Jira issue is transitioned in Jira, ProductLift moves the post to the mapped ProductLift status.

To configure mappings:

  1. In Settings → Integrations → Jira, scroll to Status mapping.
  2. Click Add rule. Pick a ProductLift status on the left and type the matching Jira state name on the right (case-insensitive). For example: PlannedTo Do, In ProgressIn Progress, DoneDone.
  3. Tick Notify voters when status changes via inbound webhook if you want voters to receive an email when Jira pushes a status change back into ProductLift.
  4. Click Save mappings.

6. Configure the inbound webhook in Jira

ProductLift exposes a per-portal webhook URL for Jira to call when an issue is updated.

  1. In ProductLift, copy the Inbound webhook URL shown in the Jira integration card. It looks like https://your-portal.example/api/integrations/{id}/webhook?secret={uuid}.
  2. In Jira, go to Settings → System → Webhooks and click Create a new webhook.
  3. Paste the URL.
  4. Enable only the Issue - Updated trigger.
  5. Optionally scope it with a JQL filter, for example project = PROJ.
  6. Save.

When Jira fires the webhook, ProductLift looks up the linked posts, applies the mapped status, and (if enabled) notifies voters.

What's not (yet) supported

  • OAuth (only API tokens / PATs in v1)
  • Comment sync (one-way or two-way)
  • Attachment sync
  • Custom field mapping beyond the defaults above
  • Bulk push ("send all posts to Jira")

Troubleshooting

  • "Jira rejected the credentials" when testing: the most common cause is a token created from Bitbucket or Confluence settings. The token must come from https://id.atlassian.com/manage-profile/security/api-tokens. Also confirm the Account email is the Atlassian account that owns the token (not a teammate's email).
  • "Connection failed" or HTTP 404 when testing: double-check the base URL has the scheme (https://) and no trailing path (e.g. https://team.atlassian.net, not https://team.atlassian.net/jira/).
  • Push fails with 400 from Jira: check that the project key exists and that the Default issue type is valid for that project (Jira projects can restrict issue types).
  • Status didn't transition after a ProductLift status change: confirm there's a mapping rule for the ProductLift status, and that Jira has a transition into the mapped state from the issue's current state. Jira's workflow rules can block transitions; the driver only uses transitions Jira makes available.