This guide explains how to connect Jira Cloud to an OpenHands Enterprise
Replicated installation. The integration lets users start OpenHands from Jira
issues by commenting with @openhands or by adding the openhands label.
OpenHands replies on the issue with a link to the conversation and posts the
result back when it finishes.The resolver is also available on a
standalone Helm installation.Jira Cloud users are linked to OpenHands accounts by email match: no
Atlassian OAuth app is required, and users need no per-user setup beyond
making their email visible (see User requirements).
Users are enrolled automatically the first time they trigger OpenHands.To trigger an automation from a Jira event instead, register a separate
custom webhook.
The resolver webhook described below does not deliver events to automations.
Jira Cloud site administrator access, to invite the service account and
register a webhook. The account creating the system webhook needs
Administer Jira permission; the service account only needs project access.
An OpenHands Enterprise organization admin or owner account, to
configure the integration inside OpenHands.
Network access from Jira Cloud to the OpenHands app URL over HTTPS with a
publicly trusted certificate (for webhook delivery), and from OpenHands to
api.atlassian.com (for Jira API calls).
Create a dedicated Atlassian account for OpenHands, for example
openhands-bot@company.com. OpenHands uses this account to read issues and
post comments, and its replies appear under this account’s name.
Invite the account to your Jira site and grant it access to every project
where OpenHands should read and comment.
Log in as the service account and create an API token at
id.atlassian.com → Security → API tokens. Save the token somewhere
safe. You will need it for the next configuration step below.
Mentions and labels made by the service account itself are ignored to
prevent the agent from triggering itself. Always test from a regular user
account, not the service account.
Wait for the rollout to finish. The Jira card then appears under
Settings → Integrations in the OpenHands app. Enter the service account
credentials and webhook secret in OpenHands, not in Helm values.
As an organization admin or owner, open Settings → Integrations → Jira
in OpenHands and select Configure. On a new installation, the
Link Workspace screen appears first. Enter the workspace hostname and
select Connect. Then complete the administrator form:
Workspace: the full site hostname, for example
yourcompany.atlassian.net. Webhook events are matched against this
hostname, so the bare site name is not sufficient.
Service account email: the service account’s email address.
Service account API token: the token created above. The credentials are
validated against Jira when you save, so a typo fails immediately.
Webhook secret: choose a strong secret. You will paste the same secret
into Jira in the next step.
After saving, the Jira card shows Edit for changes to this connection.Save, then copy the events URL shown below the webhook secret field. It
has the form:
In Jira, open Settings (gear icon) → System → WebHooks and create a
webhook:
URL: the events URL copied above.
Secret: the same webhook secret entered in OpenHands. Jira uses it to
sign deliveries, and OpenHands rejects unsigned or mis-signed events.
Events: check Issue → updated and Comment → created. These are
the only two events OpenHands processes.
Optionally scope the webhook with a JQL filter (for example
project = ENG).
Leave the request body included (do not check “Exclude body”).
Use a regular Jira account to test the resolver after completing the
user requirements. On an issue covered by the webhook,
comment @openhands followed by a read-only request. Confirm that OpenHands
posts a conversation link on that issue.
Each user who wants to trigger OpenHands from Jira must satisfy two
conditions:
Matching email: the user’s Atlassian account email must exactly match
their OpenHands login email.
Visible email: in the user’s Atlassian account settings
(id.atlassian.com → Profile and visibility → Contact → Email address),
visibility must be set to Anyone. Jira omits the email from webhook
payloads otherwise, and OpenHands cannot match the user without it.
Atlassian can take 15 minutes or more to propagate an email-visibility
change into webhook payloads. If OpenHands replies that it could not
determine your email address right after you changed the setting, wait and
try again before assuming the setting is wrong.
No further setup is needed: the first successful mention enrolls the user
automatically.
Comment @openhands followed by instructions on any issue in a project the
webhook covers, or add the openhands label to the issue. Both the typed
literal text and the mention selected from Jira’s autocomplete picker work.
To have OpenHands work in a repository, include the repository URL (for
example https://gitlab.com/group/project or
https://github.com/org/repo) in the issue description or the comment. The
triggering user must have that Git provider connected in OpenHands, and
exactly one repository should be mentioned. Without a repository, OpenHands
still answers on the issue but works without a workspace.
OpenHands reacts with a comment linking to the conversation, and the service
account posts the result back to the issue when the run completes.
Jira-triggered automations use a second Jira system webhook. The resolver
URL ending in /integration/jira/events only handles mentions and labels; it
does not feed the automation service.First, enable the automation service on your installation. Follow
Custom Webhooks
to create an OpenHands API key and register a custom source. For Jira Cloud,
use a distinct source name and these registration fields:
When you omit webhook_secret, OpenHands generates one and returns it once
with the webhook_url. Store both securely. Create an event automation for
source jira-issues and event jira:issue_created, then register another Jira
system webhook using that webhook_url and signing secret. Select only
Issue created and use a narrow JQL filter, such as
project = ENG AND labels = openhands-automation. Create one matching test
issue and confirm that the automation starts. Keep this webhook separate from
the resolver webhook above.
OpenHands replies “Could not determine your Jira email address”: the
email-visibility requirement above is not met, or the change has not
propagated yet. Verify the exact setting and retry after 15 minutes.
A mention does nothing, with no reply at all: check that the comment
was not made by the service account (those are ignored), that the user’s
Atlassian email matches their OpenHands email, and that the webhook covers
the issue’s project. Jira Cloud does not show a delivery log for system
webhooks, so check the OpenHands logs (the openhands-integrations
workload) or collect a support bundle.
Logs show 403 Unidentified workspace: the Workspace field in the
OpenHands configuration does not equal the site hostname in the webhook
payload. Re-open the configuration and set it to
yourcompany.atlassian.net.
OpenHands replies that multiple repositories were found: mention
exactly one repository in the issue and comment text.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OpenHands Docs","colors":{"primary":"#99873c","light":"#ffe165","dark":"#ffe165"},"logo":{"light":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/light.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=49b636402b03f7279ca5e1afefeec1d2","dark":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/dark.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=e0c4017631cebc3a289798438e2c0d7a"},"favicon":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/openhands/logo-square.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=6ef1bab575660ae6e2d44fcc57bc675f","appearance":{"default":"light"},"background":{"color":{"light":"#f7f3ee","dark":"#0B0D0E"}},"navbar":{"links":[],"primary":{"type":"github","href":"https://github.com/OpenHands/OpenHands"}},"footer":{"socials":{"slack":"https://openhands.dev/joinslack","github":"https://github.com/OpenHands"},"links":[{"header":"Links","items":[{"label":"Company","href":"https://openhands.dev/"},{"label":"Blog","href":"https://openhands.dev/blog"},{"label":"Cloud","href":"https://app.all-hands.dev"},{"label":"Enterprise","href":"https://openhands.dev/enterprise"}]}]},"seo":{"indexing":"navigable"},"contextual":{"options":["copy","view","download-spec","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"allhandsai","hasAudioNarration":false,"actualSubdomain":"allhandsai","customDomains":["docs.openhands.dev"],"gitSource":{"type":"github","owner":"openhands","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae513ca7ef4deed4ecf03b7","collectionId":"90bf4158-76de-4b3e-abdf-78ab56c4d448","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae513ca7ef4deed4ecf03b7"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae613c9302fef4badce42e9","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Cloud","count":196},{"language":"default","tag":"Cloud API","count":187},{"language":"default","tag":"REST API Reference","count":185},{"language":"default","tag":"SDK","count":127},{"language":"default","tag":"Guides","count":104},{"language":"default","tag":"API Reference","count":95},{"language":"default","tag":"Enterprise","count":71},{"language":"default","tag":"Agent Canvas","count":58},{"language":"default","tag":"Home","count":58},{"language":"default","tag":"Remote Agent Server","count":55}]},"assistantConfig":{"deflection":{"enabled":true,"email":"contact@openhands.dev","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#banner *{color:#434240}"}],"page":{"pagePath":"enterprise/integrations/jira-cloud","slug":"/enterprise/integrations/jira-cloud","pageMetadata":{"title":"Jira Cloud","description":"Configure Jira Cloud for OpenHands Enterprise.","icon":"cloud","href":"/enterprise/integrations/jira-cloud"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configure Jira Cloud for OpenHands Enterprise.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`This guide explains how to connect Jira Cloud to an OpenHands Enterprise\nReplicated installation. The integration lets users start OpenHands from Jira\nissues by commenting with `,_jsx(_components.code,{children:`@openhands`}),` or by adding the `,_jsx(_components.code,{children:`openhands`}),` label.\nOpenHands replies on the issue with a link to the conversation and posts the\nresult back when it finishes.`]}),`\n`,_jsxs(_components.p,{children:[`The resolver is also available on a\n`,_jsx(_components.a,{href:`#enable-the-integration-with-helm`,children:`standalone Helm installation`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Jira Cloud users are linked to OpenHands accounts by `,_jsx(_components.strong,{children:`email match`}),`: no\nAtlassian OAuth app is required, and users need no per-user setup beyond\nmaking their email visible (see `,_jsx(_components.a,{href:`#user-requirements`,children:`User requirements`}),`).\nUsers are enrolled automatically the first time they trigger OpenHands.`]}),`\n`,_jsxs(_components.p,{children:[`To trigger an `,_jsx(_components.strong,{children:`automation`}),` from a Jira event instead, register a separate\n`,_jsx(_components.a,{href:`/openhands/usage/automations/event-automations#custom-webhooks`,children:`custom webhook`}),`.\nThe resolver webhook described below does not deliver events to automations.`]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Jira Cloud `,_jsx(_components.strong,{children:`site administrator`}),` access, to invite the service account and\nregister a webhook. The account creating the system webhook needs\n`,_jsx(_components.strong,{children:`Administer Jira`}),` permission; the service account only needs project access.`]}),`\n`,_jsxs(_components.li,{children:[`An OpenHands Enterprise `,_jsx(_components.strong,{children:`organization admin or owner`}),` account, to\nconfigure the integration inside OpenHands.`]}),`\n`,_jsxs(_components.li,{children:[`Network access from Jira Cloud to the OpenHands app URL over HTTPS with a\npublicly trusted certificate (for webhook delivery), and from OpenHands to\n`,_jsx(_components.code,{children:`api.atlassian.com`}),` (for Jira API calls).`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-service-account`,children:`Create a service account`}),`\n`,_jsxs(_components.p,{children:[`Create a dedicated Atlassian account for OpenHands, for example\n`,_jsx(_components.code,{children:`openhands-bot@company.com`}),`. OpenHands uses this account to read issues and\npost comments, and its replies appear under this account’s name.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Invite the account to your Jira site and grant it access to every project\nwhere OpenHands should read and comment.`}),`\n`,_jsxs(_components.li,{children:[`Log in as the service account and create an API token at\n`,_jsx(_components.strong,{children:`id.atlassian.com → Security → API tokens`}),`. Save the token somewhere\nsafe. You will need it for the next configuration step below.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Mentions and labels made by the service account itself are ignored to\nprevent the agent from triggering itself. Always test from a regular user\naccount, not the service account.`})}),`\n`,_jsx(Heading,{level:`2`,id:`enable-the-integration-in-the-admin-console`,children:`Enable the integration in the Admin Console`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In the OpenHands Enterprise Admin Console, open `,_jsx(_components.strong,{children:`Config`}),` and check\n`,_jsx(_components.strong,{children:`Enable Jira Cloud Integration`}),` under `,_jsx(_components.strong,{children:`Jira Cloud Integration`}),`.`]}),`\n`,_jsx(_components.li,{children:`Save and deploy the new version, and wait for the rollout to finish.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`After the deploy, a `,_jsx(_components.strong,{children:`Jira`}),` card appears under `,_jsx(_components.strong,{children:`Settings → Integrations`}),`\nin the OpenHands app.`]}),`\n`,_jsx(Heading,{level:`2`,id:`enable-the-integration-with-helm`,children:`Enable the integration with Helm`}),`\n`,_jsxs(_components.p,{children:[`For a `,_jsx(_components.a,{href:`/enterprise/k8s-install/installation`,children:`standalone Helm installation`}),`,\nenable the same resolver in your existing `,_jsx(_components.code,{children:`values.yaml`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`jira`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` enabled`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` linkMethod`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`email_match`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Upgrade the same licensed release used for the initial installation:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`helm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` upgrade`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` openhands`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` oci://registry.replicated.com/openhands/openhands`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --namespace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` openhands`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --values`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` values.yaml`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Wait for the rollout to finish. The `,_jsx(_components.strong,{children:`Jira`}),` card then appears under\n`,_jsx(_components.strong,{children:`Settings → Integrations`}),` in the OpenHands app. Enter the service account\ncredentials and webhook secret in OpenHands, not in Helm values.`]}),`\n`,_jsx(Heading,{level:`2`,id:`configure-the-workspace-in-openhands`,children:`Configure the workspace in OpenHands`}),`\n`,_jsxs(_components.p,{children:[`As an organization admin or owner, open `,_jsx(_components.strong,{children:`Settings → Integrations → Jira`}),`\nin OpenHands and select `,_jsx(_components.strong,{children:`Configure`}),`. On a new installation, the\n`,_jsx(_components.strong,{children:`Link Workspace`}),` screen appears first. Enter the workspace hostname and\nselect `,_jsx(_components.strong,{children:`Connect`}),`. Then complete the administrator form:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Workspace`}),`: the full site hostname, for example\n`,_jsx(_components.code,{children:`yourcompany.atlassian.net`}),`. Webhook events are matched against this\nhostname, so the bare site name is not sufficient.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Service account email`}),`: the service account’s email address.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Service account API token`}),`: the token created above. The credentials are\nvalidated against Jira when you save, so a typo fails immediately.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Webhook secret`}),`: choose a strong secret. You will paste the same secret\ninto Jira in the next step.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`After saving, the Jira card shows `,_jsx(_components.strong,{children:`Edit`}),` for changes to this connection.`]}),`\n`,_jsxs(_components.p,{children:[`Save, then copy the `,_jsx(_components.strong,{children:`events URL`}),` shown below the webhook secret field. It\nhas the form:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://app.\u003cyour-openhands-domain>/integration/jira/events`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`register-the-webhook-in-jira`,children:`Register the webhook in Jira`}),`\n`,_jsxs(_components.p,{children:[`In Jira, open `,_jsx(_components.strong,{children:`Settings (gear icon) → System → WebHooks`}),` and create a\nwebhook:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`URL`}),`: the events URL copied above.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Secret`}),`: the same webhook secret entered in OpenHands. Jira uses it to\nsign deliveries, and OpenHands rejects unsigned or mis-signed events.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Events`}),`: check `,_jsx(_components.strong,{children:`Issue → updated`}),` and `,_jsx(_components.strong,{children:`Comment → created`}),`. These are\nthe only two events OpenHands processes.`]}),`\n`,_jsxs(_components.li,{children:[`Optionally scope the webhook with a JQL filter (for example\n`,_jsx(_components.code,{children:`project = ENG`}),`).`]}),`\n`,_jsx(_components.li,{children:`Leave the request body included (do not check “Exclude body”).`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Use a regular Jira account to test the resolver after completing the\n`,_jsx(_components.a,{href:`#user-requirements`,children:`user requirements`}),`. On an issue covered by the webhook,\ncomment `,_jsx(_components.code,{children:`@openhands`}),` followed by a read-only request. Confirm that OpenHands\nposts a conversation link on that issue.`]}),`\n`,_jsx(Heading,{level:`2`,id:`user-requirements`,children:`User requirements`}),`\n`,_jsx(_components.p,{children:`Each user who wants to trigger OpenHands from Jira must satisfy two\nconditions:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Matching email`}),`: the user’s Atlassian account email must exactly match\ntheir OpenHands login email.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Visible email`}),`: in the user’s Atlassian account settings\n(`,_jsx(_components.strong,{children:`id.atlassian.com → Profile and visibility → Contact → Email address`}),`),\nvisibility must be set to `,_jsx(_components.strong,{children:`Anyone`}),`. Jira omits the email from webhook\npayloads otherwise, and OpenHands cannot match the user without it.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Atlassian can take 15 minutes or more to propagate an email-visibility\nchange into webhook payloads. If OpenHands replies that it could not\ndetermine your email address right after you changed the setting, wait and\ntry again before assuming the setting is wrong.`})}),`\n`,_jsx(_components.p,{children:`No further setup is needed: the first successful mention enrolls the user\nautomatically.`}),`\n`,_jsx(Heading,{level:`2`,id:`start-openhands-from-an-issue`,children:`Start OpenHands from an issue`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Comment `,_jsx(_components.code,{children:`@openhands`}),` followed by instructions on any issue in a project the\nwebhook covers, or add the `,_jsx(_components.code,{children:`openhands`}),` label to the issue. Both the typed\nliteral text and the mention selected from Jira’s autocomplete picker work.`]}),`\n`,_jsxs(_components.li,{children:[`To have OpenHands work in a repository, include the repository URL (for\nexample `,_jsx(_components.code,{children:`https://gitlab.com/group/project`}),` or\n`,_jsx(_components.code,{children:`https://github.com/org/repo`}),`) in the issue description or the comment. The\ntriggering user must have that Git provider connected in OpenHands, and\nexactly one repository should be mentioned. Without a repository, OpenHands\nstill answers on the issue but works without a workspace.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`OpenHands reacts with a comment linking to the conversation, and the service\naccount posts the result back to the issue when the run completes.`}),`\n`,_jsx(Heading,{level:`2`,id:`trigger-automations-from-jira`,children:`Trigger Automations from Jira`}),`\n`,_jsxs(_components.p,{children:[`Jira-triggered automations use a `,_jsx(_components.strong,{children:`second Jira system webhook`}),`. The resolver\nURL ending in `,_jsx(_components.code,{children:`/integration/jira/events`}),` only handles mentions and labels; it\ndoes not feed the automation service.`]}),`\n`,_jsxs(_components.p,{children:[`First, enable the automation service on your installation. Follow\n`,_jsx(_components.a,{href:`/openhands/usage/automations/event-automations#custom-webhooks`,children:`Custom Webhooks`}),`\nto create an OpenHands API key and register a custom source. For Jira Cloud,\nuse a distinct source name and these registration fields:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Jira issue events\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"source\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"jira-issues\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"event_key_expr\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"webhookEvent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"signature_header\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"X-Hub-Signature\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`When you omit `,_jsx(_components.code,{children:`webhook_secret`}),`, OpenHands generates one and returns it once\nwith the `,_jsx(_components.code,{children:`webhook_url`}),`. Store both securely. Create an event automation for\nsource `,_jsx(_components.code,{children:`jira-issues`}),` and event `,_jsx(_components.code,{children:`jira:issue_created`}),`, then register another Jira\nsystem webhook using that `,_jsx(_components.code,{children:`webhook_url`}),` and signing secret. Select only\n`,_jsx(_components.code,{children:`Issue created`}),` and use a narrow JQL filter, such as\n`,_jsx(_components.code,{children:`project = ENG AND labels = openhands-automation`}),`. Create one matching test\nissue and confirm that the automation starts. Keep this webhook separate from\nthe resolver webhook above.`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`OpenHands replies “Could not determine your Jira email address”`}),`: the\nemail-visibility requirement above is not met, or the change has not\npropagated yet. Verify the exact setting and retry after 15 minutes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A mention does nothing, with no reply at all`}),`: check that the comment\nwas not made by the service account (those are ignored), that the user’s\nAtlassian email matches their OpenHands email, and that the webhook covers\nthe issue’s project. Jira Cloud does not show a delivery log for system\nwebhooks, so check the OpenHands logs (the `,_jsx(_components.code,{children:`openhands-integrations`}),`\nworkload) or collect a support bundle.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Logs show `,_jsx(_components.code,{children:`403 Unidentified workspace`})]}),`: the Workspace field in the\nOpenHands configuration does not equal the site hostname in the webhook\npayload. Re-open the configuration and set it to\n`,_jsx(_components.code,{children:`yourcompany.atlassian.net`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`OpenHands replies that multiple repositories were found`}),`: mention\nexactly one repository in the issue and comment text.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Jira Cloud","description":"Configure Jira Cloud for OpenHands Enterprise.","icon":"cloud","href":"/enterprise/integrations/jira-cloud"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Create a service account","slug":"create-a-service-account","depth":2,"children":[]},{"title":"Enable the integration in the Admin Console","slug":"enable-the-integration-in-the-admin-console","depth":2,"children":[]},{"title":"Enable the integration with Helm","slug":"enable-the-integration-with-helm","depth":2,"children":[]},{"title":"Configure the workspace in OpenHands","slug":"configure-the-workspace-in-openhands","depth":2,"children":[]},{"title":"Register the webhook in Jira","slug":"register-the-webhook-in-jira","depth":2,"children":[]},{"title":"User requirements","slug":"user-requirements","depth":2,"children":[]},{"title":"Start OpenHands from an issue","slug":"start-openhands-from-an-issue","depth":2,"children":[]},{"title":"Trigger Automations from Jira","slug":"trigger-automations-from-jira","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/allhandsai/dddab338317a519d/openhands/reo-init.js","/_mintlify/custom/allhandsai/ae719f15d762e1fe/openhands/posthog-init.js","/_mintlify/custom/allhandsai/b35f7f3c3c83fb4c/openhands/canvas-handoff.js","/_mintlify/custom/allhandsai/771d6371c43b73b7/openhands/linkedin-copy-tracking.js"],"subdomain":"allhandsai","siteName":"OpenHands Docs","title":"Jira Cloud - OpenHands Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T18:34:05.435Z","originalFileLocation":"enterprise/integrations/jira-cloud.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configure Jira Cloud for OpenHands Enterprise.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OpenHands Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Jira Cloud - OpenHands Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure Jira Cloud for OpenHands Enterprise.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OpenHands Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openhands.dev/enterprise/integrations/jira-cloud\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://allhandsai.mintlify.app/_mintlify/api/og/v2?division=Integrations\u0026amp;title=Jira+Cloud\u0026amp;description=Configure+Jira+Cloud+for+OpenHands+Enterprise.\u0026amp;theme=d1346828d5653c6c432bc1fc\u0026amp;signature=937de2e013f6e0401b01fc21f284935448fff2d3f48e8522bbcb6d1bb10fd514\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Jira Cloud - OpenHands Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure Jira Cloud for OpenHands Enterprise.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://allhandsai.mintlify.app/_mintlify/api/og/v2?division=Integrations\u0026amp;title=Jira+Cloud\u0026amp;description=Configure+Jira+Cloud+for+OpenHands+Enterprise.\u0026amp;theme=d1346828d5653c6c432bc1fc\u0026amp;signature=937de2e013f6e0401b01fc21f284935448fff2d3f48e8522bbcb6d1bb10fd514\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OpenHands Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#99873c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openhands.dev/enterprise/integrations/jira-cloud\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/enterprise/integrations/jira-cloud.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openhands.dev/#organization\",\"name\":\"OpenHands Docs\",\"url\":\"https://docs.openhands.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/light.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=49b636402b03f7279ca5e1afefeec1d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openhands.dev#website\",\"name\":\"OpenHands Docs\",\"url\":\"https://docs.openhands.dev\",\"publisher\":{\"@id\":\"https://docs.openhands.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openhands.dev/enterprise/integrations/jira-cloud#webpage\",\"url\":\"https://docs.openhands.dev/enterprise/integrations/jira-cloud\",\"name\":\"Jira Cloud\",\"description\":\"Configure Jira Cloud for OpenHands Enterprise.\",\"dateModified\":\"2026-10-01T18:34:05.435Z\",\"isPartOf\":{\"@id\":\"https://docs.openhands.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openhands.dev/enterprise/integrations/jira-cloud#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openhands.dev/enterprise/integrations/jira-cloud#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://docs.openhands.dev/enterprise/integrations/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jira Cloud\",\"item\":\"https://docs.openhands.dev/enterprise/integrations/jira-cloud\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.openhands.dev/enterprise/integrations/jira-cloud#article\",\"headline\":\"Jira Cloud\",\"name\":\"Jira Cloud\",\"description\":\"Configure Jira Cloud for OpenHands Enterprise.\",\"url\":\"https://docs.openhands.dev/enterprise/integrations/jira-cloud\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openhands.dev/enterprise/integrations/jira-cloud#webpage\"},\"dateModified\":\"2026-10-01T18:34:05.435Z\",\"publisher\":{\"@id\":\"https://docs.openhands.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openhands.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OpenHands Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OpenHands Docs","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/overview/introduction"}]},{"tab":"Agent Canvas","pages":[{"title":"Agent Canvas","href":"/openhands/usage/agent-canvas/overview"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk"}]},{"tab":"Cloud","pages":[{"title":"Cloud","href":"/openhands/usage/cloud/openhands-cloud"}]},{"tab":"Enterprise","pages":[{"group":"OpenHands Enterprise","pages":[{"title":"OpenHands Enterprise","icon":"building","href":"/enterprise"},{"title":"Enterprise vs. Open Source","icon":"scale-balanced","href":"/enterprise/enterprise-vs-oss"},{"title":"Architecture","icon":"sitemap","href":"/enterprise/architecture"},{"title":"Sizing Guide","icon":"ruler","href":"/enterprise/sizing-guide"},{"group":"Custom Sandbox Images","icon":"box","pages":[{"title":"Custom Sandbox Images","icon":"box","href":"/enterprise/custom-sandbox-images/index"},{"title":"Building a Custom Sandbox Image","icon":"docker","href":"/enterprise/custom-sandbox-images/building-custom-images"},{"title":"Configuring Custom Sandbox Images","icon":"layer-group","href":"/enterprise/custom-sandbox-images/multiple-images-warm-pools"},{"title":"Single Image via Admin Console","icon":"triangle-exclamation","href":"/enterprise/custom-sandbox-images/single-image-admin-console"},{"title":"Using Custom Images","icon":"play","href":"/enterprise/custom-sandbox-images/using-custom-images"}]},{"title":"Running Docker in the Agent Sandbox","icon":"docker","href":"/enterprise/docker-in-sandbox"},{"title":"External PostgreSQL","icon":"database","href":"/enterprise/external-postgres"},{"title":"Troubleshooting","icon":"life-ring","href":"/enterprise/troubleshooting"}]},{"group":"Feature Guides","pages":[{"title":"Conversations And Sandboxes","icon":"boxes-stacked","href":"/enterprise/conversations-and-sandboxes"},{"group":"Automations","icon":"bolt","root":{"title":"Automations","icon":"bolt","href":"/enterprise/automations"},"pages":[{"title":"GitHub Event Automations","icon":"github","href":"/enterprise/automations/github-events"}]},{"title":"Skills and Plugins","icon":"puzzle-piece","href":"/enterprise/skills-and-plugins"},{"title":"Plugin Marketplace","icon":"store","href":"/enterprise/plugin-marketplace"},{"title":"Analytics","icon":"rocket","href":"/enterprise/analytics"},{"group":"Organizations","icon":"building","pages":[{"title":"Organizations Overview","href":"/openhands/usage/cloud/organizations/overview"},{"title":"Configuring Organizations","href":"/openhands/usage/cloud/organizations/configuring-organizations"},{"title":"Managing Members","href":"/openhands/usage/cloud/organizations/managing-members"},{"title":"Roles and Permissions","href":"/openhands/usage/cloud/organizations/roles-permissions"},{"title":"Organization Settings","href":"/openhands/usage/cloud/organizations/settings"},{"title":"Budgets and Usage","sidebarTitle":"Budgets and Usage","href":"/openhands/usage/cloud/organizations/budgets"}]},{"group":"Release Notes","icon":"rocket","pages":[{"title":"OpenHands Enterprise 0.90.1","href":"/enterprise/release-notes/0.90.1"},{"title":"OpenHands Enterprise 0.81.0","href":"/enterprise/release-notes/0.81.0"},{"title":"OpenHands Enterprise 0.76.0","href":"/enterprise/release-notes/0.76.0"},{"title":"OpenHands Enterprise 0.74.0","href":"/enterprise/release-notes/0.74.0"},{"title":"OpenHands Enterprise 0.71.1","href":"/enterprise/release-notes/0.71.1"},{"title":"OpenHands Enterprise 0.70.0","href":"/enterprise/release-notes/0.70.0"},{"title":"OpenHands Enterprise 0.64.0","href":"/enterprise/release-notes/0.64.0"},{"title":"OpenHands Enterprise 0.55.0","href":"/enterprise/release-notes/0.55.0"},{"title":"OpenHands Enterprise 0.45.0","href":"/enterprise/release-notes/0.45.0"},{"title":"OpenHands Enterprise 0.41.0","href":"/enterprise/release-notes/0.41.0"},{"title":"OpenHands Enterprise 0.36.1","href":"/enterprise/release-notes/0.36.1"},{"title":"OpenHands Enterprise 0.36.0","href":"/enterprise/release-notes/0.36.0"},{"title":"OpenHands Enterprise 0.28.0","href":"/enterprise/release-notes/0.28.0"},{"title":"OpenHands Enterprise 0.24.0","href":"/enterprise/release-notes/0.24.0"}]}]},{"group":"Integrations","pages":[{"title":"Integrations Overview","icon":"puzzle-piece","href":"/enterprise/integrations/overview"},{"title":"GitHub","icon":"github","href":"/enterprise/integrations/github"},{"title":"GitLab","icon":"code-branch","href":"/enterprise/integrations/gitlab"},{"title":"Azure DevOps","icon":"code-branch","href":"/enterprise/integrations/azure-devops"},{"title":"Bitbucket Data Center","description":"Configure Bitbucket Data Center authentication and repository webhooks for OpenHands Enterprise.","icon":"code-branch","href":"/enterprise/integrations/bitbucket-data-center"},{"title":"Jira Cloud","icon":"cloud","href":"/enterprise/integrations/jira-cloud"},{"title":"Jira Data Center","description":"Configure Jira Data Center for OpenHands Enterprise.","icon":"building","href":"/enterprise/integrations/jira-data-center"},{"group":"SAML SSO","icon":"shield-check","pages":[{"title":"SAML SSO","icon":"user-shield","href":"/enterprise/integrations/saml-sso"},{"title":"Authentik","icon":"key","href":"/enterprise/integrations/saml-providers/authentik"}]},{"title":"Slack","icon":"slack","href":"/enterprise/integrations/slack"},{"title":"External LLM Gateways","icon":"network-wired","href":"/enterprise/integrations/external-llm-gateways"},{"title":"Azure LLM Gateway","icon":"https://mintlify.s3.us-west-1.amazonaws.com/allhandsai/enterprise/images/azure-logo.svg","href":"/enterprise/integrations/azure-llm-gateway"},{"title":"AWS Bedrock LLM Gateway","icon":"cloud","href":"/enterprise/integrations/aws-bedrock-llm-gateway"},{"title":"Google LLM Gateway","icon":"google","href":"/enterprise/integrations/google-llm-gateway"},{"title":"External Observability Platforms","icon":"chart-line","href":"/enterprise/integrations/observability-platforms"}]},{"group":"VM Install","pages":[{"title":"Generic VM Quick Start","icon":"server","href":"/enterprise/vm-install/generic-vm"},{"title":"AWS Quick Start","icon":"aws","href":"/enterprise/vm-install/aws"},{"title":"Google Cloud Quick Start","icon":"google","href":"/enterprise/vm-install/google"},{"title":"Azure Quick Start","icon":"microsoft","href":"/enterprise/vm-install/azure"},{"title":"Admin Console Configuration","icon":"sliders","href":"/enterprise/vm-install/admin-console-configuration"},{"title":"Log Collection","icon":"file-lines","href":"/enterprise/vm-install/log-collection"},{"title":"Scaling the Cluster","icon":"server","href":"/enterprise/vm-install/scaling"}]},{"group":"K8s Install","pages":[{"title":"Kubernetes Installation","icon":"dharmachakra","href":"/enterprise/k8s-install/index"},{"title":"Install with Helm","icon":"ship","href":"/enterprise/k8s-install/installation"},{"title":"Enable Automations with Helm","icon":"clock","href":"/enterprise/k8s-install/automations"},{"title":"Installing Sysbox","icon":"cube","href":"/enterprise/k8s-install/sysbox"},{"title":"DNS and TLS","icon":"lock","href":"/enterprise/k8s-install/dns-and-tls"},{"title":"Resource Limits","icon":"gauge-high","href":"/enterprise/k8s-install/resource-limits"},{"title":"Upgrade Guidance","icon":"circle-up","href":"/enterprise/k8s-install/upgrade-guidance"},{"title":"Amazon EKS","icon":"aws","href":"/enterprise/k8s-install/eks"},{"title":"Azure AKS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/allhandsai/enterprise/images/azure-logo.svg","href":"/enterprise/k8s-install/aks"},{"title":"Google GKE","icon":"cloud","href":"/enterprise/k8s-install/gke"}]},{"group":"Experimental","pages":[{"group":"Docker Compose","icon":"docker","root":{"title":"Docker Compose","icon":"docker","href":"/enterprise/docker-compose"},"pages":[{"title":"Run on a VM with HTTPS","sidebarTitle":"VM with HTTPS","icon":"lock","href":"/enterprise/docker-compose/https"},{"title":"Serve with ngrok","sidebarTitle":"ngrok","icon":"globe","href":"/enterprise/docker-compose/ngrok"}]}]}]},{"tab":"Enterprise Cookbook","pages":[{"title":"Enterprise Cookbook","href":"/cookbook"}]}]},"basePath":"","title":"Jira Cloud - OpenHands Docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}