Overview
This page is the second step in the Jira setup flow:- Setup Jira API Parameters — generate a Jira API token and save the connection.
- Jira Automation (Auto-Pickup) — this page — have Genesis automatically start work on tickets that match your rules.
- Jira Connector Tools — for ad-hoc, manual Jira operations from inside an agent thread.
Genesis Jira identity, transitions to a particular status, or receives an @genesis comment.
There are two ways Genesis hears about Jira issue changes, and you can use either or both:
- Webhook (push) — Jira calls Genesis at
POST /api/jira/webhookwhenever a subscribed event happens. Lowest latency. Requires that your Jira instance can reach the Genesis URL. - Polling (pull) — Genesis runs a scheduled
Jira Ticket PollerFlow that searches Jira for recently updated issues and applies your trigger rules. Works in any network topology, including air-gapped Jira where inbound webhooks are not viable. - Hybrid — both at once. Webhooks deliver normal events; polling acts as a safety net for missed deliveries.
webhook or hybrid, opening the tab switches its form to polling and shows
a notice; save the form to apply polling. Other deployments retain all three
ingestion modes.
In all modes, Genesis only starts agent work when an issue both belongs to your monitored scope and matches your configured trigger rules. Each issue gets a stable Genesis thread, so follow-up events on the same ticket resume the existing thread instead of starting over.
All Jira automation and worker controls are admin-scoped. You need Genesis admin access (or shared connection-management permissions) to see the Automation and Genesis worker tabs in the Jira connection modal on Config -> Connections. Open + New Connection, choose Jira under Dev Tools, or edit an existing Jira connection to switch tabs.
Prerequisites
Before configuring automation, make sure all of the following are true:- A shared Jira connection has been saved in Genesis with valid credentials. See Setup Jira API Parameters. Personal connections cannot be selected for automation — the poller and webhook intake run without the setup user’s session.
- You know the Jira project keys Genesis should monitor (for example
OPS,DATA). - You have decided which Genesis bot should pick up tickets. The default is
Eve. - (Recommended) You have an Atlassian service account that Genesis can use as its dedicated Jira identity, with Jira product access and assignable in every monitored project.
- (Webhook mode only) Your Jira instance can reach the Genesis backend over HTTPS.
Ingestion modes
You configure the ingestion mode per Genesis deployment from the Automation tab in the Jira connection modal on Config -> Connections (or via thejira_automation_setup_action tool from chat).
Polling (pull) — recommended default
Inpolling mode Genesis owns a scheduled Jira Ticket Poller Flow. On each run Genesis:
- Builds a JQL query scoped to your
project_keys(or your customissue_jql_filter). - Restricts to issues
updatedsince the last successful poll, with a small overlap so updates near the boundary are not missed. - Runs the search through your selected Jira connection (capped by
poll_max_results). - For each returned issue, applies the configured trigger rules.
- Deduplicates so the same matching condition does not retrigger.
- For new matches, opens or resumes the issue’s stable Genesis thread, posts an acknowledgement comment in Jira, optionally transitions the issue to
status_on_pickup, and dispatches the configured bot to begin work.
Webhook (push)
Genesis exposesPOST /api/jira/webhook as a public-but-signed endpoint. When you enable webhook mode, Genesis shows the URL to copy into Jira admin. After Jira sends a request:
- Genesis validates the optional
X-Hub-Signatureheader against your configuredwebhook_secret. - Genesis applies the same trigger rules as polling (project scope, JQL filter, status / assignee / comment matches).
- Matching events open or resume the issue’s stable Genesis thread and dispatch the bot.
Hybrid
hybrid runs both: webhooks handle normal traffic and polling backfills anything missed. This is the most resilient configuration if your environment supports it.
Trigger types
Whichever ingestion mode you pick, trigger rules decide which issues actually wake up a bot. Settrigger_type to one of:
Setup workflow
1
Create a dedicated Genesis Jira identity
In Atlassian Administration, create a service account named
Genesis (or invite a regular user, if you prefer). Grant it Jira product access and make sure it is assignable in every project that Genesis should monitor. Generate a Jira API token for that identity — Genesis will use it to author comments and status transitions as Genesis.2
Save the Jira connection
Confirm the shared Jira connection has been saved in Genesis with credentials that can read/write the target projects. See Setup Jira API Parameters.
3
Configure the Genesis worker
Open Config -> Connections, open the Jira connection modal (+ New Connection -> Jira under Dev Tools, or edit an existing Jira connection), and select the Genesis worker tab. Fill in:
- Worker label: typically
@genesis. - Worker email: the email of the Atlassian service account.
- Expected display name:
Genesis. - Projects to validate: the Jira project keys Genesis should monitor.
- Genesis worker API token: the API token from step 1.
accountId, confirms the worker is assignable in every listed project, and binds that identity into assignment-trigger automation.4
Configure automation rules
In the same Jira connection modal, select the Automation tab and set:
- Enable Jira automation: on.
- Auto-pick up tickets: on.
- Jira connection: the saved Jira connection.
- Detection mode:
polling,webhook, orhybrid. - Genesis bot ID: usually
Eve. - Project keys (or JQL filter): the search scope.
- Trigger type and the relevant trigger lists (assignees, statuses, comment keywords).
- Status on pickup / needs info / done (optional, recommended).
scheduled.5
(Webhook or hybrid only) Register the Jira webhook
Copy the Jira webhook URL shown in the Automation tab. In Jira admin, create a webhook that points at it. If you set a
webhook_secret in Genesis, configure the same secret in Jira. Scope the webhook to the monitored projects and subscribe to:- issue created
- issue updated
- comment created
- comment updated
6
Verify end-to-end
Assign a real ticket in a monitored project to the Genesis Jira identity. Within one poll interval (or immediately, in webhook mode), Genesis should open or resume the issue’s thread, post a Jira comment acknowledging pickup, optionally transition the status, and start work.
Automation parameter reference
These fields are saved on the Automation tab. Defaults are applied when a field is left blank.
The following fields are read-only telemetry that Genesis writes itself; you do not edit them, but you can monitor them for operations:
Genesis worker parameter reference
These fields are saved on the Genesis worker tab. They define the Atlassian identity Genesis acts as.The recommended path is a client-managed Atlassian service account plus Validate worker. Use Provision worker (with
org_id + admin_api_key, or with an admin-capable Jira credential) only when you specifically want Genesis to invite a regular Atlassian user account.End-to-end production sequence
Use this for the typical enterprise rollout.- Save the shared Jira connection in Genesis using the client Jira URL, integration email, and API token.
- In Atlassian Administration, create a service account named
Genesis. - Grant that service account Jira product access and any group/project roles needed for it to be assignable in the target projects.
- Generate a Jira API token for that service account.
- In Genesis, open Config -> Connections, open the Jira connection modal, select the Genesis worker tab, and save the worker label, service-account email, expected display name, project keys, and the worker API token.
- Click Validate worker and confirm Genesis reports a resolved account ID, assignable status in the target projects, and assignment-trigger automation bound.
- Select the Automation tab, choose the ingestion mode (polling, webhook, or hybrid), set the trigger type and lists, and save.
- (Webhook or hybrid only) Configure the Jira webhook in Jira admin using the URL and secret shown in Genesis.
- Confirm the Jira Ticket Poller Flow status shows
scheduled(polling/hybrid only). - Assign a real ticket in a monitored project to
Genesisand confirm Genesis opens or resumes the issue thread, reads the issue, and posts back into Jira asGenesis.
What end users see
After setup, the day-to-day workflow for a Jira user is:- Create or update a Jira ticket in a monitored project.
- Assign the ticket to the Jira identity
Genesis(or trigger via status /@genesiscomment, depending on configuration). - Genesis automatically starts or resumes work in the configured bot’s thread.
- Genesis posts questions, progress updates, and outcomes back to the Jira issue.
- Follow-up comments such as
@genesis please revise for executivesresume the same Genesis thread instead of starting over.
Troubleshooting
Ticket assigned to Genesis but nothing happens
Check, in order:- Jira automation is enabled.
- The issue’s project is included in
project_keys, or it satisfiesissue_jql_filter. - Validate worker succeeded and
trigger_on_assigneesincludes the resolved GenesisaccountId. - The assignee in Jira is the actual resolved Genesis identity, not a similarly named human.
- In polling mode, the polling Flow status is
scheduledandlast_poll_erroris empty. - The configured
bot_idexists and is online.
Genesis replied in Jira as the shared integration user instead of Genesis
The worker API token is missing, invalid, or not saved. Save (or rotate) the Genesis worker API token in the worker panel and validate again.@genesis comments do not wake Genesis
trigger_typeincludes comment wakeups (comment_keywordorhybrid).trigger_on_comment_keywordsincludes@genesis.- In polling mode, the comment was posted after the last successful poll cursor and lies within the inspected recent comments.
- The comment was posted by a human, not by Genesis itself (Genesis ignores its own automation comments).
Worker validates but is not assignable
The Jira identity exists but lacks project permissions. Fix the Jira-side access model (project role / group membership) and re-run Validate worker.Webhook deliveries are rejected
Ifwebhook_secret is set in Genesis, Jira must send the matching value via the X-Hub-Signature header. Re-paste the secret on both sides, then redeliver from Jira’s webhook log.

