Jira link
Jira is a bug tracking, issue tracking and project management software.
Featureslink
Feature Name | Supported | Notes |
---|---|---|
Capture deletes | check | FIELD , PROJECT , ISSUE , SPRINT , PERMISSION , and PERMISSION_SCHEME tables |
Custom data | check | Custom issue fields. We do not support all custom field types. Contact support if you'd like to sync specific custom field types. |
Data blocking | check | Column level |
Column hashing | check | |
Re-sync | check | Connector level |
History | check | We sync issue field changes in the following manner: • to the ISSUE_FIELD_HISTORY and ISSUE_MULTISELECT_HISTORY tables for the improved schema • to a ISSUE_[FIELD_NAME]_HISTORY table for the old schema |
API configurable | check | API configuration |
Priority-first sync | ||
Fivetran data models | check | Get the models: source / transform; Supports Quickstart data models |
Private networking |
Setup guidelink
Follow our step-by-step Jira setup guide to connect Jira with your destination using Fivetran connectors.
Sync overviewlink
Fivetran uses the Jira REST API (Cloud, on-premises) to fetch data from your Jira installation, and webhooks to capture deleted objects (issues, projects).
Historical changeslink
We capture value changes that occurred between syncs.
The ISSUE_FIELD_HISTORY
table stores historical changes for non-array fields, while the ISSUE_MULTISELECT_HISTORY
stores historical changes for array fields. When we first sync an issue, we write the initial field values to either of the history tracking tables, depending on the field type. Also, we write the issue creation timestamp to the time
column of the relevant history tracking table. Once the field is changed, we write the new field value to the relevant column and the change timestamp to the time
column of the relevant history tracking table.
We use historical syncs for our Jira connector. Every time we receive an update for an issue, we historically update all its fields and history items in full. During the sync, we check if any field values have changed in the source, i.e., are different from the current ones in the destination. If we find such field values, we upsert the corresponding records in the destination. This incurs Monthly Active Rows (MAR) regardless of the source change date. However, note that multiple changes of the same field value that we sync from Jira within a given month count as only a single MAR.
Issueslink
Jira connectors use JQL (Jira Query Language) to make incremental updates on issues.
The issue field value can be a primitive value or a complex object with its own fields. In the latter case, the issue table stores the object identifier and the corresponding dimension tables store other object fields.
Issue sync modelink
You can select the projects whose associated issues you want to sync:
- if you choose From all projects, the connector syncs the issues from all projects and you can browse through them. The connector syncs new projects once they are available. No additional action on your part is required.
- if you choose From selected projects, the connector only syncs the issues that belong to the projects selected in the setup form.
NOTE: If you deselect a project, the connector stops syncing its issues. The issue sync mode applies to all Jira connectors, whichever schema they use.
Non-incremental tableslink
Jira connector updates the following groups of tables in full once a day:
BOARD
,ISSUE_BOARD
,PROJECT_BOARD
PERMISSION_SCHEME
,PERMISSION
,PERMISSION_HOLDER
SECURITY_SCHEME
,SECURITY_LEVEL
,SECURITY_SCHEME_LEVEL
You can manage syncing of these tables on the Schema tab of your Fivetran dashboard.
NOTE: If you select the
BOARD
group of tables on the Schema tab, Fivetran syncs all boards and related entities that you can access, regardless of the projects you select in the setup form, as well as syncs theSPRINT
table in full. TheBOARD
group of tables does not depend on the selected Issue sync mode and may increase MAR.
General sync limitationlink
Since Jira does not explicitly provide information on object field value changes, we are only able to update field values that were changed in Jira when the issue
endpoint response contains data related to the relevant object. During the sync, we first call the issue
endpoint. Then, as next sync steps, we call all the endpoints corresponding to the issue fields contained in the issue
endpoint response. Lastly, we update the old values of the relevant issue fields with the new values from the endpoint responses.
For example, let's assume the issue
endpoint response contains an issue item with the status
field whose value (id
) is 123
. We then call the status
endpoint and, for a status item with id = 123
in the response, the value of the name
field is resolved
. Later, in Jira, the name of the status with id = 123
is changed to fixed
. We are only able to update the value of the name
column to fixed
in the STATUS
destination table once we sync a change in your Jira source that includes an issue with the status
field whose id
is 123
and the updated name
value is fixed
.
User data sync limitationlink
Fivetran may not sync complete data for theemail
and username
columns because the Jira REST API may not return the corresponding data. Due to their compliance with the GDPR laws, Atlassian restricts the visibility of user personal data based on the user profile privacy settings. Read Atlassian's Deprecation notice and migration guide for more information.
NOTE: This limitation applies to Jira Cloud installations.
Syncing empty tables and columnslink
The Jira connector doesn't support the creation of empty tables in your destination. We create a table in the destination only if we can retrieve the table data from the source. If Jira doesn’t return data for the source table, we don’t create the table in your destination. However, we support the creation of empty columns in your destination tables.
Schema informationlink
This schema applies to Jira connections set up after September 10, 2020.
To zoom, open the ERD in a new window.The FIELD
table contains system information about the Jira issue field such as ID, name (as it is displayed in Jira UI), whether it is custom, and whether it is an array field.
The ISSUE
table contains values of non-array system fields.
The ISSUE_FIELD_HISTORY
table contains custom field values, their historical changes, and historical changes of non-array system fields. See the Historical changes section for details about how we track historical changes.
The ISSUE_MULTISELECT_HISTORY
table contains array field values and their historical changes.
NOTE: The actual field records have the
is_actual
column value set totrue
. Theauthor_id
column stores the identifiers of the users who made changes to a given issue.
This schema applies to Jira connections set up before September 10, 2020.
To zoom, open ERD in new window.
Custom fields informationlink
Jira custom field types mappinglink
Jira type | Destination table / Primitive type |
---|---|
com.atlassian.jira.plugin.system.customfieldtypes:select | FIELD_OPTION |
com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes | FIELD_OPTION |
com.atlassian.jira.plugin.system.customfieldtypes:multiselect | FIELD_OPTION |
com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons | FIELD_OPTION |
com.atlassian.jira.plugin.system.customfieldtypes:cascadingselect | FIELD_OPTION |
com.deiser.jira.profields:profields.customfield.type.list | FIELD_OPTION |
com.pyxis.greenhopper.jira:gh-epic-link | EPIC |
com.pyxis.greenhopper.jira:gh-sprint | SPRINT |
com.atlassian.jpo:jpo-custom-field-parent | ISSUE |
com.onresolve.jira.groovy.groovyrunner:single-issue-picker-cf | ISSUE |
com.onresolve.jira.groovy.groovyrunner:multiple-issue-picker-cf | ISSUE |
com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf | String |
com.atlassian.jira.plugin.system.customfieldtypes:labels | String |
com.atlassian.teams:rm-teams-custom-field-team | TEAM |
com.pyxis.greenhopper.jira:gh-lexo-rank | String |
NOTE: The value of each level of the cascading select field is represented as a single entry in the
FIELD_OPTION
table. The child value entry contains a link to the parent value in theparent_id
column.
Jira Service Management (formerly Jira Service Desk) custom field types mappinglink
Jira type | Destination table / Primitive type |
---|---|
com.atlassian.servicedesk:sd-customer-organizations | ORGANIZATION |
com.atlassian.servicedesk:sd-sla-field | SLA |
com.atlassian.servicedesk:sd-request-feedback-date | DateTime |
com.atlassian.servicedesk:sd-request-feedback | Integer |
com.atlassian.servicedesk:vp-origin | REQUEST_TYPE |
com.atlassian.jira.plugins.service-entity:service-entity-field-cftype | SERVICE |
com.atlassian.servicedesk.approvals-plugin:sd-approvals | APPROVAL |
API endpointslink
Click External Link in a table header in the ERD to navigate to the Jira API documentation section that describes the corresponding endpoint.
Custom fields warning loglink
If your Jira object contains a custom field that we don't support, you will see the skip_processing_field
Warning during the initial sync.
Custom field feature requestlink
If you don't see a custom field you'd like to sync listed, reach out to our Support Team.