Integrations · Jira
Guild agents create, edit, transition, and search Jira Cloud issues using OAuth 2.0 credentials that never enter agent code. Guild stores credentials server-side and injects them through its credential proxy, so every call is governed by credential policies you write. Each webhook event that fires a trigger starts a new auditable session.
Book a demo
See how teams govern agents that use Jira.
Start free
Connect Jira and scope your first agent.
What the Jira integration exposes
The tools cover issues and subtasks, comments, worklogs, watchers, transitions, issue links, priorities, issue types, custom fields, filters, dashboards, projects, users, and permissions. JQL search runs via two tools: a GET variant and a POST variant. Webhook triggers fire on issue and comment events, with optional filters by project and by newly added labels.How it works
1
Open Credentials in Guild
Go to Credentials in Guild under Access & setup. The page lists services you can connect.
2
Authorize through Atlassian
Click Jira and complete the Atlassian OAuth flow. Select your Jira site; Guild retrieves your Cloud ID automatically.
3
Import tools in your agent
Import jiraTools from the package and spread it into your agent’s tools object. Use pick to include only the tools your agent needs; agents perform better with fewer tools.
Why Jira access needs governing in a multi-agent platform
Guild’s credential proxy sits between every agent call and Jira. It checks credential policies before any request leaves Guild. Policies use ALLOW and DENY rules matched on operation name, HTTP method, agent identity, and workspace. A DENY rule always wins over an ALLOW rule, so you can block destructive operations such as jira_delete_issue or jira_delete_project while permitting read and triage operations for every other agent on the same credential. Credentials are scoped to an account, a single workspace, a member, or one agent, and the proxy selects the right one server-side. Agents never see the OAuth token. Credential policies are enforced before the request reaches Jira; if no rule allows the call, it is denied. That default-deny posture contrasts with a raw OAuth token handed directly to an agent, where the token’s full scope is available to anything that runs.About the Jira integration
The@guildai-services/guildai~jira package provides agents with access to the Jira Cloud REST API through Guild’s OAuth 2.0 integration.
Authentication
- Type: OAuth 2.0 (Atlassian Cloud)
- Token expiration: 1 hour (auto-refreshed)
- Refresh token expiration: 90 days
- Note: Only Jira Cloud is supported — not Jira Server or Data Center
Setup
1
Open Credentials
Go to Credentials in Guild.
2
Connect Jira
Click Jira and authorize access through Atlassian.
3
Grant access
Select your Jira site. Guild automatically retrieves your Cloud ID.
Usage
Selecting specific tools
Agents perform better with fewer tools. Usepick() to include only what your agent needs. Tools are named with the jira_ prefix — for example, get_issue becomes jira_get_issue.
Tools
Tools in the latest published version ofguildai~jira:
All 74 tools
All 74 tools
Webhook events
Jira uses a credential-scoped webhook model. When you enable the first Jira trigger on a connection, Guild registers one webhook on the Jira site for all projects the connected account can see, and routes its events to matching triggers. Disabling the last trigger removes it. A trigger can narrow an event to one action, such asguild trigger create --type webhook --integration jira --event issue --action created --agent <identifier>. Without an action it fires on every action of that event.
Events can be filtered by project using the
project field in the service config. Jira expires webhooks after 30 days; Guild refreshes the webhook every week, so it stays active. Each event starts a new session.
Guild doesn’t filter out changes the agent makes itself, so an agent that edits an issue from an issue updated trigger fires that trigger again. Have the agent skip changes made by the connected account.
The optional label_added field narrows a trigger to newly added labels. Set it to a non-empty list of label names, and the trigger fires only when one of them is newly added — on issue creation, when the issue carries the label, and on issue update, when the label appears in the change. Label matching is case-sensitive, unlike project.
label_added also restricts the trigger to issue events: comment events never fire while it is set.
Limitations
- OAuth refresh tokens expire after 90 days of inactivity
- Only Jira Cloud is supported (not Jira Server or Data Center)
Frequently asked questions
Does the integration work with Jira Server or Data Center?
Does the integration work with Jira Server or Data Center?
No. Only Jira Cloud is supported. Jira Server and Data Center are not supported by this integration.
How do I trigger an agent only when a specific label is added to an issue?
How do I trigger an agent only when a specific label is added to an issue?
Set the label_added field in the trigger’s service config to a list of label names. The trigger fires only when one of those labels is newly added to an issue. Label matching is case-sensitive. Setting label_added restricts the trigger to issue events; comment events never fire while it is set.
What happens if my agent edits an issue that it is also watching for updates?
What happens if my agent edits an issue that it is also watching for updates?
Guild does not filter out changes the agent makes itself. An agent that edits an issue from an issue updated trigger will fire that trigger again. The page recommends having the agent skip changes made by the connected account.
Can I limit an agent to read-only JQL searches without allowing it to create or delete issues?
Can I limit an agent to read-only JQL searches without allowing it to create or delete issues?
Yes. Write a credential policy with a DENY rule covering operations such as jira_create_issue and jira_delete_issue, and an ALLOW rule covering jira_search_and_reconsile_issues_using_jql. DENY rules take precedence, so the destructive operations are blocked even if a broader ALLOW rule is present. You can also scope the rule to a specific agent or workspace.
Put a governed agent on Jira this week
Book a demo
See how teams govern agents that use Jira.
Start free
Connect Jira and scope your first agent.