# Jira

Jira is a cloud-based platform that allows bug tracking and agile project management.

Jira integration replicates data from a Jira Cloud instance using the [Jira Cloud REST API v2](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#about).

See the [Schema](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#Schema) section for a list of objects available for replication.

## Preparing for authentication

To access your data, you need to authenticate the connection with your account credentials.

Information noteMake sure that the account you use has read access to the tables you want to fetch.

To set up a Jira connection in Qlik Talend Cloud, you need:

* **Jira permissions**

  Qlik Talend Cloud can replicate only the Jira data that you can access (for example, issues, projects, and worklogs). If you cannot access specific records, Qlik Talend Cloud cannot replicate them. For more information, see [Jira permission schemes](https://support.atlassian.com/jira-cloud-administration/docs/what-are-permission-schemes-in-jira/#Managingprojectpermissions-permission_schemes).

* **Supported date locales**

  Records that use date formats from the following locales are skipped:

  * Hungarian (Hungary): Magyar
  * Italian (Italy): Italiano
  * Japanese (Japan): 日本語 (日本)
  * Korean (South Korea): 한국어 (대한민국)
  * Polish (Poland): Polski
  * Thai (Thailand): ภาษาไทย
  * Turkish (Turkey): Türkçe
  * Chinese (China): 中文 (简体)
  * Chinese (Taiwan): 中文 (繁體)
  * Portuguese (Brazil): português (Brasil)
  * Portuguese (Portugal): Português (Portugal)
  * Vietnamese (Vietnam): Tiếng Việt

To generate your API token:

1. Log into your [Jira](https://id.atlassian.com/login) account.
2. Navigate to User menu &gt; Account settings &gt; Security &gt; Create and manage API tokens.
3. Click Create API token.
4. Enter a name for your new API token.
5. Click Create.
6. Copy and paste your API token into a secured file.

Before connecting to a self-managed (hosted) Jira instance, verify the following.

* Your Jira server must use `HTTPS`. Qlik Talend Cloud does not support HTTP for security reasons. If the Jira base URL you enter in Qlik Talend Cloud does not use HTTPS, the connection will fail.
* If your Jira instance is behind a firewall, allowlist Qlik Talend Cloud IP addresses so Qlik Talend Cloud can access the instance. For the current list, see [Allowlisting domains and IP addresses](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/qlik-cloud-dns-ip.htm).

## Creating the connection

For more information, see [Connecting to SaaS applications](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Fill in the required connection properties.

2. Provide a name for the connection in Connection name.

3. Select Open connection metadata to define metadata for the connection when it has been created.

4. Click Create.

Connection settings

| Setting | Description |
| --- | --- |
| Data gateway | Select a Data Movement gateway if required by your use case.<br><br>Information note<br><br>This field is not available with the Qlik Talend Cloud Starter subscription, as it does not support Data Movement gateway. If you have another subscription tier and do not want to use Data Movement gateway, select None.<br><br>For information on the benefits of Data Movement gateway and use cases that require it, see [Qlik Data Gateway - Data Movement](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Start Date | Enter the date, in the format `MM/DD/YYYY`, from which the data must be replicated from your source to your target. |
| Base URL | The base URL is the main address of your Jira instance. Enter the URL you use to open Jira in a browser, for example https://yourcompany.atlassian.net. |
| Username or Email | Enter your email or username. |
| Password or Token | Enter your password or your generated token. When your Jira instance is cloud-hosted, use an API token. |
| Groups | Optional. User groups to include in replication. |

## Schema

Information note

Schemas and naming conventions can change from version to version. It is recommended to verify your version before continuing.

Depending on your destination, table and column names may not appear as they are outlined below.

### changelogs

The `changelogs` table contains info about the changelogs associated with an issue.

**Note**: Due to a Jira limitation in the endpoint this connector uses to replicate changelogs, only the 100 most recent changelogs for any individual issue can be replicated. Refer to [Jira documentation](https://confluence.atlassian.com/jirakb/jira-cloud-rest-api-limits-the-number-of-changelogs-returned-938840277.html) for more info.

#### Replication requirements

To replicate this data:

1. The [`issues`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) table must also be set to replicate. **Note**: When an issue is updated, all available changelogs for that issue will also be replicated.

2. The `Browse Projects` [project Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-project-permissions-776636362.html) is required.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [Jira API method](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-issueidorkey-changelog-get "Opens in new tab: Jira API method") |

changelogs table foreign keys

| Join changelogs with | on |
| --- | --- |
| [issue_comments](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-comments) | ```<br>changelogs.issueId = issue_comments.issueId<br>```<br><br>```<br>changelogs.author.accountId = issue_comments.author.accountId<br>```<br><br>```<br>changelogs.author.accountId = issue_comments.updateAuthor.accountId<br>``` |
| [issue_transitions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-transitions) | ```<br>changelogs.issueId = issue_transitions.issueId<br>``` |
| [issues](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) | ```<br>changelogs.issueId = issues.id<br>```<br><br>```<br>changelogs.author.accountId = issues.fields.attachment.author.accountId<br>``` |
| [worklogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#worklogs) | ```<br>changelogs.issueId = worklogs.issueId<br>```<br><br>```<br>changelogs.author.accountId = worklogs.author.accountId<br>```<br><br>```<br>changelogs.author.accountId = worklogs.updateAuthor.accountId<br>``` |
| [components](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#components) | ```<br>changelogs.author.accountId = components.assignee.accountId<br>```<br><br>```<br>changelogs.author.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>changelogs.author.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>changelogs.author.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>changelogs.author.accountId = components.lead.accountId<br>```<br><br>```<br>changelogs.author.accountId = components.realAssignee.accountId<br>``` |
| [projects](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) | ```<br>changelogs.author.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>changelogs.author.accountId = projects.components.lead.accountId<br>```<br><br>```<br>changelogs.author.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>changelogs.author.accountId = projects.lead.accountId<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#users) | ```<br>changelogs.author.accountId = users.accountId<br>``` |

changelogs table schema

| **author**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>key: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul> |
| --- |
| **created**<br><br><br>DATE-TIME |
| **historyMetadata**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>activityDescription: STRING</li><li>activityDescriptionKey: STRING</li><li>actor: OBJECT, which is also a nested data structure.            <ul><li>avatarUrl: STRING</li><li>displayName: STRING</li><li>displayNameKey: STRING</li><li>id: STRING</li><li>type: STRING</li><li>url: STRING</li></ul></li><li>cause: OBJECT, which is also a nested data structure.            <ul><li>avatarUrl: STRING</li><li>displayName: STRING</li><li>displayNameKey: STRING</li><li>id: STRING</li><li>type: STRING</li><li>url: STRING</li></ul></li><li>description: STRING</li><li>descriptionKey: STRING</li><li>emailDescription: STRING</li><li>emailDescriptionKey: STRING</li><li>extraData: OBJECT, which is also a nested data structure.</li><li>generator: OBJECT, which is also a nested data structure.            <ul><li>avatarUrl: STRING</li><li>displayName: STRING</li><li>displayNameKey: STRING</li><li>id: STRING</li><li>type: STRING</li><li>url: STRING</li></ul></li><li>type: STRING</li></ul> |
| **id**<br><br><br>STRING |
| **issueId**<br><br><br>STRING |
| **items**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>field: STRING</li><li>fieldId: STRING</li><li>fieldtype: STRING</li><li>from: STRING</li><li>fromString: STRING</li><li>to: STRING</li><li>toString: STRING</li></ul> |

### components

The `components` table contains info about components in projects in your JIRA account.

#### Replication requirements

**Note**: To replicate this data:

1. The [`projects`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) table must also be set to replicate, and
2. The `Browse Projects` [project Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-project-permissions-776636362.html) is required.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-components/#api-rest-api-2-project-projectidorkey-component-get "Opens in new tab: JIRA API method") |

components table foreign keys

| Join components with | on |
| --- | --- |
| [projects](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) | ```<br>components.componentBean.projectId = projects.id<br>```<br><br>```<br>components.projectId = projects.id<br>```<br><br>```<br>components.assignee.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>components.lead.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>components.realAssignee.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>components.assignee.accountId = projects.components.lead.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = projects.components.lead.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = projects.components.lead.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = projects.components.lead.accountId<br>```<br><br>```<br>components.lead.accountId = projects.components.lead.accountId<br>```<br><br>```<br>components.realAssignee.accountId = projects.components.lead.accountId<br>```<br><br>```<br>components.assignee.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>components.lead.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>components.realAssignee.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>components.assignee.accountId = projects.lead.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = projects.lead.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = projects.lead.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = projects.lead.accountId<br>```<br><br>```<br>components.lead.accountId = projects.lead.accountId<br>```<br><br>```<br>components.realAssignee.accountId = projects.lead.accountId<br>``` |
| [versions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#versions) | ```<br>components.componentBean.projectId = versions.projectId<br>```<br><br>```<br>components.projectId = versions.projectId<br>``` |
| [changelogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#changelogs) | ```<br>components.assignee.accountId = changelogs.author.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = changelogs.author.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = changelogs.author.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = changelogs.author.accountId<br>```<br><br>```<br>components.lead.accountId = changelogs.author.accountId<br>```<br><br>```<br>components.realAssignee.accountId = changelogs.author.accountId<br>``` |
| [issue_comments](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-comments) | ```<br>components.assignee.accountId = issue_comments.author.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = issue_comments.author.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = issue_comments.author.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = issue_comments.author.accountId<br>```<br><br>```<br>components.lead.accountId = issue_comments.author.accountId<br>```<br><br>```<br>components.realAssignee.accountId = issue_comments.author.accountId<br>```<br><br>```<br>components.assignee.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>components.lead.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>components.realAssignee.accountId = issue_comments.updateAuthor.accountId<br>``` |
| [issues](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) | ```<br>components.assignee.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>components.lead.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>components.realAssignee.accountId = issues.fields.attachment.author.accountId<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#users) | ```<br>components.assignee.accountId = users.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = users.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = users.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = users.accountId<br>```<br><br>```<br>components.lead.accountId = users.accountId<br>```<br><br>```<br>components.realAssignee.accountId = users.accountId<br>``` |
| [worklogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#worklogs) | ```<br>components.assignee.accountId = worklogs.author.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = worklogs.author.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = worklogs.author.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = worklogs.author.accountId<br>```<br><br>```<br>components.lead.accountId = worklogs.author.accountId<br>```<br><br>```<br>components.realAssignee.accountId = worklogs.author.accountId<br>```<br><br>```<br>components.assignee.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>components.componentBean.assignee.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>components.componentBean.lead.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>components.componentBean.realAssignee.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>components.lead.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>components.realAssignee.accountId = worklogs.updateAuthor.accountId<br>``` |

components table schema

| **assignee**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.            <ul><li>16x16: STRING</li><li>24x24: STRING</li><li>32x32: STRING</li><li>48x48: STRING</li></ul></li><li>displayName: STRING</li><li>self: STRING</li></ul> |
| --- |
| **assigneeType**<br><br><br>STRING |
| **componentBean**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>assignee: OBJECT, which is also a nested data structure.            <ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.                    <ul><li>16x16: STRING</li><li>24x24: STRING</li><li>32x32: STRING</li><li>48x48: STRING</li></ul></li><li>displayName: STRING</li><li>self: STRING</li></ul></li><li>assigneeType: STRING</li><li>description: STRING</li><li>id: STRING</li><li>isAssigneeTypeValid: BOOLEAN</li><li>lead: OBJECT, which is also a nested data structure.            <ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.                    <ul><li>16x16: STRING</li><li>24x24: STRING</li><li>32x32: STRING</li><li>48x48: STRING</li></ul></li><li>displayName: STRING</li><li>self: STRING</li></ul></li><li>name: STRING</li><li>project: STRING</li><li>projectId: INTEGER</li><li>realAssignee: OBJECT, which is also a nested data structure.            <ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.                    <ul><li>16x16: STRING</li><li>24x24: STRING</li><li>32x32: STRING</li><li>48x48: STRING</li></ul></li><li>displayName: STRING</li><li>self: STRING</li></ul></li><li>realAssigneeType: STRING</li><li>self: STRING</li></ul> |
| **description**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **isAssigneeTypeValid**<br><br><br>BOOLEAN |
| **issueCount**<br><br><br>INTEGER |
| **lead**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.                    <ul><li>16x16: STRING</li><li>24x24: STRING</li><li>32x32: STRING</li><li>48x48: STRING</li></ul></li><li>displayName: STRING</li><li>self: STRING</li></ul> |
| **name**<br><br><br>STRING |
| **project**<br><br><br>STRING |
| **projectId**<br><br><br>INTEGER |
| **realAssignee**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.                    <ul><li>16x16: STRING</li><li>24x24: STRING</li><li>32x32: STRING</li><li>48x48: STRING</li></ul></li><li>displayName: STRING</li><li>self: STRING</li></ul> |
| **realAssigneeType**<br><br><br>STRING |
| **self**<br><br><br>STRING |

### group\_users

The `group_users` table contains the list of all users in a group. Users are ordered by username. Due to privacy reasons, the Jira API does not return the username in the results.

#### Replication requirements

**Note**: To replicate this data:

1. The [`groups`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#groups) table must also be set to replicate.
2. The `Browse users and groups` [global Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-global-permissions-776636359.html) is required.
3. The `Administer Jira` [global Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-global-permissions-776636359.html) is required.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | groupId, accountId |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-groups/#api-rest-api-2-group-member-get "Opens in new tab: JIRA API method") |

### groups

The `groups` table contains the list of groups found in your JIRA account.

**Note**: To replicate this data, the `Browse users and groups` [global Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-global-permissions-776636359.html) is required.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | groupId |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-groups/#api-rest-api-2-group-bulk-get "Opens in new tab: JIRA API method") |

### issue\_comments

The `issue_comments` table contains info about comments made on issues.

#### Replication requirements

To replicate this data:

1. The [`issues`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) table must also be set to replicate. **Note**: When an issue is updated, all the comments for that issue will also be replicated.
2. The `Browse Projects` [project Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-project-permissions-776636362.html) is required.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-comments/#api-group-issue-comments "Opens in new tab: JIRA API method") |

issue\_comments table foreign keys

| Join issue\_comments with | on |
| --- | --- |
| [changelogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#changelogs) | ```<br>issue_comments.issueId = changelogs.issueId<br>```<br><br>```<br>issue_comments.author.accountId = changelogs.author.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = changelogs.author.accountId<br>``` |
| [issue_transitions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-transitions) | ```<br>issue_comments.issueId = issue_transitions.issueId<br>``` |
| [issues](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) | ```<br>issue_comments.issueId = issues.id<br>```<br><br>```<br>issue_comments.author.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = issues.fields.attachment.author.accountId<br>``` |
| [worklogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#worklogs) | ```<br>issue_comments.issueId = worklogs.issueId<br>```<br><br>```<br>issue_comments.author.accountId = worklogs.author.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = worklogs.author.accountId<br>```<br><br>```<br>issue_comments.author.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = worklogs.updateAuthor.accountId<br>``` |
| [components](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#components) | ```<br>issue_comments.author.accountId = components.assignee.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = components.assignee.accountId<br>```<br><br>```<br>issue_comments.author.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>issue_comments.author.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>issue_comments.author.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>issue_comments.author.accountId = components.lead.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = components.lead.accountId<br>```<br><br>```<br>issue_comments.author.accountId = components.realAssignee.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = components.realAssignee.accountId<br>``` |
| [projects](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) | ```<br>issue_comments.author.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>issue_comments.author.accountId = projects.components.lead.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = projects.components.lead.accountId<br>```<br><br>```<br>issue_comments.author.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>issue_comments.author.accountId = projects.lead.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = projects.lead.accountId<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#users) | ```<br>issue_comments.author.accountId = users.accountId<br>```<br><br>```<br>issue_comments.updateAuthor.accountId = users.accountId<br>``` |

issue\_comments table schema

| **author**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>key: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul> |
| --- |
| **body**<br><br><br>STRING |
| **created**<br><br><br>DATE-TIME |
| **id**<br><br><br>STRING |
| **issueId**<br><br><br>STRING |
| **jsdPublic**<br><br><br>BOOLEAN |
| **properties**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>key: STRING</li></ul> |
| **renderedBody**<br><br><br>STRING |
| **self**<br><br><br>STRING |
| **updateAuthor**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>key: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul> |
| **updated**<br><br><br>DATE-TIME |
| **visibility**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>type: STRING</li><li>value: STRING</li></ul> |

### issue\_transitions

The `issue_transitions` table contains info about issue transitions.

#### Replication requirements

To replicate this data:

1. The [`issues`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) table must also be set to replicate. **Note**: When an issue is updated, all the transitions for that issue will also be replicated.
2. The `Browse Projects` [project Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-project-permissions-776636362.html) is required.

| **Replication Method** | CDC |
| --- | --- |
| **Loading Behavior** | Append-Only |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-issueidorkey-transitions-get "Opens in new tab: JIRA API method") |

issue\_transitions table foreign keys

| Join issue\_transitions with | on |
| --- | --- |
| [changelogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#changelogs) | ```<br>issue_transitions.issueId = changelogs.issueId<br>``` |
| [issue_comments](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-comments) | ```<br>issue_transitions.issueId = issue_comments.issueId<br>``` |
| [issues](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) | ```<br>issue_transitions.issueId = issues.id<br>``` |
| [worklogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#worklogs) | ```<br>issue_transitions.issueId = worklogs.issueId<br>``` |

issue\_transitions table schema

| **expand**<br><br><br>STRING |
| --- |
| **fields**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **hasScreen**<br><br><br>BOOLEAN |
| **id**<br><br><br>STRING |
| **isConditional**<br><br><br>BOOLEAN |
| **isGlobal**<br><br><br>BOOLEAN |
| **isInitial**<br><br><br>BOOLEAN |
| **issueId**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **to**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>description: STRING</li><li>iconUrl: STRING</li><li>id: STRING</li><li>name: STRING</li><li>self: STRING</li><li>statusCategory: OBJECT, which is also a nested data structure.            <ul><li>colorName: STRING</li><li>id: INTEGER</li><li>key: STRING</li><li>name: STRING</li><li>self: STRING</li></ul></li><li>statusColor: STRING</li></ul> |

### issues

The `issues` table contains info about the issues in your JIRA instance. This table only contains core issue data - some data is located in other tables, such as [`changelogs`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#changelogs), [`issue_comments`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue_comments), and [`issue_transitions`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue_transitions).

**Note**: To replicate this data, the `Browse projects` [project Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-project-permissions-776636362.html) for the project that the issue is in is required.

#### Identifying deleted issues

When an issue is hard-deleted in JIRA, the record for the issue will remain in your destination. Currently, Jira’s API doesn’t include a way to identify deleted issues.

To identify deleted issues, [Atlassian’s suggested workaround](https://answers.atlassian.com/questions/75537/how-do-i-find-if-an-issue-has-been-deleted) is:

1. Create a status in JIRA that will be applied to issues you want to delete.

2. Before deleting the issue, apply the status.

3. Allow Qlik Talend Cloud to extract and load the updated data into your destination.

4. Delete the issue.

5. After Qlik Talend Cloud finishes loading the data, use the `fields__status__name` field in your queries to filter issues with the deleted status you applied in step 2.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA documentation](https://docs.atlassian.com/jira/REST/ondemand/#api/2/issue-getIssue)<br><br>[JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-issueidorkey-get "Opens in new tab: JIRA API method") |

issues table foreign keys

| Join issues with | on |
| --- | --- |
| [changelogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#changelogs) | ```<br>issues.id = changelogs.issueId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = changelogs.author.accountId<br>``` |
| [issue_comments](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-comments) | ```<br>issues.id = issue_comments.issueId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = issue_comments.author.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = issue_comments.updateAuthor.accountId<br>``` |
| [issue_transitions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-transitions) | ```<br>issues.id = issue_transitions.issueId<br>``` |
| [worklogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#worklogs) | ```<br>issues.id = worklogs.issueId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = worklogs.author.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = worklogs.updateAuthor.accountId<br>``` |
| [components](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#components) | ```<br>issues.fields.attachment.author.accountId = components.assignee.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = components.lead.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = components.realAssignee.accountId<br>``` |
| [projects](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) | ```<br>issues.fields.attachment.author.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = projects.components.lead.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>issues.fields.attachment.author.accountId = projects.lead.accountId<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#users) | ```<br>issues.fields.attachment.author.accountId = users.accountId<br>``` |

issues table schema

| **editmeta**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>fields: OBJECT, which is also a nested data structure.</li></ul> |
| --- |
| **expand**<br><br><br>STRING |
| **fields**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>attachment: ARRAY, which is also a nested data structure.</li><li>created: DATE-TIME</li><li>lastViewed: DATE-TIME</li><li>updated: DATE-TIME</li></ul> |
| **fieldsToInclude**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **id**<br><br><br>STRING |
| **key**<br><br><br>STRING |
| **names**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **properties**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>properties: OBJECT, which is also a nested data structure.</li></ul> |
| **renderedFields**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **schema**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **self**<br><br><br>STRING |
| **versionedRepresentations**<br><br><br>OBJECT<br><br>This is a nested data structure. |

### project\_categories

The `project_categories` table contains info about project categories.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-categories/#api-group-project-categories "Opens in new tab: JIRA API method") |

project\_categories table foreign keys

| Join project\_categories with | on |
| --- | --- |
| [projects](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) | ```<br>project_categories.id = projects.projectCategory.id<br>``` |

project\_categories table schema

| **description**<br><br><br>STRING |
| --- |
| **id**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **self**<br><br><br>STRING |

### project\_types

The `project_types` table contains info about project types.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | key |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-types/#api-group-project-types "Opens in new tab: JIRA API method") |

project\_types table schema

| **color**<br><br><br>STRING |
| --- |
| **descriptionI18nKey**<br><br><br>STRING |
| **formattedKey**<br><br><br>STRING |
| **icon**<br><br><br>STRING |
| **key**<br><br><br>STRING |

### projects

The `projects` table contains info about projects in your JIRA account.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA documentation](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-projects/#api-group-projects) |

projects table foreign keys

| Join projects with | on |
| --- | --- |
| [project_categories](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#project-categories) | ```<br>projects.projectCategory.id = project_categories.id<br>``` |
| [components](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#components) | ```<br>projects.id = components.componentBean.projectId<br>```<br><br>```<br>projects.id = components.projectId<br>```<br><br>```<br>projects.components.assignee.accountId = components.assignee.accountId<br>```<br><br>```<br>projects.components.lead.accountId = components.assignee.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = components.assignee.accountId<br>```<br><br>```<br>projects.lead.accountId = components.assignee.accountId<br>```<br><br>```<br>projects.components.assignee.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>projects.components.lead.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>projects.lead.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>projects.components.assignee.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>projects.components.lead.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>projects.lead.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>projects.components.assignee.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>projects.components.lead.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>projects.lead.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>projects.components.assignee.accountId = components.lead.accountId<br>```<br><br>```<br>projects.components.lead.accountId = components.lead.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = components.lead.accountId<br>```<br><br>```<br>projects.lead.accountId = components.lead.accountId<br>```<br><br>```<br>projects.components.assignee.accountId = components.realAssignee.accountId<br>```<br><br>```<br>projects.components.lead.accountId = components.realAssignee.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = components.realAssignee.accountId<br>```<br><br>```<br>projects.lead.accountId = components.realAssignee.accountId<br>``` |
| [versions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#versions) | ```<br>projects.id = versions.projectId<br>``` |
| [changelogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#changelogs) | ```<br>projects.components.assignee.accountId = changelogs.author.accountId<br>```<br><br>```<br>projects.components.lead.accountId = changelogs.author.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = changelogs.author.accountId<br>```<br><br>```<br>projects.lead.accountId = changelogs.author.accountId<br>``` |
| [issue_comments](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-comments) | ```<br>projects.components.assignee.accountId = issue_comments.author.accountId<br>```<br><br>```<br>projects.components.lead.accountId = issue_comments.author.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = issue_comments.author.accountId<br>```<br><br>```<br>projects.lead.accountId = issue_comments.author.accountId<br>```<br><br>```<br>projects.components.assignee.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>projects.components.lead.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>projects.lead.accountId = issue_comments.updateAuthor.accountId<br>``` |
| [issues](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) | ```<br>projects.components.assignee.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>projects.components.lead.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>projects.lead.accountId = issues.fields.attachment.author.accountId<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#users) | ```<br>projects.components.assignee.accountId = users.accountId<br>```<br><br>```<br>projects.components.lead.accountId = users.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = users.accountId<br>```<br><br>```<br>projects.lead.accountId = users.accountId<br>``` |
| [worklogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#worklogs) | ```<br>projects.components.assignee.accountId = worklogs.author.accountId<br>```<br><br>```<br>projects.components.lead.accountId = worklogs.author.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = worklogs.author.accountId<br>```<br><br>```<br>projects.lead.accountId = worklogs.author.accountId<br>```<br><br>```<br>projects.components.assignee.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>projects.components.lead.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>projects.components.realAssignee.accountId = worklogs.updateAuthor.accountId<br>```<br><br>```<br>projects.lead.accountId = worklogs.updateAuthor.accountId<br>``` |

projects table schema

| **assigneeType**<br><br><br>STRING |
| --- |
| **avatarUrls**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **components**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>assignee: OBJECT, which is also a nested data structure.            <ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>applicationRoles: OBJECT, which is also a nested data structure.</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>expand: STRING</li><li>groups: OBJECT, which is also a nested data structure.</li><li>key: STRING</li><li>locale: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul></li><li>assigneeType: STRING</li><li>description: STRING</li><li>id: STRING</li><li>isAssigneeTypeValid: BOOLEAN</li><li>lead: OBJECT, which is also a nested data structure.            <ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>applicationRoles: OBJECT, which is also a nested data structure.</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>expand: STRING</li><li>groups: OBJECT, which is also a nested data structure.</li><li>key: STRING</li><li>locale: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul></li><li>leadUserName: STRING</li><li>name: STRING</li><li>project: STRING</li><li>projectId: INTEGER</li><li>realAssignee: OBJECT, which is also a nested data structure.            <ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>applicationRoles: OBJECT, which is also a nested data structure.</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>expand: STRING</li><li>groups: OBJECT, which is also a nested data structure.</li><li>key: STRING</li><li>locale: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul></li><li>realAssigneeType: STRING</li><li>self: STRING</li></ul> |
| **description**<br><br><br>STRING |
| **email**<br><br><br>STRING |
| **expand**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **issueTypes**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>avatarId: INTEGER</li><li>description: STRING</li><li>iconUrl: STRING</li><li>id: STRING</li><li>name: STRING</li><li>self: STRING</li><li>subtask: BOOLEAN</li></ul> |
| **key**<br><br><br>STRING |
| **lead**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>applicationRoles: OBJECT, which is also a nested data structure.</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>expand: STRING</li><li>groups: OBJECT, which is also a nested data structure.</li><li>key: STRING</li><li>locale: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul> |
| **name**<br><br><br>STRING |
| **projectCategory**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>description: STRING</li><li>id: STRING</li><li>name: STRING</li><li>self: STRING</li></ul> |
| **projectKeys**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **projectTypeKey**<br><br><br>STRING |
| **roles**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **self**<br><br><br>STRING |
| **simplified**<br><br><br>BOOLEAN |
| **url**<br><br><br>STRING |

### resolutions

The `resolutions` table contains info about issue resolutions.

**Note**: To replicate this data, the `Administer Jira` [global Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-global-permissions-776636359.html) is required.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-resolutions/#api-group-issue-resolutions "Opens in new tab: JIRA API method") |

resolutions table schema

| **description**<br><br><br>STRING |
| --- |
| **iconUrl**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **self**<br><br><br>STRING |

### roles

The `roles` table contains info about the project roles in your JIRA account.

**Note**: To replicate this data, the `Administer Jira` [global Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-global-permissions-776636359.html) is required.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-roles/#api-rest-api-2-role-get "Opens in new tab: JIRA API method") |

roles table schema

| **actors**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>avatarUrl: STRING</li><li>displayName: STRING</li><li>id: INTEGER</li><li>name: STRING</li><li>type: STRING</li></ul> |
| --- |
| **description**<br><br><br>STRING |
| **id**<br><br><br>INTEGER |
| **name**<br><br><br>STRING |
| **self**<br><br><br>STRING |

### users

The `users` table contains info about the users in your JIRA account.

**Note**: To replicate this data, the `Administer Jira` [global Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-global-permissions-776636359.html) is required.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-users/#api-rest-api-2-user-get "Opens in new tab: JIRA API method") |

users table foreign keys

| Join users with | on |
| --- | --- |
| [changelogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#changelogs) | ```<br>users.accountId = changelogs.author.accountId<br>``` |
| [components](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#components) | ```<br>users.accountId = components.assignee.accountId<br>```<br><br>```<br>users.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>users.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>users.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>users.accountId = components.lead.accountId<br>```<br><br>```<br>users.accountId = components.realAssignee.accountId<br>``` |
| [issue_comments](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-comments) | ```<br>users.accountId = issue_comments.author.accountId<br>```<br><br>```<br>users.accountId = issue_comments.updateAuthor.accountId<br>``` |
| [issues](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) | ```<br>users.accountId = issues.fields.attachment.author.accountId<br>``` |
| [projects](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) | ```<br>users.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>users.accountId = projects.components.lead.accountId<br>```<br><br>```<br>users.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>users.accountId = projects.lead.accountId<br>``` |
| [worklogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#worklogs) | ```<br>users.accountId = worklogs.author.accountId<br>```<br><br>```<br>users.accountId = worklogs.updateAuthor.accountId<br>``` |

users table schema

| **accountId**<br><br><br>STRING |
| --- |
| **accountType**<br><br><br>STRING |
| **active**<br><br><br>BOOLEAN |
| **avatarUrls**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **displayName**<br><br><br>STRING |
| **emailAddress**<br><br><br>STRING |
| **expand**<br><br><br>STRING |
| **key**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **self**<br><br><br>STRING |
| **timeZone**<br><br><br>STRING |

### versions

The `versions` table contains info about versions in your JIRA account.

#### Replication requirements

**Note**: To replicate this data:

1. The [`projects`](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) table must also be set to replicate, and
2. The `Browse Projects` [project Jira permission](https://confluence.atlassian.com/adminjiracloud/managing-project-permissions-776636362.html) is required.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-versions/#api-rest-api-2-project-projectidorkey-versions-get "Opens in new tab: JIRA API method") |

versions table foreign keys

| Join versions with | on |
| --- | --- |
| [components](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#components) | ```<br>versions.projectId = components.componentBean.projectId<br>```<br><br>```<br>versions.projectId = components.projectId<br>``` |
| [projects](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) | ```<br>versions.projectId = projects.id<br>``` |

versions table schema

| **archived**<br><br><br>BOOLEAN |
| --- |
| **description**<br><br><br>STRING |
| **expand**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **moveUnfixedIssuesTo**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **operations**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>href: STRING</li><li>iconClass: STRING</li><li>id: STRING</li><li>label: STRING</li><li>styleClass: STRING</li><li>title: STRING</li><li>weight: INTEGER</li></ul> |
| **overdue**<br><br><br>BOOLEAN |
| **project**<br><br><br>STRING |
| **projectId**<br><br><br>INTEGER |
| **releaseDate**<br><br><br>DATE-TIME |
| **released**<br><br><br>BOOLEAN |
| **remotelinks**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>name: STRING</li><li>self: STRING</li></ul> |
| **self**<br><br><br>STRING |
| **startDate**<br><br><br>DATE-TIME |
| **userReleaseDate**<br><br><br>DATE-TIME |
| **userStartDate**<br><br><br>DATE-TIME |

### worklogs

The `worklogs` table contains info about the worklogs in your JIRA account.

**Note**: For a worklog to be replicated, it must be set as `Viewable by All Users`, or the integration authenticating user (visible in the integration’s Integration Settings page), must be a member of the project role/group with permission to view the worklog.

If you’re missing worklogs, verify that you have the required permissions to access the worklog.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [JIRA API method](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-worklogs/#api-rest-api-2-worklog-updated-get "Opens in new tab: JIRA API method") |

worklogs table foreign keys

| Join worklogs with | on |
| --- | --- |
| [changelogs](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#changelogs) | ```<br>worklogs.issueId = changelogs.issueId<br>```<br><br>```<br>worklogs.author.accountId = changelogs.author.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = changelogs.author.accountId<br>``` |
| [issue_comments](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-comments) | ```<br>worklogs.issueId = issue_comments.issueId<br>```<br><br>```<br>worklogs.author.accountId = issue_comments.author.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = issue_comments.author.accountId<br>```<br><br>```<br>worklogs.author.accountId = issue_comments.updateAuthor.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = issue_comments.updateAuthor.accountId<br>``` |
| [issue_transitions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issue-transitions) | ```<br>worklogs.issueId = issue_transitions.issueId<br>``` |
| [issues](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#issues) | ```<br>worklogs.issueId = issues.id<br>```<br><br>```<br>worklogs.author.accountId = issues.fields.attachment.author.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = issues.fields.attachment.author.accountId<br>``` |
| [components](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#components) | ```<br>worklogs.author.accountId = components.assignee.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = components.assignee.accountId<br>```<br><br>```<br>worklogs.author.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = components.componentBean.assignee.accountId<br>```<br><br>```<br>worklogs.author.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = components.componentBean.lead.accountId<br>```<br><br>```<br>worklogs.author.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = components.componentBean.realAssignee.accountId<br>```<br><br>```<br>worklogs.author.accountId = components.lead.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = components.lead.accountId<br>```<br><br>```<br>worklogs.author.accountId = components.realAssignee.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = components.realAssignee.accountId<br>``` |
| [projects](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#projects) | ```<br>worklogs.author.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = projects.components.assignee.accountId<br>```<br><br>```<br>worklogs.author.accountId = projects.components.lead.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = projects.components.lead.accountId<br>```<br><br>```<br>worklogs.author.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = projects.components.realAssignee.accountId<br>```<br><br>```<br>worklogs.author.accountId = projects.lead.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = projects.lead.accountId<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Jira-v2.htm#users) | ```<br>worklogs.author.accountId = users.accountId<br>```<br><br>```<br>worklogs.updateAuthor.accountId = users.accountId<br>``` |

worklogs table schema

| **author**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>key: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul> |
| --- |
| **comment**<br><br><br>STRING |
| **created**<br><br><br>DATE-TIME |
| **id**<br><br><br>STRING |
| **issueId**<br><br><br>STRING |
| **properties**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>key: STRING</li></ul> |
| **self**<br><br><br>STRING |
| **started**<br><br><br>DATE-TIME |
| **timeSpent**<br><br><br>STRING |
| **timeSpentSeconds**<br><br><br>INTEGER |
| **updateAuthor**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountId: STRING</li><li>active: BOOLEAN</li><li>avatarUrls: OBJECT, which is also a nested data structure.</li><li>displayName: STRING</li><li>emailAddress: STRING</li><li>key: STRING</li><li>name: STRING</li><li>self: STRING</li><li>timeZone: STRING</li></ul> |
| **updated**<br><br><br>DATE-TIME |
| **visibility**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>type: STRING</li><li>value: STRING</li></ul> |