How to Set Up Incremental Refresh
Please note that incremental refresh is supported only for specific tables. Refer to the list of supported tables for details.
Incremental Refresh Overview
Incremental refresh updates data without reloading the entire dataset from scratch. Instead of processing the whole dataset, it only adds or updates the parts that have changed since the last refresh.
new This feature is now supported by the Power BI Connector for Jira Cloud.
Please refer to the list of supported tables for details.
Please follow the guide below on configuring incremental refresh for Issues. The specific OData protocol used by the Power BI Connector for Jira does not support the Date/Time/Timezone data type. As a result, you will need to manually include a data type conversion in your query.
Supported Tables
A list of tables that support incremental refresh includes: Issues, Issue Custom Fields, and History-related tables (IssueAffectsVersion, IssueFixVersions, IssueLinks), Service Management Custom Fields, and Feedback.
Custom Fields Support:
Custom fields exported as a column in the Issues table will not impact incremental refresh functionality.
Custom fields exported as a separate table must be searchable.
Module | Table Name | Table Id | Column |
---|---|---|---|
Jira Work Management
| Issues | Issues | CREATED |
Issue Custom Fields | CustomFields | ISSUE_CREATED | |
Issue Links | IssueLinks | ISSUE_CREATED | |
Issue Fix Versions | IssueFixVersions | ISSUE_CREATED | |
Issue Affects Versions | IssueAffectsVersions | ISSUE_CREATED | |
Jira Service Management | Service Management Custom Fields | ServiceDesk | ISSUE_CREATED |
Feedback | Feedback | ISSUE_CREATED |
Incremental Refresh Configuration
The setup process for incremental refresh involves the following steps:
→ creating parameters
→ customizing the query
→ defining the incremental refresh policy
→ publishing your model to Power BI Service
→ setting up refresh on Power BI Service.
Parameters
The parameters must have the constant names: RangeStart and RangeEnd. These are case-sensitive and must be of the Date/Time data type. No other data types are supported for incremental refresh.
Query
In Power Query Editor, you’ll need to customize your query. Simply copy and paste the provided query, substituting your variables as required. This customized query will serve as a filter for your data.
Incremental refresh
To define an incremental refresh policy, specify the range of historical data to retain and the time period to refresh. This partitions your dataset into time-based segments, such as days or months. During refresh, only the most recent partitions are updated, while historical data remains unchanged.
Power BI Service
After publishing, your model appears in the user's workspace in the Power BI Service. During the first refresh, both historical and incremental data are loaded. Subsequent refreshes load only incremental changes.
To begin setting up incremental refresh, please follow the steps outlined below.
This guide starts with data transformation. If you're unsure how to export data from Jira Cloud to Microsoft Power BI, please refer to this page for detailed instructions.
Right after the OData source is connected to Power BI, in the Navigator window, select Transform Data. If the data source has already been exported, select Transform Data from the Power BI ribbon.
Select Transform Data
Select Manage Parameters, and then select New Parameter.
In the Name field, enter RangeStart (case-sensitive).
In the Type field, select Date/Time.
In the Current Value field, enter a start date and time value.
When you configure incremental refresh in Power BI Desktop, these parameters are used to filter only a small period of data that's loaded into the model. When Power BI Desktop publishes the report to the Power BI service, with the first refresh operation the service creates incremental refresh and historical partitions, and optionally a real-time DirectQuery partition based on the incremental refresh policy settings. The service then overrides the parameter values to filter and query data for each partition based on date/time values for each row.
For more information, please refer to the Microsoft’s official documentation.
Select New.
In the Name field, enter RangeEnd (case-sensitive).
In the Type field, select Date/Time.
In the Current Value field, enter an end date and time value.
When you configure incremental refresh in Power BI Desktop, these parameters are used to filter only a small period of data that's loaded into the model. When Power BI Desktop publishes the report to the Power BI service, with the first refresh operation the service creates incremental refresh and historical partitions, and optionally a real-time DirectQuery partition based on the incremental refresh policy settings. The service then overrides the parameter values to filter and query data for each partition based on date/time values for each row.
For more information, please refer to the Microsoft’s official documentation.
Select OK.
At this stage, you should have two Applied Steps: Source and Navigation.
Right-click the last step, and then select Insert Step After.
Navigate to your query, and then copy and paste the query below, carefully substituting variables.
= Table.SelectRows(Issues_table, each [CREATED] >= DateTime.AddZone(RangeStart,0) and [CREATED] < DateTime.AddZone(RangeEnd,0))
Issues_table is an actual table name
CREATED is an column name
Select Close&Apply.
It may take a few moments for query to be applied. Please wait.
Right-click a table that will be configured, and then select Incremental refresh.
In the Set import and refresh ranges section, move the slider to On.
If the slider is disabled, it means that the Power Query expression for the table does not include a filter based on the RangeStart and RangeEnd parameters. Another possible reason could be incorrect parameter names or data types.
Depending on your specific needs for incremental refresh, configure all required settings, and then select Apply.
When the Refresh only complete days option is selected, the incremental refresh will be adjusted to the last completed day.
The Detect data changes option is not recommended to use, as it can increase server load and slow down refresh performance.
For more information on setting up an incremental refresh policy, please refer to Microsoft’s Official Guide.
Select Publish.
You’ve configured the incremental refresh policy. Next, publish your model to Microsoft Power BI Service and set up the refresh.
After publishing, your model appears in the user's workspace in the Power BI Service. During the first refresh, both historical and incremental data are loaded. Subsequent refreshes load only incremental changes.
Important to Know
Incremental refresh optimizes data exports by splitting data into two sections based on the configured refresh settings:
Incremental refresh section – This section is updated with each refresh.
Archive section – Fully exported only during the initial export and remains unchanged afterward.
Since date ranges are relative to the current date, they shift forward with each export.
Using an immutable field (e.g., CREATED):
✅ Works as expected since the CREATED date remains static.
A newly created issue first appears in the incremental refresh section and is updated as long as it stays within the incremental refresh range.
Once it moves beyond the incremental refresh date range, it enters the Archive section and remains unchanged.
Using a mutable field (e.g., UPDATED):
⚠️ May lead to duplicate rows in the table.
A newly created issue appears in the incremental refresh section and updates as long as it falls within the incremental refresh date range.
If the UPDATED field changes frequently, the issue may stay in the incremental refresh section indefinitely.
If the issue is not updated for a period longer than the incremental refresh range (e.g., if incremental refresh is set to 1 week and the issue is updated daily), it will eventually move to the Archive.
This duplication can cause errors if unique key constraints or relationships exist.