> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Jira as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/jira > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.posthog.com` instead of `https://app.posthog.com` (app host for links). ## On this page - [Adding a data source](#adding-a-data-source) - [Available tables](#available-tables) - [Sync limitations](#sync-limitations) - [Configuration](#configuration) - [Supported tables](#supported-tables) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_9608fcca70) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_dark_a92b0e022d) Let AI connect your sources for you Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog. `npx @posthog/wizard warehouse` ![PostHog Wizard hedgehog](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png) ![](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)Let AI connect your sources for you Enter your Atlassian Jira credentials to pull your Jira data into the PostHog data warehouse. The token authenticates as your Atlassian account, so the data we can sync is limited to the projects and issues that account can see. ## Adding a data source 1. Go to the [sources tab](https://app.posthog.com/data-management/sources) of the data pipeline section in PostHog. 2. Click **\+ New source** and then click **Link** next to Jira. 3. You need three things from Atlassian: - **Subdomain** – the `your-domain` portion of your Jira URL (from `your-domain.atlassian.net`). - **Email** – the email address of the Atlassian account the token belongs to. - **API token** – create one at [id.atlassian.com/manage-profile/security/api-tokens](https://id.atlassian.com/manage-profile/security/api-tokens). 4. Back in PostHog, enter the credentials and click **Next**. 5. Select the tables you want to sync, set the sync method and frequency, then click **Import**. Once the syncs are complete, you can start using Jira data in PostHog. ## Available tables | Table | Description | Sync method | | --- | --- | --- | | `issues` | Issues across the projects your account can access | Incremental | | `projects` | Projects in your Jira instance | Full refresh | | `users` | Users in your Jira instance | Full refresh | | `fields` | Field definitions, including custom fields | Full refresh | | `issue_types` | Issue type definitions | Full refresh | | `statuses` | Workflow status definitions | Full refresh | | `priorities` | Priority definitions | Full refresh | | `resolutions` | Resolution definitions | Full refresh | | `dashboards` | Dashboards | Full refresh | | `filters` | Saved filters | Full refresh | | `worklogs` | Time logged against issues by users | Incremental | | `boards` | Jira Software boards (scrum or kanban) | Full refresh | | `sprints` | Jira Software sprints (time-boxed iterations on scrum boards) | Full refresh | | `sprint_issues` | Membership of an issue in a sprint, one row per sprint–issue pair | Full refresh | **Incremental** tables sync only new or updated records on each run. **Full refresh** tables reload all data on each sync. ## Sync limitations The `issues` and `worklogs` tables support incremental syncing using Jira's server-side `updated` timestamp filter. Worklogs sync through the instance-wide `/worklog/updated` feed rather than per-issue requests, so they scale to large instances. Deleted worklogs are not removed automatically – they remain in the table until you run a full resync. The `sprints` table fans out over boards. Kanban boards are skipped because they don't have sprints. Each sprint is deduplicated by ID, with `originBoardId` identifying the board that owns it. The `sprint_issues` table reads the Sprint field on each issue rather than the deprecated agile issue listing. Sites without Jira Software (no Sprint field) sync an empty `sprint_issues` table. Per-issue streams such as comments, votes, watchers, remote links, and transitions are not synced, as each requires a separate request per issue and does not scale well on large instances. ## Configuration | Option | Type | Required | | --- | --- | --- | | `Subdomain` | text | Yes | | `Email` | email | Yes | | `API token` | password | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `issues` | A Jira issue — a task, bug, story, or other unit of work tracked in a project. | Incremental, Full refresh | updated, created | — | | `projects` | A Jira project that groups issues and configuration. | Full refresh | — | — | | `users` | A user account that can access the Jira site. | Full refresh | — | — | | `fields` | A field (system or custom) available on Jira issues. | Full refresh | — | — | | `issue_types` | A type that categorizes Jira issues (e.g. Bug, Story, Task, Epic). | Full refresh | — | — | | `statuses` | A workflow status an issue can be in (e.g. To Do, In Progress, Done). | Full refresh | — | — | | `priorities` | A priority level that can be assigned to a Jira issue (e.g. Highest, High, Medium). | Full refresh | — | — | | `resolutions` | A resolution that explains how an issue was closed (e.g. Done, Won't Do, Duplicate). | Full refresh | — | — | | `dashboards` | A Jira dashboard that displays gadgets summarizing issues and activity. | Full refresh | — | — | | `filters` | A saved JQL filter in Jira used to find a set of issues. | Full refresh | — | — | | `worklogs` | Time logged against a Jira issue by a user. | Incremental, Full refresh | updated | — | | `boards` | A Jira Software board that shows issues from a saved filter as a scrum or kanban board. | Full refresh | — | — | | `sprints` | A Jira Software sprint, a time-boxed iteration on a scrum board. | Full refresh | — | — | | `sprint_issues` | Membership of an issue in a sprint, one row per sprint an issue is or was part of. | Full refresh | — | — | | `issue_changelogs` | One change to a Jira issue, with the field transitions it made. Use it for cycle time, time in status, and reopen rates. | Incremental, Full refresh | created | — | | `issue_comments` | A comment on a Jira issue. | Incremental, Full refresh | updated, created | — | | `groups` | A user group on the Jira site. | Full refresh | — | — | | `group_members` | Membership of a user in a group, one row per user and group, including inactive users. | Full refresh | — | — | | `versions` | A project version (release). Issues reference versions in their fixVersions and versions fields. | Full refresh | — | — |