Overview
Autonomous agents integrate with Jira via OAuth 2.0 (3LO). When a user assigns a Jira issue to the agent’s Jira user, Jira sends a webhook to the portal, which claims the issue, launches a workspace, and reports progress back on the issue as comments and workflow status transitions. No polling and no labels are required for triggering. Unlike Linear, Jira has no native agent-activity UI, so all progress is reported through issue comments and status transitions.Connecting Jira
1
Open settings
Navigate to Admin > Settings in the portal.
2
Add to Jira
In the Jira Agent section, click the Add to Jira button.
3
Authorize the agent
Authorize the Qovery agent on Atlassian’s consent screen. The agent requests the following scopes:
read:jira-work, write:jira-work, read:jira-user, offline_access, and read:me.4
Confirm connection
You are redirected back to the portal. A green Jira connected badge confirms the connection.
How the Issue Flow Works
The following diagram shows the end-to-end flow from assigning the agent on an issue to receiving a pull request.Configuring the Project
Each agent blueprint monitors one Jira project. Only issues from the configured project are picked up by that blueprint. The project dropdown in the blueprint wizard uses the OAuth connection to list all available projects. To monitor multiple projects, create separate agent blueprints - one per project.Status Mapping
Agent blueprints map three Jira statuses to key moments in the run lifecycle. These transitions keep your Jira board in sync with agent activity.Claimed Status (required)
Set when the agent claims the issue and begins work. This signals to the team that work has started. The blueprint cannot function without this status configured.Review Status (optional)
Set when the agent successfully opens a pull request. If not configured, the issue status is not changed on success - only a comment with the PR URL is posted.Failed Status (optional)
Set when the agent fails or the run times out. If not configured, the issue status is not changed on failure - only a comment with the failure reason is posted.Progress Reporting in Jira
Jira has no native agent UI, so the agent reports progress through issue comments alongside the status transitions above.Comments authored by the agent are ignored by the webhook handler to prevent feedback loops.
Interacting with Agents from Jira
Follow-up Instructions
While an agent is running, users can post follow-up instructions as comments on the Jira issue. The agent processes these messages and can adjust its approach. If the run has already reached a terminal state (PR opened, failed, or timed out), a follow-up comment revives it by launching a fresh workspace with the new instruction.Stop Signal
There are two ways to stop a running agent from Jira:
When stopped, the portal stops the environment, records the reason, and posts a “Stopped working on this issue.” comment.
Concurrency and Timing
Max Concurrent Runs
Each blueprint has a configurable concurrency cap (default: 3). When the number of active runs (statusclaimed, launching, or running) reaches this limit, incoming webhooks for that blueprint are queued until a slot opens.
Run Timeout
Each run has a maximum duration (default: 60 minutes). When the timeout is reached, the workspace is stopped, the run status is set totimed_out, and a comment is posted on the Jira issue. If a Failed status is configured, the issue transitions to that status.
Atomic Claiming
When the webhook fires, the session handler claims the issue atomically via a database unique constraint on(org_id, provider, issue_id). This prevents duplicate runs even if the assignment event fires multiple times on the same issue.
Webhook Security and Lifecycle
Incoming Jira webhooks are verified as JWTs signed with the agent app’s client secret (HS256, with a required expiry claim). Atlassian webhooks expire after 30 days, so the portal automatically refreshes the registered webhook on a daily background job. No action is required on your part.Disconnecting Jira
To disconnect, navigate to Admin > Settings and click the Disconnect link under the Jira Agent section. This revokes the OAuth tokens and removes the organization mapping. Existing runs are not affected, but no new runs can be triggered.Future Integrations
GitHub Issues integration is planned. If you need a specific integration, contact the Qovery team.
Next Steps
Agent Blueprints
Configure blueprints that define how agents run, including runtimes, repositories, and resource limits.
Managing Runs
Monitor active runs, review results, and troubleshoot failures.
Getting Started
Set up your first autonomous agent from scratch.