Jira
What it does
Section titled “What it does”When the chief-of-staff decomposes a brief into child tickets, those tickets sync to a Jira project. Team members work in Jira as normal; status updates flow back into Workforce0’s audit log.
-
Jira side
- Atlassian → Profile → Security → Create and manage API tokens → Create API token.
- Copy the token.
- Note your Jira base URL (e.g.
https://acme.atlassian.net). - Identify the target project’s key (e.g.
ACME).
-
Workforce0 side
- Integrations → Jira → Connect.
- Paste Base URL, email, API token, project key.
- Click Test connection. A green check = good to go.
What syncs
Section titled “What syncs”| Workforce0 concept | Jira equivalent |
|---|---|
| Brief (approved) | Epic |
| Ticket (child) | Task (or Subtask under the Epic) |
Role (dev_agent) | Label wf0:dev_agent |
| Skills | Labels wf0:skill:… |
| Chief-of-staff summary | Epic description |
| Replan reason | Epic comment |
Workflow mapping
Section titled “Workflow mapping”Workforce0’s ticket statuses map to Jira statuses:
pending→ Jira To Doin_progress→ Jira In Progressdone→ Jira Donefailed→ Jira Blocked (custom status — requires one-time setup)
If your Jira workflow doesn’t have a Blocked status, failures map
to To Do with a wf0:failed label instead.
One-way vs two-way
Section titled “One-way vs two-way”By default the sync is two-way:
- Workforce0 → Jira: new tickets, status transitions, chief-of-staff comments.
- Jira → Workforce0: status transitions (polled every 60 seconds), comments (webhook).
For one-way, set JIRA_SYNC_DIRECTION=outbound to disable the inbound
path.
Webhook setup (for real-time inbound)
Section titled “Webhook setup (for real-time inbound)”Without a webhook, Workforce0 polls Jira every 60s (tunable via
JIRA_POLL_INTERVAL_SECONDS). Real-time sync requires a webhook:
- Atlassian → System → WebHooks → Create webhook.
- URL:
https://your-workforce0/api/webhooks/jira. - Events:
Issue: updated,Comment: created. - JQL:
project = ACME AND labels in (wf0). Prevents unrelated updates from firing. - Save.
Workforce0 verifies the webhook signature on every event.
Common failure modes
Section titled “Common failure modes”401 on every call
Section titled “401 on every call”API token is wrong or expired. Re-paste it.
403 on create
Section titled “403 on create”Your user doesn’t have Create issue permission on the target project. Ask a Jira admin.
Labels not sticking
Section titled “Labels not sticking”Your project’s issue type doesn’t have the labels field in its
default screen. Add it in Project settings → Screens → Default
screen.
Workflow status mismatches
Section titled “Workflow status mismatches”If your custom Jira workflow has different status names, map them in
.env:
JIRA_STATUS_PENDING=BacklogJIRA_STATUS_IN_PROGRESS=DoingJIRA_STATUS_DONE=ShippedJIRA_STATUS_FAILED=BlockedUninstalling
Section titled “Uninstalling”Integrations → Jira → Disconnect. Jira tickets remain — we don’t delete them. Future child tickets simply don’t sync.