# Quickstart guide

In this quick start guide, we will discover how to install Ativo Programs for Jira, and configure the first Program Increment in 5 steps.

{% embed url="<https://www.youtube.com/watch?v=l6YHBF8hJI4>" %}

### Step 1 – Installation

As a Jira admin, you can install the Ativo Programs app directly in Jira. Click on **Settings > Apps > Find new apps**.

Search for **Ativo**, click on the box, and then click on **Try it free**.

<figure><img src="/files/XNHAqLgad61b2mL7IGXo" alt=""><figcaption></figcaption></figure>

### Step 2 – Permissions

We wil now set the permissions. As a Jira admin click on **Jira admin > Apps > Ativo Programs > Administrators**.

Add the persons or groups you want to give Ativo Programs configuration permissions and click on **Save**.

<figure><img src="/files/KAiD4Qa3BDNS45sxuRcV" alt=""><figcaption></figcaption></figure>

### Step 3 – Teams

Now that we have permissions, we can configure the teams.

Locate Ativo Programs via **Apps > Programs** in the top navigation bar. Click on the **Create Teams** button.

We’ll add a first team. Fill in the **name**, choose a **key** (capital letters). Define if the team is working scrum (sprints) or Kanban. Choose the estimation model they are using.

Define the **filter**, which defines the scope of the issues of the team. Choose one or more **Jira projects**. If needed, we can narrow down the scope with one or more **field filters**.

We’ll now add a second team.

Then click on **Submit**.

<figure><img src="/files/KV1yAynucgrdusaqfPSi" alt=""><figcaption></figcaption></figure>

### Step 4 – ART (program) configuration

Now that we have teams, we can configure the ART (program).

Click on the **Create ART** button in the top navigation selection. Choose an ART **name** and **key** and click on **Create**.

Select the teams you want to add in the ART.

Select the filter for the epics (feature) backlog. This defines the scope of the ART.

For the optional issues filter, you can probably just leave it empty at this moment.

Click **Submit**.

<figure><img src="/files/LmXCaX0hpuOe6srOyTkG" alt=""><figcaption></figcaption></figure>

### Step 5 – PI

Now that we have defined the ART (program), we can configure the PI.

Click on **Create PI**, fill in the **name** and **key**, and define how many sprints you want to add to the period. Click on **Create**.

Set the **start dates** and **end dates** of the sprints.

For the teams working scrum, we’ll define the sprints. If the sprint names have a logical order with number in it, then Ativo will do a suggestion for the next sprints automatically.

If you need to create sprints in teams, you can do so in Ativo directly.

You can leave the optional additional epic and issue filters to the default setting (empty).

Click on **Submit**.

<figure><img src="/files/A16Lbt1La9KnCgQZKXV3" alt=""><figcaption></figcaption></figure>

### Conclusion

We’ve configured and installed Ativo Programs in 5 steps:

* Installation
* Permissions
* Teams configuration
* ART (program) configuration
* PI (period) configuration


# Prerequisites

Validate if the following prerequisites are met before installing and configuring Ativo Programs

* Use **Jira** Cloud, Jira Server (> 7.8.0) or Jira Data Center (> 7.8.0).
* Use a **two layer deliverables structure** composed of epics (called “features” in the application), and underlying tickets (stories, spikes, bugs, tasks …). Sub-tasks and sub-bugs can also be used by teams, but will not be visible on the program planning board.
* When using the **Jira Cloud** platform: we only support ‘**company-managed**’ (‘Classic’) Jira projects. The ‘team-managed’ (‘next-gen’) are not supported, as they don’t support the necessary functionality to collaborate between teams. ([more info](https://support.atlassian.com/jira-service-management-cloud/docs/what-are-jira-service-management-next-gen-projects/))
* Work **iteratively** in periods (called “Program Increments” or “PI” in **SAFe®** terminology) at program level. ([more info](https://ativo.io/docs/period-setup/))
* Teams can work using a **Scrum** or **Kanban** methodology.
* Teams can use **Story Points** or **Man Days** for their estimations, or use **no estimations** at all.
* Teams should use the same **cadence** (sprint start and end dates) within the same PI. There is a tolerance of 2 days for teams starting a bit earlier or later.
* The application is displayed in **English only** (contact support for upcoming language support).


# Installation

Ativo Programs for Jira can be installed from the **Jira administration** section:

![](/files/67pjP4nXIuPLroeeybr3)

1. Log into your Jira instance as an admin.
2. Click the admin dropdown and choose **Atlassian Marketplace** or **Manage apps.**\
   *The Manage add-ons screen loads.*
3. Click **Find new apps** or **Find new add-ons** from the left-hand side of the page.
4. Locate **Ativo** **Programs for Jira** via search.\
   *The appropriate app version appears in the search results.*
5. Click **Try free** to begin a new trial or **Buy now** to purchase a license for **Ativo Programs for Jira**.\
   *You’re prompted to log into MyAtlassian.*&#x20;
6. Enter your information and click **Generate license** when redirected to MyAtlassian.
7. Click **Apply license**.


# Updates

Update Ativo Programs to the latest version.

### Cloud platform

Updates of Ativo Programs on the Jira cloud platform are automatically deployed. There is no action to take.&#x20;

### Data center / Server platform

To update Ativo Programs for Jira Data Center / Server :

1. **Take a backup**\
   \
   Ativo Programs meta-data is stored inside the Jira Database. Jira backup/restore mechanisms can hence also be used on Ativo Programs configuration data.

{% hint style="info" %}
Make sure you have access to the Jira database backup. In an event where only Ativo Programs data need to be restored, you will need to access the Jira backup and extract data from specific tables.\
\
If you don't have easy access to the Jira backup, then also take a backup copy of Ativo Programs configuration data via ***Jira admin > Manage apps > Ativo Programs > Export and import > Export  .*** This data set can be used to directly restore the Ativo Programs configuration data in case of need.
{% endhint %}

2. **Update Ativo Programs**\
   \
   As a Jira Admin, navigate to ***Jira settings > Manage Apps > Manage Apps*** and click on ***Update.***

   <figure><img src="/files/IC6XNttSYmlD9LmmHF22" alt=""><figcaption></figcaption></figure>


# Cheat sheet

This page describes the main steps of a program increment planning and delivery.

### Plan

Use the **plan view in Ativo** to facilitate the Program Increment planning.

<table><thead><tr><th width="208">Activity</th><th width="144.33333333333331">Ativo Admin</th><th width="147">Team Member</th><th width="141">Scrum Master</th><th width="153">Product Owner</th><th width="187">Program Manager</th><th width="166">Product Manager</th></tr></thead><tbody><tr><td>Create sprints</td><td></td><td></td><td>X</td><td></td><td></td><td></td></tr><tr><td><a href="/pages/CE68ciXImacWaTmJNc0j">Configure Period (Program Increment)</a></td><td>X</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td><a href="/pages/erX3Ciznt3Kgm9XIetBi">Create &#x26; prioritize features</a></td><td></td><td></td><td></td><td>X</td><td></td><td>X</td></tr><tr><td>Include features in scope</td><td></td><td></td><td></td><td>X</td><td></td><td>X</td></tr><tr><td>Define Milestones</td><td></td><td></td><td></td><td></td><td>X</td><td>X</td></tr><tr><td><a href="/pages/vQ0dzDysqHgpXVtJrznX">Create &#x26; plan stories according to capacity</a></td><td></td><td>X</td><td>X</td><td>X</td><td></td><td></td></tr><tr><td><a href="/pages/VvGPpBtioMoDBPUPmaRE">Review cross team dependencies, replan.</a></td><td></td><td>X</td><td>X</td><td>X</td><td></td><td></td></tr><tr><td><a href="/pages/AvlWFUY9ZIvTN9xWnOgv">Raise and review risks &#x26; impediments</a></td><td></td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>Define, review &#x26; score objectives</td><td></td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr></tbody></table>

### Progress & replan

Use the **progress views in Ativo** to facilitate the Art Sync and scrum of scrum meetings.

<table><thead><tr><th width="212">Activity</th><th width="138">Ativo Admin</th><th width="143">Team member</th><th width="141">Scrum Master</th><th width="155">Product Owner</th><th width="200">Program Manager</th><th>Product Manager</th></tr></thead><tbody><tr><td>Deliver work and close stories</td><td></td><td>X</td><td></td><td></td><td></td><td></td></tr><tr><td>Close sprints (team level), replan stories.</td><td></td><td>X</td><td>X</td><td>X</td><td></td><td></td></tr><tr><td><a href="https://ativo.io/docs/scrum-of-scrums-and-art-sync-preparation/">Close sprints (program level)</a></td><td>X</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td><a href="https://ativo.io/docs/raise-issues-and-risks/">Update &#x26; review risks &#x26; impediments</a></td><td></td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>Review cross team dependencies, re-plan</td><td></td><td>X</td><td>X</td><td>X</td><td></td><td></td></tr><tr><td>Decide and communicate on priorities</td><td></td><td></td><td></td><td>X</td><td>X</td><td>X</td></tr><tr><td>De-scope / add features</td><td></td><td></td><td></td><td>X</td><td>X</td><td>X</td></tr><tr><td>Score objectives : delivered value</td><td></td><td></td><td></td><td>X</td><td>X</td><td>X</td></tr></tbody></table>

### Quick Tips

#### Show less stories on the board

* &#x20;Use ***Filters > Team filter*** with ***Add linked Issues*** to only show the issues from your team, together with the links with other teams.
* Use ***View options > Issues > Cross-team dependencies*** to only show issues that have cross team dependencies
* Use ***Filters > Issue type*** to only see the planning of epics (features)
* Use ***Filters > RAG > Amber & Red*** (do not select ‘add linked issues’) to only see the issues that have red and amber indicators.

Use the ***View options > Cords*** to hide cords on the board.

#### Cord colors

* <mark style="color:red;">⬤</mark> Red cord color = needs to replan to respect dependency (negative ‘slack’).
* <mark style="color:orange;">⬤</mark> Amber cord color = needs attention as prerequisite and the issue itself are planned in the same sprint (‘slack’ = 0, this is on a critical path)
* <mark style="color:purple;">⬤</mark> Purple cord color = timing of dependency is OK (positive ‘slack’)

#### Handle delays & re-planning

Unfinished stories in a sprint should be re-planned in another sprint.

Unfinished epics (features) should **not** be replanned. Ativo will detect if underlying issues are planned in later sprints than the feature itself was originally planned, and show this in the progress view.

Epics (features) added or removed from the PI can be tagged with ‘added/removed’ commitment levels. Use ***Filters > Commitment level*** (select ‘Add linked issues’) to switch between original planning and planning with added/removed features.

#### Filter

Note: filters affect all sections of the board, including the risks & impediments and the burn-up chart.


# Permissions

This page describes the permissions for Ativo Programs. Read the [security policy](https://ativo.io/security-policy/) instead for more information about the organizational and technical security measures taken.

### Ativo Programs administrators role

Only ***Ativo Programs*****&#x20;administrators** can change the Ativo Programs configuration (e.g. update the team, program and period configuration.

### Add/remove Ativo Programs administrators

Global **Jira Administrators** can appoint Ativo Programs administrators:

* Open the Manage Apps page *via **Jira Setting > Manage apps***.\
  ![](/files/5jjVGUjiTQmi7Ywcpot8)
* Click on ***Ativo Programs admin*** in the left hand side navigation bar.
* Add or remove Jira groups or Jira users
* Click 'Save'<br>

  <figure><img src="/files/jsz7xH7zGEhJ78a2r5fG" alt=""><figcaption></figcaption></figure>

### Permissions for Jira users

Jira users will **not** be able to see more **business data** in Ativo then they should.&#x20;

**Ativo strictly follows the Jira permissions**. Users cannot see more business data in Ativo than that they are allowed to see directly in Jira. Hidden projects, issues, ... remain hidden in Ativo as well. If a user opens a Program view that contains hidden issues, those issues remain hidden for that person.

As a best practice, teams within the same program are advised to have *read access* on each other’s Jira projects, in order to see the consolidated program board.

Updates done in Ativo (e.g. plan an issue in a new sprint) require the user to have the needed permissions in Jira. In case of insufficient permissions, a warning or error is shown to the user.&#x20;

Any logged in Jira user can see the Ativo configuration meta data, including:&#x20;

* Program names
* Names of teams participating in a PI
* Program Increment meta data (objectives, planned capacity, milestones)


# Team

A team is a closely collaborating group of people, contributing to one or more programs (Agile Release Trains - ARTs).

<img src="/files/3ZSrh6w3ZHxuG4xLqPzC" alt="Teams can contribute to multiple programs (release trains) at the same time." width="375">

Only *Ativo Programs for Jira* **administrators** can create, edit and delete teams ([more info](/configuration/permissions)).

Ativo Agile Programs for Jira uses its own team configuration. Jira cloud also has team definitions, but these do not contain the necessary scope information. Sorry 🧡.

You can align with the "Advanced Roadmaps / Plan" team definitions (included in Jira Premium and Data Center) by referring to the the Jira boards or JQLs in Ativo.&#x20;

### Create a new team (based on a Jira board)

To create a new team, using a Jira board:

* Open Ativo Programs&#x20;
* Click on ***Settings*** and then on **Teams**
* Click on the **Create Team** button
* Select the dedicated **Jira board** that the team is using. Ativo will use the Jira filter of the board as the scope for the team, as well as the board mode and estimation settings.
* Click **Create**

<figure><img src="/files/YykXuWQylRqB77lCqEHb" alt=""><figcaption></figcaption></figure>

### Supported Jira boards

A Jira board is supported if it:

* Has a [JQL filter that is supported in Ativo](/configuration/project-and-jira-jql-filters)
* Is a Scrum or Kanban board
* Has an estimation that is either Story Points, Man Days or Issue Count. When using Story Points, all Ativo teams should use the same Jira field. A Jira admin can select the Story Points field to use in Jira via (Jira settings > Apps > Ativo Programs > Fields ). If not selected, the default Jira Story Points field is assumed.\ <br>

  <figure><img src="/files/u34yhpBwgDzw3rbJRBN0" alt=""><figcaption><p>Jira admins can set the Story Points field to use in Ativo.</p></figcaption></figure>

### Create a custom team

Create a 'custom team' if the team is not using a dedicated Jira board (e.g. no board exists, or it is shared with multiple teams).&#x20;

To create a custom team, do the same steps as above when creating a team using a Jira board. When the modal is open, select ''

* Open Ativo Programs&#x20;
* Click on ***Settings*** and then on **Teams**
* Click on the ***Create Team*** button
* Fill in the configuration information (see below)
* Click **Create**
* Click **Submit** (on the main team overview page)

Configure a new team:

* **Team name** - used as a label, e.g. on the program board.
* **Team key** - used when importing / exporting data. Choose something meaningful.
* **Mode** - set to *Scrum* or *Kanban.* With *scrum*, a team will plan stories in sprints. With *Kanban*, the *due date field* is used instead to map stories to sprints at program level.
* **Estimation** - set to *Story Points*, *Man Days* or *No estimations*, depending on how the team estimates work. Each team can use its own estimation method. Totals at feature and program level will be consolidated with a standard conversion rate of 1 MD = 1SP for teams using man days, and 1 ticket = 1 SP for teams not using estimations.
* **Jira filter (scope)** - let Ativo know which Jira issues the team is working on. the scope can be defined as a Jira projects (in case each team has a separate project), or a more complex filter in case teams are working on multiple projects, or are sharing Jira projects.&#x20;

{% hint style="info" %}
If you haven't decided on how to structure team scopes yet in Jira, we suggest to use a “one Jira project per team” configuration. This allows you to create flexible and agile workflows for each team.&#x20;
{% endhint %}

<figure><img src="/files/VtPZAwEkaWsoh8HKsgTc" alt="" width="563"><figcaption><p>Team creation form</p></figcaption></figure>

### Switch between "Jira board" and "custom" team configurations

You can switch a team configuration from 'Jira board' to 'custom' and vice-versa. To update an existing team, click on the 'more' and then 'edit' button of the team. Then click on 'Configure team in a custom way' or 'Configure team using a Jira board'.

How to tell the difference between both configurations? Teams configured using a 'Jira board' have a 'Jira board' selection. Teams configured in a custom way do not refer to a 'Jira board'.

When possible, use a 'Jira board' configuration, as it allows for a faster sprint selection in the Period configuration screen.

<figure><img src="/files/YDsWrp5Gz5DnCI4KYeaH" alt=""><figcaption><p>Edit a team configuration</p></figcaption></figure>

<figure><img src="/files/0ReWQ3ScEluuQW2pX3rm" alt="" width="563"><figcaption><p>Switch from 'Jira board' to 'custom' team configuration</p></figcaption></figure>

<figure><img src="/files/Zr9XLMS7Orq0N8TxUJ8x" alt="" width="563"><figcaption><p>Switch from 'custom 'to 'Jira board' team configuration</p></figcaption></figure>

### Archive a team

Archiving a team will remove the team from all programs and all periods.&#x20;

To archive a team:

* Click on the more options button and then on archive.
* Confirm you want to archive the team.
* Click on ***submit***

<figure><img src="/files/A0WyHuBUydXGdV1BEGJL" alt=""><figcaption><p>Archive a team</p></figcaption></figure>

You can unarchive an archived team by clicking on the more options button and then selecting unarchive.<br>


# ART (program)

An Agile Release Train (ART) or program is a temporary organizational structure, used to deliver business value. It contains a set of agile teams that work closely together.

### Create an ART

An ART can be created once the [teams are configured](/configuration/team).

Only *Ativo Programs for Jira* **administrators** can create, edit and delete ARTs ([more info](/configuration/permissions)).

To create a new ART:

* In the ART selector in the top navigation, click on ***Create ART***
* Enter an ART **name** and **key**, then click **Create**.
* Add **teams** to the ART. Use the handle on the left to drag teams into the desired order.\
  You can later change the team composition for a specific PI in PI settings.

<figure><img src="/files/777ma5gCsPYhpZ8cjiC5" alt=""><figcaption><p>Adding teams to the program.</p></figcaption></figure>

* Select how the ART Feature (Jira epics) pool is built. You can either:

  use a Jira filter to define the Feature pool, for example if Features are managed in a separate Jira project or backlog, or\
  use the team filters, if Features are already included in the teams’ Jira data<br>

  <figure><img src="/files/5qLBEVrlDp5WWerfcuHr" alt=""><figcaption></figcaption></figure>
* Select how the ART Team-level item scope is defined.\
  Team-level items come primarily from the team filters. You can add additional rules here that apply to all PIs in this ART.\
  \
  To keep the board focused, you can limit scope to only show team-level items whose parent Feature is also in scope for the PI.\
  \
  If you are unsure, use the default option. You can always change this later.
* Click ***Save***

#### ART team-level item scope exceptions

You can manually include specific team-level items in a PI, even when they do not match the ART team-level item scope rules.

For example, you may configure the ART to show **Only team-level items under Features in PI scope**, so the board only includes Stories, Tasks, Bugs, or custom work types whose parent Feature is in the PI. If a few additional items still need to appear on the board, add them as exceptions.

To add an exception, set the item’s [**Program / ART PI Supplementary** field](/advanced/ativo-programs-custom-fields) in Jira to the combined ART-PI key:

`<ART key>-<PI key>`

For example:

* ART key: `ARTABC`
* PI key: `2027Q2`
* Combined ART-PI key: `ARTABC-2027Q2`

After this value is added to the work item, the item is included in the PI even if it does not match the ART team-level item scope rule.

### Modify an ART configuration

To modify an existing ART:

* Click on **Settings >&#x20;*****ART*** in the top navigation bar.&#x20;
* Update the settings as needed.
* Click **Save**.

### Archive an ART

To archive an ART:

* Click **Settings >&#x20;*****ART*** in the top navigation bar.
* Click the **•••** menu in the top right, then select **Archive ART**.
* **Confirm** that you want to archive the ART

You can always unarchive an ART later.


# PI (period)

A Planning Interval (PI) or period, is a timebox in which an increment of an ART is planned and delivered.

### Create a new PI

To create a new PI

* In the top navigation bar, open the PI navigator
* Click **Create PI**
* Enter a **name** and **key**. The key must be unique and should be meaningful, for example `2027Q1`.&#x20;
* Choose the number of sprints (iterations)
* Click **Create**

<figure><img src="/files/1T7y6wtUIpeBw2a7W7Y6" alt=""><figcaption></figcaption></figure>

#### Configure the shared PI cadence

Complete the shared PI cadence configuration. A PI cadence can be reused across ARTs.

* Define the **start** and **end dates** for each PI sprint (iteration).&#x20;

#### Configure this ART in the PI

Then configure the PI for the selected ART:

* Confirm whether you want to use the default team configuration, or change it for this PI.
* Map the PI sprints to the Jira sprints of each team working in **Scrum**.\
  Use **Map Jira sprints** or **Create Jira sprints** to do this automatically, or map them manually by selecting a Jira sprint for each team / PI sprint combination. By default, only open sprints are shown. Click **Show closed sprints** to include closed sprints as well.
* Choose how this PI includes **Features** (Jira epics) from the ART Feature backlog:
  * **Select Features manually** on the Plan board
  * **Show Features automatically with a Jira filter**
  * **Show Features automatically based on Jira Plans dates**
* Choose whether to refine the **Team-level item scope** for this PI. Team-level items come from the team filters, with optional ART rules and optional PI filtering.
* Click **Save**

{% hint style="info" %}
You do not need to configure all sprints at the same time. You can map some sprints, save your progress, and come back later.
{% endhint %}

### Map Jira sprints based on dates

Use **Map Jira sprints** to auto-assign sprints based on Jira sprint start and end dates.

The start and end dates of the Jira sprint should approximately match the dates of the PI sprint.

This only works for [teams configured with a Jira board](/configuration/team#switch-between-jira-board-and-custom-team-configurations).

<figure><img src="/files/jiktDNHeATwIdnl2XCFb" alt=""><figcaption></figcaption></figure>

### Create Jira sprints

Ativo can create missing sprints directly on the Jira boards.&#x20;

This only works for [teams configured with a Jira board](/configuration/team#switch-between-jira-board-and-custom-team-configurations).

To create missing Jira sprints:

* Click **Create Jira sprints**
* Set the sprint start and end hours
* Click **Create sprints**

<figure><img src="/files/uhEIxBlwhxN8zdV1qB9f" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/rAYRgIk4PdvpuUNoCvaB" alt=""><figcaption><p>Confirm sprint creation</p></figcaption></figure>

### Can't find my sprint?

Did you create a sprint but cannot find it in the dropdown list?

First:

* click **Refresh sprints** if the sprint was created recently
* click **Show closed sprints** if you also want to see closed sprints

<figure><img src="/files/vST1FWIiMERmUozGPnse" alt="" width="281"><figcaption><p>Sprint selection options</p></figcaption></figure>

If the sprint still does not appear, the next step depends on how the team is configured.

#### Jira board teams

For teams configured using a Jira board, the sprint must be created on that board.

#### Custom teams

For teams configured in a custom way, Ativo can only show sprints from Jira Scrum boards whose JQL filter explicitly refers to the Jira projects used in the team configuration.

Because of Jira API limitations, other sprints cannot be shown.

For example, if team **Bear** uses Jira project **Bear**, the board filter must explicitly refer to that project.

To add your sprint to the list:

* Open the Jira board where the sprint was created
* Open the board configuration (context menu on the top right)
* In the **General** tab, locate the JQL filter
* Click **Update filter**
* Add an explicit reference to the Jira project(s) used by the team. For example, replace `category in (…)` by `project in (…)`
* Save the filter

<figure><img src="/files/FKIKbPT2bW0s8QHS28CH" alt=""><figcaption><p>The Jira board JQL must contain a reference to a Jira project used in the Ativo team configuration</p></figcaption></figure>

### Modify a PI configuration

To modify an existing PI:

* Select the **PI** in the PI picker in the top navigation
* Click on ***Settings > PI***

### Completing a sprint

For more information, see [how to complete a PI sprint](/scrum-of-scrums-art-sync/scrum-of-scrums-and-art-sync-preparation) .

### Archive a PI

To archive a PI:

* Click on **Settings > PI** in the top navigation bar.
* Click the **•••** menu in the top right corner, then click **Archive PI**
* Confirm that you want to archive the PI


# Project and Jira (JQL) filters

The scope of Teams,  Programs and Periods (Program increments) are defined based on project and Jira (JQL) filters

### Usage

Ativo programs supports the use of *Project* and/or *Jira (JQL) filters* to configure the scope of Teams, Programs and Program Increments (Periods) :

* In ***Settings > Teams*** Use a filter to define the scope of a team.

  <figure><img src="/files/OvVSZSqdGvpZstrbVJtL" alt=""><figcaption></figcaption></figure>
* In **Settings > Programs** You can use filters (optionally – depending on the approach you chose) to refine the scope of epics (features) and issues included in the program.
* In **Settings > Periods** You can use filters optionally to further refine the scope of epics (features) and issues included in a program increment.

### [Project vs Jira filter](#user-content-fn-1)[^1]

There are two ways in Ativo to define a filter:

* With a Jira project(s) selection
* With a Jira (JQL) filter

Click on ‘Switch to Project filter’ or ‘Switch to Jira filter’ to select your preferred mode.

![](/files/lHL68glkDqTbufQjid3T)

### Project filter

Use a project filter to define the scope simply based on a Jira project. You can also select multiple Jira projects. If you only want to select a part of the issues in a project, then click on ‘Add a filter on a field’ to refine the scope based on a Jira field.

Note: only a subset of Jira fields (e.g. Single select custom fields, Multi select custom fields) are available to be used in a Jira Project filter. If you’d need more options, click on “Switch to a Jira filter” instead.

![](/files/s1naih2rcYp0Z67IeOJU)

### Jira (JQL) filter

You can use a Jira (JQL) filter to define the scope for more complex scenario’s, or if you simply prefer to use Jira filters directly.

You can type in a part of the name to let Ativo search for that filter. When selected, information is displayed about the filter.

![](/files/xfrk7BSz3lXmR9Zroaxb)

### Jira filter restrictions

Ativo Programs supports all Jira (JQL) filters as long as they are:

* **Shared.** Filters must be shared in order to be used in Ativo Programs. Filters that are not shared can only be used by the author, and prevent any collaboration.
* **Contain a project**. Filters must contain at least a Jira project or Project category. This ensures we are adding Ativo custom fields to the right screens.
* **Only contain Company Managed Projects.** Team-managed projects are not supported to be used in Ativo Programs, as they lack collaboration functionalities (e.g. contributing to an Epic in another project).

Note: the ***create new issue inline*** panel only supports filters with simple JQL queries.

### Ordering

For Project filters, the ordering is done based on the ‘Rank’ field.

For Jira (JQL) filters, the ordering of the filter is used.

Note:

* The “Order by” used in the optional program issue filters overrides the “Order by” from Team filters.
* The “Order by” used in the optional period (program increment) filters overrides the “Order by” from Team and Program filters.
* If no order is specified, the ordering is done based on the Rank field by default.

[^1]:


# PI cycle

Agile organizations value individuals and interactions over processes and tools. They prefer responding to change over following a plan. \[[agile manifesto](https://agilemanifesto.org/)]

So instead of planning the full program ahead in details, we plan a program in cycles of different periods (called “Program Increments” in SAFe® ).

We’ll use lean visualization techniques to promote human interaction and to keep the plan thin and on point.

The main steps of the cycle are visualized in Ativo Agile Programs for Jira:

<figure><img src="/files/zh7aBIO7IldEymuNZ87U" alt=""><figcaption><p>Example of a program cycle visualization in Ativo Agile Program for Jira.</p></figcaption></figure>

#### Select or create a program

When you open the application for the first time, you are invited to select an existing program or create a new program.

A program is created by an Ativo Agile Programs for Jira Admin. Refer to the [security configuration documentation](/configuration/permissions) for more information on how to appoint an administrator. Refer to the [team configuration](/configuration/team) and [program configuration documentation](/configuration/art-program) for more information on the configuration of teams and programs.

#### Select or create a period

Once you’ve created the teams and selected a program, you are invited to select a period or create a new period. A period contains a set of sprints.

A period is created by an Ativo Agile Programs for Jira Admin. Refer to the [period configuration documentation](/configuration/pi-period) for more information on the creation of a period.

#### Prepare and prioritize

Each program has a prioritized backlog of features. The business (Product Manager) defines the priority and selects a shortlist of features for the next period.

A feature is in Jira represented as an epic. The feature list is saved in a Jira project.

#### Plan and improve

As a next step, teams plan in the features and stories in the sprints of the period. Each feature is owned by a team ‘in the lead’. This ‘team in the lead’ coordinates the planning of the stories with other teams.

When a team has a story as part of a feature of another team, this story is a cross-team dependency between both teams.

More information:

* [Plan stories](https://ativo.io/docs/plan-stories/)
* [Plan features](https://ativo.io/docs/plan-features/)
* [Plan cross-team dependencies](https://ativo.io/docs/plan-dependencies/)
* [Plan issues and risks](https://ativo.io/docs/raise-issues-and-risks/)

#### Deliver and learn

Teams are responsible for the delivery of the stories and features. The progress is reviewed in the Sprint review and Scrum of scrum / art-sync meetings.

Ativo Agile Programs for Jira provides dashboards to show the issues,  risks, dependencies, progress and metrics per team and per program.

More information:

* [Team progress](https://ativo.io/docs/progress-per-team/)
* [Program progress](https://ativo.io/docs/progress/)


# Feature backlog

Each program has a backlog list of features (epics).  Features are in Jira encoded as Epics. In this documentation, feature and epic terms are used interchangeably.

In an agile environment, you want to plan just-in-time. Nevertheless, some preparation is still needed in order to have an efficient Program planning meeting:

* Create features
* Prioritize the features
* Select features for the next period
* Break down features in stories

More information on how to do that can be found on this page.

### Create features

Features contain major business functionality.

To create a Feature:

* Click on the ***Create*** button in the top menu bar
* Select the **project** of the feature
* Select ***Epic*** as issue type (in Jira, features are encoded as epics)
* Fill in the *Epic Name* and *Summary*
* Click on the ***Create*** button\ <img src="/files/FRGR9Me9eTNfiGYFSdpb" alt="" data-size="original">

### Prioritize features

The Product Manager defines the priority of the features within a program.

This priority is visible in a **Kanban board**. High priority features are on top of the list, lower priority near the bottom.

### Add a feature to a period (program increment)

Usually a feature backlog contains too many features to be taken up in one period. A selection of features for the next Period (Program Increment) is done by the business (Product Manager usually) .

To add a feature to a period (program increment):

* Open the Program (release train) and Period (program Increment)
* Navigate to the plan view
* Click on ***Add epic*** (top right of screen)<br>

  <figure><img src="/files/SzQCfz4bzNxyeG1ftnvs" alt=""><figcaption></figcaption></figure>
* Select the features. You can bulk import features via the import tab.

<figure><img src="/files/SIBeRyHT1nR7uikI5RoQ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/FhqCm0mwCjZlUxVA2siK" alt=""><figcaption><p>Use the import tab to bulk-import epics (features) in the program increment</p></figcaption></figure>

### Remove a feature from a period (program increment)

To remove a feature from a program increment, click on the '**X**' remove button on the issue in the plan view.&#x20;

<figure><img src="/files/PcVvofImL7HnkNxFisc8" alt=""><figcaption></figcaption></figure>

### Break features down into stories

Teams prepare themselves for the Program (PI) planning. They define stories (bugs, spikes, ..) for the features.

To create a story and link it to a feature:

* Navigate to the team in the plan view
* Click on "***Create issue***"\
  ![](/files/FOUTnFLXzbkMdjwCMEWR)
* Fill in the summary and mandatory fields, and click on *Create*

<figure><img src="/files/Gxb07VVqF6WZuBqFdH2N" alt=""><figcaption></figcaption></figure>

Note: the fields displayed in this form are based on the filter used to define the scope of the team (and optional additional Program issue and Period issue filters).


# Plan work items

Teams plan their stories during the breakout session of the PI Planning meeting. The planning of stories can be done in the project backlog of the team, or directly on the program board.

### Plan a story on the Program Board

To plan a story, simply drag it to the sprint.

<figure><img src="/files/5vxjm2tZQK7tqqVK2CAZ" alt=""><figcaption><p>Plan a story by dragging it to a sprint</p></figcaption></figure>

{% hint style="info" %}
Planning a story directly updates the sprint of the issue in Jira (for teams working scrum), or the due date (for teams that are working kanban).
{% endhint %}

{% hint style="info" %}
The stories that are visible on the board depend on the epics (features) added to the PI. It also depends on the team, program and period (program increment) scope configuration settings.
{% endhint %}

### Plan a story (issue) in the team backlog

To plan a story in a sprint using the Jira team backlog:

* Select the Jira **project** of the team
* Select ***backlog*** in the left navigation bar
* Drag and drop the ***story*** into a sprint<br>

  <figure><img src="/files/yTdx95JcOhk9SkkLqUi5" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Stories created in Jira will be visible after refreshing the Program Board. Click on the 'Refresh' button in the top navigation bar for a quick refresh.
{% endhint %}

### Plan according to capacity

Click on ***View options > Capacity*** to plan according to capacity.&#x20;

<figure><img src="/files/aRpPYwUj8imcgIwz9j86" alt=""><figcaption></figcaption></figure>

The actual load and planned capacity are shown on top of each sprint. Users can update the planned capacity.The load is computed by Ativo Programs.&#x20;

<figure><img src="/files/N1gmMt1I9mSLNaEo3cOB" alt=""><figcaption></figcaption></figure>


# Plan epics (features)

### Plan features

To plan a feature in a sprint:

* Select the period in the period picker (top left)
* Click on ***Feature Plan***
* **Search** on the name of the feature in the *unassigned* column.
* **Drag and drop the** feature from *unassigned* to the desired sprint<br>

  ![](/files/gc8doOlR7iU2W9jy0wuG)

### Add details

The **story points** of a feature are defined by the number of story-points of the underlying stories (excluding dependency stories from other teams – those are kept separately). If needed, one can also directly define the story points at feature level. This can be useful in case underlying stories are not yet created in Jira, but we already want to highlight the story points at feature level.

The **RAG** (**R**ed, **A**mber, **G**reen) indicator visually represents the health status of the feature. The color codes typically mean the following:

* Green means the issue is on track.
* Amber means a serious risk or issue occurs but mitigation is still possible.
* Red means a major risk or issue occurs and attention from management and peers is needed.

Issues and risks can be added the RAG comment field.

![](/files/440q29rCFW6JEjpJphvE)

To add details to a feature:

* Click on the **details toggle** in the top navigation bar
* Update the field.

### Swimlanes

Click **View Options > Epic Swimlanes** to view work items grouped by epic in a swimlane. Work items without parent epics or with parent epics outside of the PI are grouped in a separate **“other”** swimlane. The Epic Swimlanes view is available on both the **Plan** and **Team Breakout** pages.

<figure><img src="/files/qBFl7GlLJIrIOHSDmKud" alt=""><figcaption></figcaption></figure>


# Plan dependencies

### What is a cross-team dependency?

![](/files/Z97PArUKzsUagqCyRm2a)

A cross-team dependency is a story in one team that is either:

* part of a **feature** that is owned by **another team**
* linked as “blocked by” or “blocking” with a **story** of **another team** in the program

### See cross-team dependencies

The program plan (PI planning) view shows cross team dependencies with cords:

![](/files/jAFiWpQL7VcgUQSr0Gny)

###

### Dependency cords colors

Dependencies have three possible cord colors:

* <mark style="color:purple;">**Purple**</mark> : the dependency is planned "in order".
* <mark style="color:orange;">**Amber**</mark> : the dependency is planned between two issues in the same sprint. This could be a risk.
* <mark style="color:red;">**Red**</mark>: the dependency is planned "out of order". This means the prerequisite is planned in a later sprint, or the prerequisite is stil in the backlog.

### Add, update or remove (cross-team) dependencies

To plan or update a (cross-team) dependency :

* Select the issue (story)&#x20;
* Click on the expand button

<figure><img src="/files/4CEFs8Lfxn63LCEEb0a3" alt=""><figcaption></figcaption></figure>

* Click on Dependencies
* Add / remove prerequisite dependencies (left side), or outgoing dependencies (right side). <br>

  <figure><img src="/files/u29W1BTrmqylAwaUnr0f" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Ativo Programs by default displays 'blocking/is blocked' and 'child/parent' dependencies on the board. jira admins can change the dependencies via ***Jira settings > Ativo Programs > Issue link**.*
{% endhint %}

### Hide or filter dependency cords

Click on ***View options > Cords*** to select the cords you'd like to see. E.g. one can choose to hide all cords.

<figure><img src="/files/huyTQpuUfy2AJFLeaznp" alt=""><figcaption></figcaption></figure>

Select the ***Advanced view options*** to select the cords you'd like to see more precisely. <br>

<figure><img src="/files/7lVY5izMBrK9DpQKlyvf" alt=""><figcaption></figcaption></figure>


# Raise risks and impediments

### Update the RAG and risk / impediment description on the program board

When managing a program, it is important to manage the key issues and risks that are raised from the teams.

Program impediments and risks can be linked to a feature or an issue (story) in a team.

To raise a risk or impediment :

* Click on the ***Programs*** button in the top menu bar
* Select in the left navigation bar the ***Program*** and ***Period***
* Click on ***plan*** in the left navigation bar
* Click on the **c**hevron (▼) to open the detailed view of an epic/feature or issue/story.
* Set the ***RAG indicator*** to Amber (program risk / issue with mitigation action) or Red (major program risk or issue without a solution).
* Click on ***Add a risk or impediment*** to describe the risk or impediment. It is a good practice to also include a description of the mitigation action (if known).

### See the RAG and risk / impediment description on the progress board

To see the RAG status and risk/impediment descriptions at team / program level:

* Click on ***progress*** in the left navigation bar, and then on ***Program Total*** or ***Team***
* Reviews the risks and impediments in the top-left section of the dashboard.

  <figure><img src="/files/JfabGaPYLB3HOBAUQP3E" alt=""><figcaption></figcaption></figure>


# PI Objectives

### Display PI Objectives

To display PI Objectives, click on ***View Options > Objectives***

<figure><img src="/files/3DQV2bSuflwZ5z6sm9ik" alt=""><figcaption></figcaption></figure>

PI Program level objectives are shown on top of the page.\
PI Team level objectives are shown in each team plan section<br>

<figure><img src="/files/MjQEXdmEwK6NJuH4EBXW" alt=""><figcaption></figcaption></figure>

### Update PI Objectives

Click on the ***Update program objectives*** or ***Update team objectives*** links to open the edit objectives modal. Drag & drop objectives in the preferred order.

<figure><img src="/files/D4SW5eUWmL8oZM0YtgLn" alt=""><figcaption></figcaption></figure>

Use the *update objectives form* to add, update or delete PI objectives. Click on ***Submit*** to confirm the modifications.&#x20;

<figure><img src="/files/K8bEkwTj7YEwD1P8sY6m" alt=""><figcaption></figcaption></figure>

### Predictability measure

The ***Predictability Measure*** indicates how predictable (reliable) the planning is. This metric is computed as '*Total delivered value*' divided by '*Committed planned value*'. A figure between 80% and 100% typically means the planning is considered to be predictable.

The ***planned business value*** is an appreciation by the business owners on the business value of the objective. This figure is estimated during the PI planning session (so before any delivery is done). The figure is typically expressed between 1 (very low business value) and 10 (very high business value)

The ***delivered business value*** is an appreciation by the business owner on the effectively delivered business value. This figure is typically provided at the end of the last sprint of the PI, during the system demo. &#x20;

The predictability measure is show when the *planned value* and *delivered value* are filled in.

<figure><img src="/files/fZjV83bnwzgSWF30QrtY" alt=""><figcaption></figcaption></figure>

### Map PI Objectives to Epics

{% hint style="info" %}
This functionality is currently released as ***BETA functionality***. Please report [feedback to our support team](https://www.ativo.io/contact).
{% endhint %}

#### Enable PI objective mapping

*Ativo Programs for Jira Admins* can enable the epic (feature) mapping functionality by clicking on ***Update objectives > Settings > Map PI Objectives to epics (features) for this PI***. This will enable the mapping for PI objectives at program and team level for this PI.

<figure><img src="/files/NvepTB37gpseJ1W9GK3B" alt=""><figcaption></figcaption></figure>

#### Map epics

Once enabled, use the ***Update program objectives*** or ***Update team objectives*** form to add or remove epics (features) per objective.

<figure><img src="/files/R8XGb3jbu0Bti3cKnh0t" alt=""><figcaption></figcaption></figure>

#### See progress

Progress of a PI Objective is computed based on the progress of the mapped epics and underlying stories. The metrics take all issues in on the program board (PI) into account (so from all teams, not only from the team owning the objective). Issues outside the program board (PI) are not considered.

<figure><img src="/files/mnzQXcioCbv2mKRq6Ck0" alt=""><figcaption></figcaption></figure>

#### See progress details

Click on the ***expand*** or ***expand all*** buttons to see the progress details per objective.

<figure><img src="/files/leWoA5h6xbmUWG9JRaFL" alt=""><figcaption></figcaption></figure>

### Export

[Export the PI objectives to Excel (CSV format)](/advanced/export-issues-pi-objectives-milestones-and-capacity-to-excel).


# Capacity

{% embed url="<https://www.youtube.com/watch?v=SCfy1kGrPIs>" %}

###

### Show capacity

To display capacity, click on ***View Options > Capacity***

The current load (left) and capacity (right) figures are shown on top of each sprint.

<figure><img src="/files/mVoILWOntyJnha6UhYwF" alt=""><figcaption></figcaption></figure>

### Update Capacity

The capacity (right figure) represent the velocity of a team. Click on the capacity number (the right one) and enter a new value.

You can define a different capacity for each sprint. You ca\&n hence account for longer sprints, ramp-up and ramp-downs, empty sprints (e.g. last sprint in a PI to prepare the next PI).

### Update Load

The load is automatically computed based on the issues (stories) present in the sprint. To update the load, simply replan the stories or change the estimation (click on "expand" button on an issue and then update the estimation.)

### Estimation models

The following estimation models are supported:

* Story Points
* Man Days
* No estimations (simply count the number of tickets)

The estimation model can be changes per team: in Atiov Programs > Settings > Teams > Estimation.

When using Man Days, you can choose to use " original estimations" or "remaining work". Click on the load button to make a selection.&#x20;

<figure><img src="/files/iuHz9I7CfJRcVpt1TtDM" alt=""><figcaption></figcaption></figure>

### Epic level estimations are excluded

To avoid double counting, Ativo will ignore the estimations at epic level for the sprint capacity load.&#x20;

Epic-level estimations are meant to be delivered over a longer term period, and are not attributed to a single sprint.

The sprint load represents the sum of story-level estimations in that sprint.


# Team breakout

Use the team breakout page to conveniently view the PI plan from the perspective of a specific team.

<figure><img src="/files/JvURNmOVd61zCdNWXxoR" alt=""><figcaption><p>Team breakout room</p></figcaption></figure>

Open the team breakout by selecting 'Team breakout' in the page navigation. Then select the program/ART, period/PI, and team in the top navigation.

### Issues shown

The team breakout shows all the issues (features and stories) within the scope of the selected team for this PI. For other teams, only issues linked to the selected team will be shown.This helps the team focus on the issues that matter most to them.&#x20;

Linked issues are either:

* Parent / child issues of issues of the selected team
* Blocked / is blocked by (\*) issues of the selected team

(\*) This is the default setting. A Jira admin can configure Ativo to use another issue link type.

### Filters

Click on *Filter* to open the filter navigation bar. You can use the same filters as on the plan view (e.g. epic, release, or custom quick filters).&#x20;

<figure><img src="/files/AmStTYrfS6KpuceSJ6md" alt=""><figcaption><p>Filter navigation bar</p></figcaption></figure>

### View options

Click on *View options* to customize the layout of the board.&#x20;

Examples:

* "All cords": Refine which cords you'd like to see
* "Card layout": Add extra fields on the cards
* "Objectives": See team objectives
* "Capacity": See actual load vs defined capacity

<figure><img src="/files/otSOPhsSnifrhqUZByvc" alt=""><figcaption><p>View options navigation bar</p></figcaption></figure>


# Scrum of scrums and art-sync preparation

### Scrum of scrums and art-sync preparation

A program is followed up with a Scrum of Scrums (meeting between program management and the scrum masters) or the Art-Sync (meeting between program management, product management, scrum masters and product owners).

To prepare for the Scrum of Scrums / art Sync:

* Update the scrum board of the team
* Complete the sprint at program level
* Update RAG (Red-Amber-Green) indicators, risks and issues

### Update the scrum board of a team

A scrum team normally keeps its scrum board up to date continuously. This should not be done just before the meeting.

To update the sprint and close stories:

* Click on ***Projects*** in the top navigation bar, and select the project of the team (Or – alternatively – click on the team name in the program navigation bar)
* Select ***Active Sprints*** in the left navigation bar
* Drag and drop stories to the done / closed / … column

### Complete the sprint at program level

In Jira, sprints are manually flagged as completed.

Sprints closed at program level don’t affect or close a sprint at team level.

To complete a sprint at program level:

* Click on &#x50;***rograms*** in the top menu bar
* Select the ***program*** and ***period*** in the top of the navigation bar
* Click on **Period config** in the left navigation bar
* Click on the **completed** column next to the sprint and check the checkbox
* Click on **Save**

<figure><img src="/files/1rQUjx4W8F1GLrY6hXJg" alt=""><figcaption></figcaption></figure>

### Update the RAG indicators, issues and risks

Click [here](https://ativo.io/docs/raise-issues-and-risks/) for more information.


# Progress per team

### Progress per team

<figure><img src="/files/EM6MK8OOqf4W5MwihoBQ" alt=""><figcaption></figcaption></figure>

To see the progress of a program per team:

* **Select** the program and period in the picker (top left)
* Click **Progress per team** in the navigation bar

The progress per team screen shows a **dashboard** that contains three parts:

* The **summary** at the top left
* The **feature and dependencies progress** at the bottom
* The **team progress** and extrapolation at the top right.

### Feature

![](/files/epOmX7W6GkqNwWko4v1S)

The doughnut chart of each feature is updated with the progress of underlying stories.

The feature is displayed in the latest of the following:

* The sprint it was originally planned into
* The latest sprint of the underlying stories

The baseline sprint indicates when the feature was originally planned. For example, a story can be planned in sprint #6, but with a baseline sprint #5.

The feature displays the RAG (Red-Amber-Green) indicator ([more info](https://ativo.io/docs/raise-issues-and-risks/)).

### Feature details

![](/files/qgbJLQXO3KHaqts0j5ga)

Click on a feature to see the details of the underlying stories.

### Feature estimation

An epic (feature) estimation is the sum of estimations on underlying work items within the scope of the PI from:

* the team in the lead (primary owning team)
* other teams

For example, when a team in the lead has 10 SP of underlying work items and other teams contribute 5 SP, the total estimation for the epic is 15 SP.

{% hint style="info" %}
Only work items present in the current PI are taken into account for the estimation. This can lead to a difference between a total shown in Jira (work across multiple PIs) and the view in Ativo Programs (work for this PI).
{% endhint %}

Estimations at epic level are considered to be a (high-level) estimation for the work of the team in the lead. A team in the lead can first provide a high level estimation at the epic level, and then replace this with detailed work items later.

{% hint style="info" %}
Avoid using estimations at epic level and work item level at the same time. In case of conflict, Ativo will take the higher of the estimation at epic level and the estimation of work items of the team in the lead, and then add the contributions from other teams as well. \
\
For example:\
\- Estimation at epic level (considered to be for the team in the lead): 20 SP\
\- Work items for the team in the lead for this PI: 5 SP\
\- Work items for other teams for this PI: 10 SP\
\- Work items outside the PI: 2 SP\
⇒ The total estimation of work for this PI is 20+10=30 SP. \
\
Work items outside the PI are ignored. The work items for the team in the lead are not used in this case, to avoid double counting with the estimation at epic level. <br>
{% endhint %}

### Cross-team dependency

Cross-team dependencies are visible on the board if :

* The story and other story or feature are both part of the current program and period (stories are part if their feature is part of the current program, and if hey haven’t already been closed in a sprint of a previous period (PI) )
* The story and feature are owned by different teams

The blocking dependencies towards other teams are shown on top-right of the story. Dependencies coming from other teams are shown below the story.

The RAG (Red-Amber-Green) indicator will be visible if set ([more info](https://ativo.io/docs/raise-issues-and-risks/)).

### Metrics

![](https://ativo.io/wp-content/uploads/2020/05/burn-up-chart-team-600x418.png)

The progress metrics of a team are visible in the top-right section:

* The **blue line** contains the **total of story points** for that team.
* The **purple line** is the subtotal of **story points** for features that are **committed** (so excluding stretch objectives).
* The **black line** represents the actual progress (make sure the past sprints are closed – [more info](https://ativo.io/docs/scrum-of-scrums-and-art-sync-preparation/))
* **Extrapolations** are shown for the average sprint velocity (grey dotted line), the slowest sprint velocity (orange dotted line) and the fastest sprint velocity (green dotted line)
* The **intersection** between the dotted lines and the blue line show when the team is likely to deliver their stories.

### Metrics details

![](https://ativo.io/wp-content/uploads/2020/05/Story-breakdown-of-graph.png)

To see how the actual and total figure are computed, simply click on a point.This will display the list of features and cross-team dependency stories that contribute to the figure.


# Progress per program

### Program Progress

To see the progress of a program:

* Click on **Programs** in the top navigation bar
* **Select** the program and period in the picker (top left)
* Click **Progress**  in the navigation bar

This will open a dashboard consolidated at program level. It is similar to the dashboard per team ([more info](https://ativo.io/docs/progress-per-team/)).

![](/files/DxftdM5qLmW2jdKFmNaR)


# Cross-PI dependencies

The cross-PI page shows dependencies between ARTs

<figure><img src="/files/FC2i99SZSNZnPV7xy7OW" alt=""><figcaption></figcaption></figure>

### What is shown?

The cross-PI view displays issues with dependencies between different PIs for the selected period. Dependencies can be of the "parent-child" or the "blocks/is blocked by(\*)" issue link type.&#x20;

*(\*) Jira admins can change the issue link type used in Ativo. The default is 'blocks/is blocked by'*.

Issues without cross-PI dependencies are hidden.&#x20;

<figure><img src="/files/0n7EaqbLKwKCdTpYzNsR" alt=""><figcaption><p>Issues appear on the cross-PI board if they have a dependency with an issue of another PI</p></figcaption></figure>

Programs and teams are visible if:

* they are configured for the selected period, and&#x20;
* they have issues with cross-PI dependencies.&#x20;

### Replan

Drag & drop issues to replan them into another sprint. Click on the expand chevron to update the RAG status or risk/impediment of an issue.

### Filter

Click on 'Filter' in the top navigation to filter on epics, programs (ARTs), teams, releases or issue types.&#x20;

<figure><img src="/files/WyVnK01GdnqsTCN1XRZ8" alt=""><figcaption></figcaption></figure>

### View options

Click on View options > Card layout to configure the fields that are visible on the card.

<figure><img src="/files/cPfPyaCa5RA8CGKKk2Ga" alt=""><figcaption></figcaption></figure>

### Issues in multiple PI's

Ativo displays issues only once on a Cross-PI board.

When issues belong to multiple PIs, they are shown only once on the Cross-PI board. Any duplicate instances are hidden, and a warning flag is displayed to the user. Additionally, a warning message appears in the footer of the page: "Some issues within the scope of multiple programs/teams are shown only once."

<figure><img src="/files/EzGwxzVe21EKLNm76AvO" alt=""><figcaption><p>Flag shown when issues appear on multiple PIs</p></figcaption></figure>

Issues belonging to multiple PIs may also affect their visibility on the Cross-PI board. An issue is displayed on the Cross-PI board only if it has a dependency link with an issue from another PI and does not already appear on the board of that other PI.

<figure><img src="/files/xFObyCwRvlMkdjzw2pLV" alt=""><figcaption><p>Issues don't appear on the cross-PI board if they are in the same PI</p></figcaption></figure>

### Permissions

Ativo Programs strictly respects the Jira security permission schemes. When a user doesn't have access to see issues in a team or program, a warning is shown instead of the issues.

<figure><img src="/files/c6AKxKZhTdrHTz6EUrvm" alt=""><figcaption></figcaption></figure>


# Export issues, PI objectives, milestones and capacity to Excel

### Export from Ativo

To export Program Increment data from Ativo, click on the export button in the top navigation bar.

![](/files/2kcbha574x5zSAxxdTO2)

The data will be downloaded in CSV (Comma Separated Value) format.

### Open in Excel

To open the exported data in Excel, click on **Data > From Text/CSV**

![](/files/HJbcK5rcuLi3FIRZaXUo)

Then select the downloaded file and click on **Load**

![](/files/ch9mESYEeDY4zEJsbEzp)

The data is now loaded in Excel:

![](/files/aYmgx0olRN6sIzBlfPze)

### Why not open directly?

The browser might suggest you to open the file directly.

![](/files/qrs94qxucEMS15trELfL)

This will open the file in Excel directly without proper parsing of the CSV data.

<figure><img src="/files/w4RACs4o1AAX9yEYLoVa" alt=""><figcaption></figcaption></figure>

### Related topics

Jira admins can export all Ativo configuration and meta data via ***Jira admin > Apps > Ativo Programs > Export***.


# Ativo Programs: custom fields

### Why custom fields?

Ativo Programs stores data on Jira issues to support planning and tracking within a PI.

To make this data available in Jira outside Ativo Programs, it’s stored in custom fields on the work item itself.

The custom fields labels depend on the Jira platform and date of installation. You can check the fields installed on your instance by navigating to ***Jira admin > Manage Apps > Ativo Programs > Fields***\ <br>

<figure><img src="/files/VpAAlcz5sl5qbUVv76iA" alt=""><figcaption><p>Fields actually used on the instance</p></figcaption></figure>

### Custom fields on Jira Cloud Forge (new)

{% hint style="info" %}
These field are used on Jira Cloud installations after May 2026.
{% endhint %}

| Custom field           | Field key suffix             | Description                                                               | Encoding                                                                                                                                                                                  |
| ---------------------- | ---------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ART PI                 | ativo-art-pi                 | PI(s) this epic (feature) is planned in.                                  | An entry is formatted as `ProgramKey-PeriodKey` . Example: `PGRM1-2024Q1`                                                                                                                 |
| ART PI Team            | ativo-art-pi-team            | Team in the lead for delivering this epic (feature) per PI.               | <p>An entry is formatted as <code>ProgramKey-PeriodKey-TeamKey</code> . Example: <br><code>PGRM1-2024Q1-TEAMLION</code> The encoding scheme is different if field sharing is enabled.</p> |
| ART PI Baseline Sprint | ativo-art-pi-baseline-sprint | Baseline (planned end) sprint for this epic (feature) per PI.             | An entry is formatted as `ProgramKey-PeriodKey.SprintId` . Example: `PGRM1-2024Q1.2`                                                                                                      |
| ART PI Commitment      | ativo-art-pi-commitment      | Commitment level for this epic (feature) per PI.                          | An entry is formatted as `ProgramKey-PeriodKey-CommitmentLevel`. Example: `PGRM1-2024Q1-committed`                                                                                        |
| ART PI Supplementary   | ativo-art-pi-supplementary   | Additional PI(s) this work item is added to (outside parent-child links). | Same as ART PI                                                                                                                                                                            |
| ART RAG                | ativo-art-rag                | RAG status (Red/Amber/Green) for this work item.                          | Red, Amber or Green                                                                                                                                                                       |
| ART Risk or Impediment | ativo-art-risk-impediment    | Current risk or impediment affecting this work item.                      | Text                                                                                                                                                                                      |

### Custom fields on Jira Data Center and Jira Cloud Connect

{% hint style="info" %}
The following custom fields are created for Jira Data Center installations and Jira Cloud (Connect) installations before May 2026.&#x20;
{% endhint %}

Note for Jira Cloud: the Forge fields above are also created, but not used if the site’s initial Ativo Programs installation was before March 2026.

| Custom field            | Description                                                               | Encoding                                                                                                                                                                                       |
| ----------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Program Period          | PI(s) this epic (feature) is planned in.                                  | An entry is formatted as `ProgramKey-PeriodKey` . Example: `PGRM1-2024Q1`                                                                                                                      |
| Program Team            | Team in the lead for delivering this epic (feature) per PI.               | <p> An entry is formatted as <code>ProgramKey-PeriodKey-TeamKey</code> . Example: <br><code>PGRM1-2024Q1-TEAMLION</code> <br>The encoding scheme is different if field sharing is enabled.</p> |
| Program Baseline Sprint | Baseline (planned end) sprint for this epic (feature) per PI.             | An entry is formatted as `ProgramKey-PeriodKey.SprintId` . Example: `PGRM1-2024Q1.2`                                                                                                           |
| Program Commitments     | Commitment level for this epic (feature) per PI.                          | An entry is formatted as `ProgramKey-PeriodKey-CommitmentLevel`. Example: `PGRM1-2024Q1-committed`                                                                                             |
| Program                 | Additional PI(s) this work item is added to (outside parent-child links). | Same as Program Period                                                                                                                                                                         |
| Program RAG             | RAG status (Red/Amber/Green) for this work item.                          | Red, Amber or Green                                                                                                                                                                            |
| Program RAG Comments    | Current risk or impediment affecting this work item.                      | Text                                                                                                                                                                                           |

### When are these fields created?

The fields are created when the Ativo Programs for Jira app is installed.

### How can a user access these fields?

Users can query these fields using JQL in Jira via **Issues → Search for issues** (or the issue navigator).

If the custom fields are added to the relevant screens in a Jira project, users can also view and edit them directly on work items.

![](/files/FNQVQOgOxvww1bMoSKO2)

### Field sharing

You can configure Ativo to share 'commitment', 'added to period', 'baseline sprint' and 'team in the lead' issue fields between programs in a period (PI). This also affects how fields are encoded. [More info on field sharing](/advanced/ativo-programs-custom-fields/field-sharing).

### Related topics

[Adding custom fields to screens](https://ativo.io/docs/fields-added-to-screens/) for Jira projects used in program and teams configurations.


# Field sharing

Share 'commitment', 'added to period', 'baseline sprint' and 'team in the lead' issue fields between programs in a period

{% hint style="info" %}
Field sharing is available on Ativo Programs for **Jira cloud.** It is planned to be included in the upcoming Data Center and Server release (version **3.2**).
{% endhint %}

#### Use case

When programs (ARTs) are using the same period, they might also want to reuse the same 'commitment', 'added to period', 'baseline sprint' and 'team in the lead' issue data between programs. So when an epic is updated on one program board, the same change is done on other program boards.&#x20;

Example scenario: when multiple programs share the same period, and a *commitment level* is updated on an epic , then this will also be visible on this epic on other program boards.&#x20;

This is setting is useful when epics are shared between multiple programs (ARTs), and when the same teams are working on it accross these programs.&#x20;

#### Enable field sharing

As a Jira admin, navigate to ***Jira settings > Manage Apps > Ativo Programs > Fields*** and enable ***Field sharing.*** Click ***"Save".***

The field sharing will take effect only after updates are done to the epics. It will take full effect as from the next period (PI).&#x20;

<figure><img src="/files/a7AEBFQ09iRYAUDie6lr" alt=""><figcaption><p>Enable field sharing</p></figcaption></figure>

#### External integrations

Field sharing impacts the way how [custom Ativo fields](/advanced/ativo-programs-custom-fields) are encoded.

If field sharing is enabled, the Ativo field updates are encoded with the period key. Otherwise, they are encoded with the PI key.&#x20;

Example for the 'program team' field: when the team in the lead is updated to team Lion, this value will be saved as (assuming the program key is `PROGONE` and the period key `2024Q1`) :

* `PROGONE-2024Q1-LION` in case of NO field sharing. The specific PI key (`PROGONE-2024Q1`) is used.
* `2024Q1-LION` in case of field sharing. The period key (`2024Q1`) is used.&#x20;

The following custom fields are affected:

* Program team
* Program period
* Program Baseline Sprint
* Program Commitments


# Ativo Program fields use PI keys since April 2023

The way how data is saved on Ativo Program fields changed in April 2023. People who use Ativo Programs field data directly might need to update their filters.

{% hint style="info" %}
You can opt-out of this change by enabling [field sharing](/advanced/ativo-programs-custom-fields/field-sharing).
{% endhint %}

### Why change?

In our previous data model, data was saved with the period key only. This caused limitations when features are used in multiple program increments on the same period. To solve this problem, we have to change the way data is saved on the Ativo Programs fields in Jira.

### What changes?

The way how the following [Ativo Programs fields](/advanced/ativo-programs-custom-fields) are formatted, changes:

* **Program team**\
  \
  An entry is now formatted as `Programkey-PeriodKey-TeamKey` . Example: `PGRM1-2024Q1-TEAMLION`<br>
* **Program period**\
  \
  An entry is now formatted as `Programkey-PeriodKey` . Example: `PGRM1-2024Q1`<br>
* **Program Baseline Sprint**\
  \
  An entry is now formatted as `Programkey-PeriodKey.SprintId` . Example: `PGRM1-2024Q1.2`<br>
* **Program Commitments**\
  \
  An entry is now formatted as `Programkey-PeriodKey-CommitmentLevel`. Example: `PGRM1-2024Q1-committed`

### Gradual change

Data will only be updated to the new format when taking an action in Ativo Programs (e.g. updating a team in the lead in Ativo). Entries using the old data format will be gradually replaced with new entries..

There is hence no bulk data migration needed.

Ativo Programs continues to accept the old data format. If an Ativo Programs field contains both entries in the new and old data format, entries in the new data format will take precedence.

### Impacts for users?

**There is no impact for users that work in Ativo Programs**. The change is not visible in the UI itself.

There is an impact for power users who:

* Use Ativo Programs fields directly in Jira filters / reports. Those users need to change their JQL queries to include the new data format.\
  \
  Example:  the old `"Program Period[Labels]" = 2023Q1` JQL query would first become `"Program Period[Labels]" in (2023Q1, PROGRAMONE-2023Q1)` to include the program increment key(s) (program key + period key combined) instead. Over time, only the new keys would be needed. E.g. `"Program Period[Labels]" = PROGRAMONE-2023Q4`.<br>
* Build automation scripts using Ativo data. They will need to update the way data is read or updated according to the new format.&#x20;

### When change?

The above changes are effective on **April 23rd 2023** (on the Jira cloud platform), and after installing Ativo Programs **version 3.1** (Jira Server / Data Center platform).&#x20;

More questions? Contact [Ativo support](https://www.ativo.io/contact).


# Fields added to screens

### Why are fields added to screens?

Ativo Programs automatically adds some fields to screens for Jira projects used in Ativo Programs.

There is a limitation in the Jira API used by Ativo Programs. In order for a user to update information on a field, the field must be present on a screen. So as to ensure a user is able to update a field in Ativo, this field must be visible on screen.

Ativo Programs checks that the field is present on the screen, and adds it if not yet present.

### Which fields are added to screens?

The [**Ativo Programs custom fields**](https://ativo.io/docs/ativo-programs-custom-fields/) are added in a separate ‘Program’ tab.

For teams working Kanban, the **Due date** is added on the main tab (unless if it is already present in another tab).

For epics in scope of a program, the **Story Points** field is added on the main tab (unless if it is already present in another tab).

For teams estimating in Story Points, the **Story Points** field is added on the main tab (unless if it is already present in another tab).

### When are these fields added?

The fields are added to related Jira projects when saving the teams or program configuration in Ativo programs.

In Ativo Programs, go to ***Settings > Teams*** and ***Settings > Program*** to update the teams and program configuration.

### Which screens are updated?

Screens are updated for Jira projects used in Team and Program configurations.

Ativo Programs first checks the ***issue type screen schemes*** that are related to the project.

It then check the ***screen schemes*** that are related to the issue type screen schemes

Finally, it adds the fields to the ***screens*** that are related to the screen schemes.

Note: depending on the Jira configuration and shared use of issue type screen schemes, screen schemes and screens, this could mean that screens from Jira projects not being used inside Ativo Programs receive additional fields.

### Can fields be added multiple times to the same screen?

Ativo Programs checks if the field is already present on a screen before adding it.

*Note: version 2.5.0 includes a bug fix to also check other tabs on the screen for the presence of a field.*

### Error

An error will be shown if you're updating an issue that requires an Ativo custom field, but without the field being on a screen. This can happen if Ativo was not able to add the custom fields to the screens (\*), or the field was manually removed from a screen.&#x20;

<figure><img src="/files/oswzGU1inyldRew7RRMN" alt=""><figcaption><p>Error while updating issue. Field 'customfield_xxxx' cannot be set. It is not on the appropriate screen, or unknown.</p></figcaption></figure>

*(\*) Due to a bug, this could have happened on Jira cloud for newly created programs and teams between November 19th and December 4th 2023.*&#x20;

To mitigate, as an Ativo Admin:&#x20;

* open the Team configuration page and click submit (no need to change anything on the page)
* open the Program configuration page and click submit (no need to change anything on the page)

This will set the custom fields on the appropriate screens. Contact [Ativo support](https://www.ativo.io/contact) if the problem persists.

### Related topics

[Custom fields](https://ativo.io/docs/ativo-programs-custom-fields/) created by Ativo Programs.


# Issue types

### Epic Issue type

Ativo programs uses *Jira Epics* to save features of programs.Some Jira instances modify the default epic issue type. In order to let Ativo Programs function properly with modified Epic Issue Types, the Jira Administrator should set the Epic Issue Type in the Ativo Administration screen.

### Configure the Epic Issue Type

To configure the Epic Issue Type as a Jira Administrator:

* Go to the **Apps (Add-on) Jira Administration page**
* Click on **Issue Types** in the left navigation bar
* **Select** the Epic issue type
* Click on **Save**

If left blank, the application will assume the default id for the epic issue type.

![](/files/XCL5ma0hGGcMPxtlOycC)

### Related error message

If the epic issue type is not defined and the default can not be used,  the following error message is shown:

> *The Epic Issue Type is not set. Ask your Jira admin to select it in Jira settings > Manage Apps > Ativo Programs > Issue Types*


# Limit permissions of suppliers

### Security – limit permissions for suppliers (or other specific groups)

Agile promotes transparency and collaboration with suppliers.

The default approach when working with suppliers in a program is to provide them visibility over the program.

In some cases, this approach is not feasible for compliance or legal reasons.

Sometimes, we want to limit the permissions and visibility a supplier has in a program.

This page explains how we can configure this in *Ativo Agile Programs for Jira*.

### Example

Let’s assume the following example.

A program, called ‘*Program Blue*‘, has its own set of features (epics).

This program has following teams:

* Team Lion
* Team Horse
* Team Owl
* Team Rabbit

Each team works with Jira, and has its own project in Jira to plan stories. (It is also possible for teams to share a Jira project).

A supplier, called ‘*supplier X*‘ is also contributing to the program.

![](/files/H5mWMVoJtkww9A4d8Uxw)

### Approach

We want to include the deliverables from the supplier in our program plan.

We also want to give the supplier access to Jira, but without providing visibility on the features of the program, or on the stories of the other teams.

*Ativo Agile Programs for Jira* respects the project permissions of Jira. Users will not see more features or stories via the Ativo plugin than they are allowed to see.

We can hence limit the visibility of a supplier via the *Browse Projects* permission setting of each Jira project in the program. Regular members of the program will then be able to see the features and stories in the project. Members working for *Supplier X* will only be able to see the stories in the supplier Jira project.

More information about *Jira Project Permissions* can be found [here](https://support.atlassian.com/jira-cloud-administration/docs/manage-project-permissions/).

![](/files/eL15w6rsUEuMN34ufJZp)

### Backup

Before changing the Jira configuration, make sure you have a recent and tested backup of Jira. More information [here](https://confluence.atlassian.com/adminjiraserver/backing-up-data-938847673.html).

### Configuration of groups

Jira promotes the use of *roles* because it is then easy and flexible for *Project Administrators* to add persons to their *Jira project*.

In this case, every member of the program needs to have *browse project permissions* to each project in the program. To accomplish this, it is probably easier to work with groups.

We start by creating two groups. (*Skip this step if you already created user groups in Jira.*)

First, we will create a group with all the regular members of the program (excluding members from *Supplier X*):

Repeat the above step to create a group with all the members working for *supplier X* who need Jira access.

### Setting the permission schemes

We will create two permission schemes. (*Skip this step if you already created permission schemes in Jira.*)

One scheme sets the permissions of all projects where all regular (non-supplier) members have access to:

* Jira feature list project
* Team Lion project
* Team Rabbit project
* Team Owl project
* Team Horse project

To create the scheme:

* As a Jira administrator, go to *Administration* > *Issues* > ***Permission schemes***
* Click on *Add permission scheme*, or on ***Copy*** to create a new scheme based on an existing on&#x65;*.*
* Click on ***Remove*** next to ***Browse projects*** . Reduce the permissions so that *Supplier X* members don’t have access (**Be cautious!** This could have side-effects later where other eligible persons loose access to the project.)
* Click on ***Edit*** next to ***Browse projects.*** Grant permission to the *ProgramBlue* group, and to other groups and roles that need access to the projects of the program.\
  ![](/files/LtnGwqVYzH2NGAVxufSb)<br>

Repeat the above steps to create a *Supplier X permission scheme*. Add the *SupplierX* group, the *ProgramBlue group* and any other group or role that needs visibility on the plan of *Supplier X*.<br>

### Apply the permission schemes

Now that we’ve created the permission schemes, we can apply them on the relevant projects. Careful, this is the moment persons will loose access if we forgot to include them in the groups. Communicate upfront you are doing this change.

We will first apply the *ProgramBlue Permission Scheme* to following projects:

* Program blue feature list
* Team Lion
* Team Rabbit
* Team Owl
* Team Horse

To apply a permission scheme to a project:

* As a Jira administrator, go to *Projects* > *View all projects* and open the Jira project (e.g. the project of *Team Lion*)<br>
* Click on ***Project Settings** > **Permissions***
* Click on ***Actions*** > ***Use a different scheme***
* Select the Permission scheme and click on ***Associate***\
  ![](/files/cwfRHsbU3WKSSg7nOg4Z)

Repeat this step to associate all projects in the program with the *ProgramBlue Permission Scheme*.

Then repeat this step to link the project of *Supplier X* to the *Supplier X Permission Scheme.*

### Program configuration

As a *Ativo Program Admin*, update the program configuration of *Program Blue* to also include *Supplier X* as a team.

* Go to *Programs* > *Settings* > ***Teams*** to create the *Supplier X* team.
* Select *Program Blue* program in the left navigation bar.
* Go to Programs > Settings > **Program** and add *Supplier X* as a team in the program.\
  ![](/files/xzz2uCsUmrHxSZSRAKCs)

More information on the configuration of a program, period and team can be found [here](https://ativo.io/docs/setup/).

### Test the access for normal program members

Regular members of the program should still be able to see all projects and tickets in the program. They should also be able to see the program board and progress planning in *Ativo Programs*.

![](/files/Wfb3xHZM2QQtG8zN1ecO)

### Test the access for supplier members

Log in as a member of *Supplier X*.

Members of *Supplier X* will not be able to see the projects in the program. Go to ***Projects*** > ***Browse projects*** to verify that they only see the *Supplier X* project.

Iterate if needed on the permissions of other projects.

![](/files/uN5lD5jBs64KmfwNCnc9)

Members of *Supplier X* will not be able to see the features and stories on the program board. They should only see the names of the programs and periods. Go to **Programs** , select a program and period, and click on plan.

A *permission denied* error or *fetching issues on url failed (400)* error should be visible:

![](/files/HCxxsps7XErjR4hwmEWf)

### Update tickets as supplier member

Members of *Supplier X* can edit the tickets of the *Supplier X* project. They can plan and update a story in a sprint.

Changes to sprint planning will be reflected on the program board.

Members of *Supplier X* can also set a RAG (Red / Amber / Green flag) and risk/issue description on a story:

* As a member of *Supplier X*, locate the story you want to update on the backlog.
* Click on ***Edit***
* Select the ***Program*** tab
* Update the ***RAG*** and ***RAG comment*** sections.\
  ![](/files/yodtlGBGbe5cFhjdjUSo)

Changes to *RAG* and *RAG comments* will be reflected on the program board.

### Conclusion

The agile manifesto promotes transparency and a good collaboration with suppliers.

It is nevertheless possible to provide Jira access to a supplier and include his deliverables on an Ativo Program Board, while **limiting** the **visibility** on other projects and on the program board.

As a Jira administrator:

* Ensure a **backup** is created
* Isolate the regular program members and members of a supplier in different **groups**
* Create **permissions schemes** for the regular Jira projects and a separate permissions scheme for the project of the supplier
* Apply the permission schemes to the **projects**
* **Validate** the result


# Jira Service Management tickets on the program board

### About Jira Service Management

[Jira Service Management](https://www.atlassian.com/software/jira/service-management) is a solution from Atlassian to support ITSM (IT Service Management) practices like request, incident, problem, change, and configuration management.

Jira Service Management is sold as a separate product of the Atlassian suite.

### Include on the Program Board

Including Jira Service Management projects on the program board can help you track cross-team dependencies, risks and impediments at program level.

![](/files/3pwz9MoKah3EMsHHiNzT)

Jira service management issues from the Customer Success Team are included on the program board. The ‘SP-1’ service ticket has a cross team dependency with the “LION-2” story.

### Configuration filter

You can use Jira Service Management projects in Team, Program and Period configuration filters.

Select the Jira Service Management project in the Project select of the filter:

![](/files/Ee83JvjuMAXx4BMPMWWE)

### Add Epic link on screens

Ativo program boards usually contain both story-level issues (stories, tasks, requests, …) and epics (features). This usually means that users need to add links between requests and epics.

In order to enable this for the user, update the service management screens to include the ‘Epic link’ field.

As a Jira admin, navigate to ***Jira settings > Issues > Screens*** and add the ‘Epic link’ field to the related screens:

![](/files/QRBuNyDGhL4bQ6miAqBy)

Note: the Ativo Programs ‘Create issue’  functionality also requires that the Epic link is added. Failing to add the epic link can result in a “*CreateJiraIssue unable to create issue ticket : 400 Bad Request*” error when a user tries to create an issue directly on the program board.


# Server to cloud migration

### Ativo Programs server/data center to cloud migration

Ativo supports a migration of Ativo Programs data from Jira Server / Data Center to Jira Cloud.

You can use the [Jira Cloud Migration Assistant](https://marketplace.atlassian.com/apps/1222010/jira-cloud-migration-assistant?hosting=server\&tab=overview) to migrate Ativo Programs data.

![](/files/odaFHPy01ELtiYVoKi00)

### When migrate?

Migrate the Ativo Programs data ***after*** all Jira projects used in Ativo are migrated. (You can also include it in the last Jira project(s) migration run).

If you accidentally migrate Ativo Programs data before all Jira projects have been migrated, then you’ll need to do an additional migration run afterwards.

**WARNING** Do not run a migration of Ativo Programs data when you already started to make changes in Ativo on the cloud. The migration overwrites the configuration changes each time.

### How to migrate?

* Install Ativo Programs for Jira on the cloud instance.
* Open the [Jira Cloud Migration Assistant](https://marketplace.atlassian.com/apps/1222010/jira-cloud-migration-assistant?hosting=server\&tab=overview).
* Migrate all Jira projects used in Ativo
* Create a migration run of the Ativo Programs app data (you can include the Ativo data migration with a Jira project migration if you want)
* Upon successful migration, you will see an ‘INCOMPLETE’ status (see next section to complete the migration).

<figure><img src="/files/8RMSS6DDpxTNJfX1DAUy" alt=""><figcaption></figcaption></figure>

### Complete the migration

Ativo Programs migrates all configuration metadata, except for the *Ativo Programs admins* configuration.

To update the *Ativo Programs admins:*

* Go to **Jira settings > Manage Apps > Ativo Programs > Admins**
* **Remove** the entries
* Select the Ativo Programs **admin groups** and/or **users**
* Click **Save**

![](/files/slHqgzRstYeGp7dc0tMG)

### In case of errors

Contact the [Ativo Programs support team](https://ativo.io/support/) in case of errors.

### FAQ

**What data is migrated during the app migration?**<br>

All Ativo Programs configuration metadata is migrated, except for the *Ativo Programs admins* configuration.

Migrated data **includes**:

* Configuration of Teams, Programs and Periods (Program Increments)
* Capacity, Milestones, PI Objectives
* Ativo Programs application settings (See *Jira > Settings > Manage apps > Ativo Programs*)

Migrated data **excludes**:

* Actual Jira issues and other business data saved as a Jira ticket
* Ativo Programs admins configuration

**Can I run the Ativo Migration multiple times?**

Yes, but the Ativo Programs data on the cloud will be overwritten each time. Don’t run an Ativo Programs migration when you’ve already done changes on the cloud.

**Can I backup/import data?**

Yes, go to *Jira admin > Manage Apps > Ativo Programs > Import / export* .

Note: you can only import/export data on the same host. Importing data will overwrite all data.

**Where can I find more information on the Jira migration?**

<https://www.atlassian.com/migration/>


# Cloud Forge migration

Ativo Programs is migrating to the new Jira Forge platform in 2026

### About Atlassian Forge

Forge is Atlassian’s new cloud app development platform. Forge apps run on infrastructure that is provisioned, managed, monitored, and scaled by Atlassian, rather than on vendor-managed hosting.

Atlassian is moving the ecosystem to Forge via a phased end-of-support plan. Connect end of support is planned for December 2026.

{% hint style="info" %}
Forge is for Atlassian Cloud apps. It is not used for Jira Data Center apps. The Ativo Programs for Jira Data Center app is not impacted by this migration.
{% endhint %}

### Migration

Ativo Programs will **gradually migrate to Forge during 2026**. During the transition, Jira admins may notice the following changes.

#### Forge custom fields (May 2026)

From May 2026, Forge-based custom fields are added to Jira Cloud sites using Ativo Programs.

These fields are expected to be used only for new installations starting May 2026.  Ativo Programs installed before May 2026 will continue to use the classic custom fields, even when the new fields are also present.&#x20;

To see which Ativo fields are active in your site, go to:\
Jira admin → Manage apps → Ativo Programs → Fields

More info on [Ativo Programs custom fields](/advanced/ativo-programs-custom-fields).

#### Ativo REST API authentication changes (planned)

Ativo Programs REST API keys and URLs are planned to evolve toward Forge-REST endpoints and Atlassian OAuth 2.0 (3LO) authentication.

More details (including migration steps and timelines) will be provided in a later phase.

#### App updates may require admin approval

Some updates (commonly changes that increase/modify requested scopes/permissions) require admin approval before customers can use the updated version.&#x20;


# Authentication

Connect to the REST API

{% hint style="info" %}
The REST API is available as BETA.
{% endhint %}

The REST API allows you to interact with Ativo Programs interactively. Use this API to extract configuration data that has been saved in Ativo itself.&#x20;

Jira issue data (including [custom fields](/advanced/ativo-programs-custom-fields) ) is never processed in the Ativo backend, and hence not available via the API. Use the Jira API instead to access Jira issue data.

### Create an API token

Jira admins can create an API authentication token. Go to ***Jira settings > Manage apps > Ativo Programs > REST API*** and click on "Create" button.

<figure><img src="/files/YrdeE096vSkaEOtHUIy2" alt=""><figcaption></figcaption></figure>

Choose a name for the token, and click submit.&#x20;

The generated token will be shown. Make sure to copy the token, as you will not be able to see it again afterwards.&#x20;

<figure><img src="/files/DvXZcYQJkROxSSlVvQf3" alt=""><figcaption></figcaption></figure>

### Revoke a token

Jira admins can revoke tokens. They can do so for all tokens, including tokens from other Jira admins.&#x20;

Click on the revoke button next to the token. The token is revoked immediately.

<figure><img src="/files/iG986fZbiY7n2bLtrAOg" alt=""><figcaption></figcaption></figure>

### Authentication and authorization

Most REST API clients provide a mechanism to supply an authorization token.&#x20;

For example, you can supply the `-H`  option to `curl`. The example (for Jira cloud) below will provide the index list of Ativo teams.

```sh
curl https://cloud-api.ativo.io/rest/api/1/team
 -H "Authorization: Bearer <token>"  
```

### Versioning

The Jira API endpoints and returned models are [versioned](/rest-api/version).

### Learn more

Browser the REST API:

{% content-ref url="/pages/oGjtoJPXoaBERu8TxaN9" %}
[Cloud REST API](/rest-api/cloud-rest-api)
{% endcontent-ref %}

{% content-ref url="/pages/KH8KzKAMs0mtwbzVwRS4" %}
[Data Center REST API](/rest-api/data-center-rest-api)
{% endcontent-ref %}


# Version

Ativo REST API endpoints and models are versioned

#### REST endpoints version

The current REST API is version `1`, and is in beta.&#x20;

#### Data model version

{% hint style="info" %}
Any script using the API should be cautious and check for data model version changes.&#x20;
{% endhint %}

Ativo Programs for Jira evolves continuously. Adding new functionalities causes the configuration objects evolve as well.&#x20;

The current data model version is `9`

Non-breaking changes are added on a continuous basis. This typically means new data fields or data objects are created. A non-breaking data model change will not cause the version to change.

Breaking changes are added on a regular basis. This typically means:

* The format of a field changes
* A field is renamed
* A field is removed

The data model version is increased when a breaking change is released.

#### Data model REST endpoint&#x20;

Use the following REST endpoint (for Jira cloud) to check if the data model version still corresponds with the model version your script is supporting.&#x20;

{% openapi src="/files/LK6vexQN8L92NDNuwyD0" path="/rest/api/1/meta/model/version" method="get" %}
[Ativo-rest-2023-10-16.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FG5DxuyGQFidcF0dTYoHR%2FAtivo-rest-2023-10-16.json?alt=media\&token=bed1c281-00d9-40a0-8c3c-01073483c61f)
{% endopenapi %}

#### Version header

The data model version is added as a `X-API-Model-Version` header to any API response. Example:

```
HTTP/1.1 200 
X-API-Model-Version: 9
```

#### Version history

*Version 7*&#x20;

First version used in the API.\
\
*Version 9*

* Added `isArchived` flag on Teams, Programs and Periods
* Teams are now either configured with a Jira board or in a custom way. When configured as a Jira board, only the Jira board id is provided. When configured as a custom team, the Jira or manual project filter is saved, as well as the mode (scrum or kanban) and estimation setting.

Version numbers can have gaps. E.g. model version 8 was not affecting the API, so it was not published.


# Cloud REST API Rate Limiting

Ativo Programs uses rate limiting on its Cloud REST API to ensure service availability and responsiveness among clients.

### Implementation

Ativo limits the number of Jira Cloud REST API calls per client. The exact settings are not published, but requests are at risk of being rate limited when doing more than **100 requests over a few minutes.**

The rate limits are calculated per client, not per user. E.g., if *John* and *Ann* are Jira admins working on the same Jira tenant (same URL), then the API calls of *John* and *Ann* both count together against the rate limits.

There is no rate limiting on the Data Center platform. It is at the discretion of the Jira Data Center Admins to review scripts and external integrations.

### Rate limit responses

In cases of rate limiting, the HTTP header response contains the status code `429`.

### Retry with backoff

A response with the status code `429` has not been processed. You can (and probably want to) safely retry it.&#x20;

The best practice is to retry events with an exponential backoff.  We also recommend using Jitter (a random small time added) to avoid the [thundering herd problem](https://en.wikipedia.org/wiki/Thundering_herd_problem).&#x20;

For example:

| Retry number     | Waiting time (ms)                               |
| ---------------- | ----------------------------------------------- |
| 1                | 1000 - 1300 ms  (randomly chosen in this range) |
| 2                | 2000 - 2500 ms                                  |
| 3                | 4000 - 5000 ms                                  |
| 4                | 8000 - 10000 ms                                 |
| 5 and successive | 16000 - 20000 ms                                |

Example rate limiting retry code with Jitter and exponential retry (TypeScript):<br>

```typescript
/**
 * Wrapper around fetch to include rate limiting handling
 * (c) Ativo Programs 2024
 * Shared for illustrative purposes. Review, test & adopt before use. 
 * The ATIVO EULA applies.
 */
export default class RateLimitedRetryFetch {

    protected readonly TTL_MAX = 5; // how many retries (TTL = Time To Live)
    protected readonly RETRY_WAIT_TIME = 1000; // in ms, increases exponential with back-offs
    protected readonly JITTER_MIN_FACTOR = 1; // don't go below the requested wait time
    protected readonly JITTER_MAX_FACTOR = 1.3; // max increase factor for Jitter
    protected readonly MAX_RETRY_TIME = 16000; // in ms, max retry time before applying Jitter

    public fetchWithRetry(url: string, options: RequestInit = {},): Promise<Response> {
        return this.requestStep(url, options, this.TTL_MAX);
    }

    /**
     * Can be called recursively, until time to live (ttl) is 0
     */
    private async requestStep(url: string, options: RequestInit = {}, ttl: number): Promise<Response> {
        if (ttl <= 0) throw new Error('Rate limit exceeded and retries exhausted');
        const response = await fetch(url, options);
        if (response.status === 429) {
            return this.handleBackOffAndRetry(url, options, ttl);
        } else {
            return response; // If response is not 429, return the response. No retries then.
        }
    }

    private async handleBackOffAndRetry(url: string, options: RequestInit = {}, ttl: number) {
        const waitTimeInMs = this.getWaitTimeInMs(ttl);
        const jitterWaitTimeInMs = this.applyJitter(waitTimeInMs);
        await new Promise(resolve => setTimeout(resolve, jitterWaitTimeInMs)); //sleeps
        return this.requestStep(url, options, ttl - 1);
    }

    private getWaitTimeInMs(ttl: number) {
        const iteration = (this.TTL_MAX - ttl); // between 0 and 4
        const backoffFactor = Math.pow(2, iteration); // between 1 (2^0) and 16 (2^4)
        const waitTime =  backoffFactor * this.RETRY_WAIT_TIME; // between 1000 ms and 16000 ms
        return Math.min(waitTime, this.MAX_RETRY_TIME); //keep wait under 16000 ms, even when increasing number of retries 
    }

    private applyJitter(waitTimeInMs: number): number {
        const jitterFactor = RateLimitedRetryFetch.getRandomBetween(this.JITTER_MIN_FACTOR, this.JITTER_MAX_FACTOR);
        return Math.floor(jitterFactor * waitTimeInMs);
    }

    private static getRandomBetween(min: number, max: number): number {
        return Math.random() * (max - min) + min;
    }

}
```

### Other tips

The Ativo configuration typically changes slowly, allowing external apps and scripts to cache REST API responses for a reasonable duration.

### Further reading

The Ativo API rate limiting is implemented in a similar way as the [Jira Rate Limiting](https://developer.atlassian.com/cloud/jira/platform/rate-limiting/). Code that works with Jira rate limiting should also work for Ativo API rate limiting (except we don't use the `Retry-After` and `X-RateLimit-Reset` headers, but these are also optional in Jira).


# Cloud REST API

Browse the available end points for the Ativo cloud API.

The REST endpoints below allow you to retrieve Ativo configuration data via an [API token](/rest-api/authentication).

This page is for the Cloud API.&#x20;

{% hint style="info" %}
The Ativo Programs API is in BETA, meaning breaking changes can occur without notification. Please keep an eye on this page for updates. [Contact support](https://www.ativo.io/contact) in case of questions.&#x20;
{% endhint %}

### Team

{% openapi src="/files/nkhlvLhcyBgSjnpjAKTV" path="/rest/api/1/team" method="get" %}
[Ativo-rest-2023-10-16.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FA3ur4vxOePMcuXPRDfq4%2FAtivo-rest-2023-10-16.json?alt=media\&token=c9fd5ae5-7350-4db3-a39d-9b5c4d658b1d)
{% endopenapi %}

{% openapi src="/files/4NWO5BvHF8yASh11Yv6F" path="/rest/api/1/team/{id}" method="get" %}
[2024-05-25T223323.200-cloud.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2Fa75c9YUdEZ3BwS6WOWrq%2F2024-05-25T223323.200-cloud.json?alt=media\&token=5a882e2d-0353-41e3-a607-6e325135f91d)
{% endopenapi %}

{% openapi src="/files/4NWO5BvHF8yASh11Yv6F" path="/rest/api/1/teams" method="get" %}
[2024-05-25T223323.200-cloud.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2Fa75c9YUdEZ3BwS6WOWrq%2F2024-05-25T223323.200-cloud.json?alt=media\&token=5a882e2d-0353-41e3-a607-6e325135f91d)
{% endopenapi %}

### Program (ART)

{% openapi src="/files/nkhlvLhcyBgSjnpjAKTV" path="/rest/api/1/program" method="get" %}
[Ativo-rest-2023-10-16.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FA3ur4vxOePMcuXPRDfq4%2FAtivo-rest-2023-10-16.json?alt=media\&token=c9fd5ae5-7350-4db3-a39d-9b5c4d658b1d)
{% endopenapi %}

{% openapi src="/files/4NWO5BvHF8yASh11Yv6F" path="/rest/api/1/program/{id}" method="get" %}
[2024-05-25T223323.200-cloud.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2Fa75c9YUdEZ3BwS6WOWrq%2F2024-05-25T223323.200-cloud.json?alt=media\&token=5a882e2d-0353-41e3-a607-6e325135f91d)
{% endopenapi %}

{% openapi src="/files/4NWO5BvHF8yASh11Yv6F" path="/rest/api/1/programs" method="get" %}
[2024-05-25T223323.200-cloud.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2Fa75c9YUdEZ3BwS6WOWrq%2F2024-05-25T223323.200-cloud.json?alt=media\&token=5a882e2d-0353-41e3-a607-6e325135f91d)
{% endopenapi %}

### Period (PI)

{% openapi src="/files/LK6vexQN8L92NDNuwyD0" path="/rest/api/1/period" method="get" %}
[Ativo-rest-2023-10-16.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FG5DxuyGQFidcF0dTYoHR%2FAtivo-rest-2023-10-16.json?alt=media\&token=bed1c281-00d9-40a0-8c3c-01073483c61f)
{% endopenapi %}

{% openapi src="/files/4NWO5BvHF8yASh11Yv6F" path="/rest/api/1/period/{id}" method="get" %}
[2024-05-25T223323.200-cloud.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2Fa75c9YUdEZ3BwS6WOWrq%2F2024-05-25T223323.200-cloud.json?alt=media\&token=5a882e2d-0353-41e3-a607-6e325135f91d)
{% endopenapi %}

{% openapi src="/files/4NWO5BvHF8yASh11Yv6F" path="/rest/api/1/periods" method="get" %}
[2024-05-25T223323.200-cloud.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2Fa75c9YUdEZ3BwS6WOWrq%2F2024-05-25T223323.200-cloud.json?alt=media\&token=5a882e2d-0353-41e3-a607-6e325135f91d)
{% endopenapi %}

### Objectives

{% openapi src="/files/LK6vexQN8L92NDNuwyD0" path="/rest/api/1/objectives/{programId}/{periodId}" method="get" %}
[Ativo-rest-2023-10-16.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FG5DxuyGQFidcF0dTYoHR%2FAtivo-rest-2023-10-16.json?alt=media\&token=bed1c281-00d9-40a0-8c3c-01073483c61f)
{% endopenapi %}


# Data Center REST API

Browse the available end points for the Ativo cloud API.

The REST endpoints below allow you to retrieve Ativo configuration data via an [API token](/rest-api/authentication).

This page is for the Data Center API. Use [Jira Cloud API](/rest-api/cloud-rest-api) instead if you are on the Jira cloud platform.&#x20;

{% hint style="info" %}
In the URL's below, replace `<jira-data-center-local-url>` with the actual URL of your Jira Data Center product.
{% endhint %}

{% hint style="info" %}
The Ativo Programs API is in BETA, meaning breaking changes can occur without notification. Please keep an eye on this page for updates. [Contact support](https://www.ativo.io/contact) in case of questions.&#x20;
{% endhint %}

### Team

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/team" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/team/{id}" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/teams" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

### Program (ART)

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/program" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/program/{id}" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/programs" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

### Period (PI)

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/period" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/period/{id}" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/periods" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}

### Objectives

{% openapi src="/files/0QPio8S51P3uY6rkWjhG" path="/rest/ativo-programs/1.0/api/1/objectives/{programId}/{periodId}" method="get" %}
[2024-05-25T223323.200-DC-v2.json](https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FJ8zQLUsBu5NvWrJ0CsT4%2F2024-05-25T223323.200-DC-v2.json?alt=media\&token=7e89e8a4-7674-4893-a8bd-ceab3636c4fe)
{% endopenapi %}


# User training

Download the [training slide deck](https://uploads-ssl.webflow.com/63e6610a6c1c62c74caccd8f/664b2a82e42b90e9b117c6c3_Ativo-Programs-planning-and-progress-v2024-05-20.pdf) to train users.&#x20;

Contact [Ativo support](https://www.ativo.io/contact) to book an internal 'Train the trainer session'.

<figure><img src="/files/rMUoStKKP97xWnzVBjx4" alt=""><figcaption></figcaption></figure>


