Four steps
Step 1: Connect your Jira workspace
Open Settings → Integrations → Jira. Paste your Jira Cloud URL (
https://yourcompany.atlassian.net) and your Atlassian email.Generate an API token at id.atlassian.com/manage-profile/security/api-tokens: click Create API token, name it (e.g. “sprintrr”), set an expiry (default 1 year, max 365 days as of Dec 2024), and copy the token immediately — Atlassian shows it only once.
Paste the token and click Connect & verify. We validate the credentials by calling
/rest/api/3/myselfbefore storing the token. If Atlassian rejects them, you'll see the exact error inline instead of a vague failure later.Step 2: Pick a Jira project + preview the mapping
Click Import issues. The wizard lists the Jira projects you can access; pick one and click Preview mapping to see its first 25 issues as sprintrr will file them — status, priority and epic → milestone (matched by title) per row. Nothing is written yet.
Step 3: Import — up to 200 issues per run, idempotent
Pick the sprintrr project the issues land in, then click Import into it. Tasks imported before (matched by Jira issue key) are updated; new ones are created. Each run reads 100 issues by default and up to 200, most recently updated first; custom JQL filters aren't supported yet.
Step 4: Use the rest of sprintrr
Imported tasks carry an “Imported from Jira” badge with a deep-link back. From here the full sprintrr toolkit works: status updates, transcripts → tasks, risk register, date-cascade replanning, MCP for Claude Desktop / Cursor.
Security & data posture
- API token encrypted
- with AES-256-GCM via BYOK_ENCRYPTION_KEY at rest. Token never leaves the server decrypted.
- One-way only
- sprintrr never writes back to Jira. Your source of truth in Jira stays untouched.
- Disconnect
- at any time — Settings → Integrations → Jira → Disconnect drops the encrypted token row.
- Audit-logged
- Connect, disconnect, and every import action emits an audit log entry.
- RLS-scoped
- Integration rows and import job history are visible only to the owning user.
What gets mapped
| Jira | → sprintrr |
|---|---|
| summary | title |
| description (ADF) | description (flattened to plain text) |
| status (via statusCategory) | Not Started / In Progress / Completed / Blocked |
| priority | High / Medium / Low (sensible defaults) |
| issuetype | category (Story → Development, Bug → Testing, etc.) |
| assignee.emailAddress | assigned_to[] (matched to team members by email) |
| duedate | due_date |
| parent (epic) summary | milestone (matched by title — existing only, never auto-creates) |
| key + browse URL | external_id + external_url (badge + deep-link) |