---
language: "en"
---
# Project Milestones for Jira Documentation

*** ** * ** ***

* [Project Milestones Cloud Documentation](https://docs.ij-solutions.com/pm/project-milestones-cloud-documentation.md)

---
language: "en"
---
# For Project Admins

At the top of the [project milestone page](https://docs.ij-solutions.com/pm/project-page.md), you'll find a header displaying the project name, along with the project start and completion dates. While these dates are visible here, they can no longer be changed directly on the project milestone page.

To update the overall project start and completion dates, please navigate to **Project Settings → Apps → Project Milestone Settings**. This area is accessible only to project administrators.

In the Project Milestone Settings, you can choose to set the dates manually or automatically based on milestone dates. If you opt for the automatic setting by activating the checkbox, the date fields in the header will be disabled. The start date will then automatically adjust to the earliest milestone start date, and the end date will align with the latest milestone completion date.

With the checkbox activated, the dates will update automatically whenever a new milestone is created that starts earlier or ends later than existing ones, or when existing milestone dates are modified accordingly.

![image-20241218-150447.png](https://docs.ij-solutions.com/__attachments/a_dd27dd86abf00a86a5bde20da27a4fe9adb4c823ab3d3eea4df882f43a24fac6/image-20241218-150447.png?cb=e4539da0fbe489b6f66978ab19627719) Project dates settings in the project administration

---
language: "en"
---
# For System Admins

Welcome to the **System Admin** section of our Project Milestones Documentation. This section is designed to provide you with comprehensive information and resources to effectively manage and utilize project milestones within your Jira Cloud instance. Below, you will find a list of all the child pages that delve into specific topics and functionalities:  
* [Project Milestones Settings](https://docs.ij-solutions.com/pm/project-milestones-settings.md)
* [REST API Endpoints](https://docs.ij-solutions.com/pm/rest-api-endpoints.md)

We encourage you to explore these pages to gain a deeper understanding of how to leverage project milestones and its settings effectively. If you have any questions or need further assistance, please feel free to reach out to our [service management](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1) or contact us via [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net).

---
language: "en"
---
# For Users

Welcome to the **Users** section of our Project Milestones Documentation. This section is designed to provide you with comprehensive information and resources to effectively manage and utilize project milestones within your projects. Below, you will find a list of all the child pages that delve into specific topics and functionalities:  
* [Project Milestones Page](https://docs.ij-solutions.com/pm/project-page.md)
* [Issue Hierarchy Page](https://docs.ij-solutions.com/pm/issue-hierarchy-page.md)
* [Issue View](https://docs.ij-solutions.com/pm/issue-panel.md)
* [Global Project Overview](https://docs.ij-solutions.com/pm/global-project-overview.md)
* [Milestone Custom Field](https://docs.ij-solutions.com/pm/milestone-custom-field.md)

We encourage you to explore these pages to gain a deeper understanding of how to leverage project milestones effectively. If you have any questions or need further assistance, please feel free to reach out to our [service management](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1) or contact us via [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net).

---
language: "en"
---
# Global Project Overview

The global page with an overview of all projects is visible to every user in Jira

## How to access the global page?

The page can be accessed from everywhere inside Jira by clicking on Apps → Project Milestones Overview  
![access_global_page-20240222-143501.png](https://docs.ij-solutions.com/__attachments/a_469bfd876858fa5f0ce5c2c193464533a7db8175c3940b0320ea519cc4072ce3/access_global_page-20240222-143501.png?cb=af533d6228f0e5275377688d1335970a)

### What can you see on the Project Milestones Overview page?

The page displays a list of all Jira projects you have access to with the following information

* Project name

* Project URL

* Lead

* Issue stats

* Defined project dates

* Milestone information: Number of Milestones, first milestone, last milestone, completion rate

You can also go directly to the project milestone page of any project by clicking on the link in the milestone column of the table.

---
language: "en"
---
# Issue Hierarchy Page

## Coming soon

The new issue hierarchy view in the project milestones app is currently under development and will be published soon.

Check our [changelog and roadmap](https://docs.ij-solutions.com/pm/changelog-and-roadmap) page for information on the status of this feature.

---
language: "en"
---
# Issue View

When issues are linked to project milestones, this information is also visible within the issue itself. On the right sidebar, there is a section labeled "PM." When this section is collapsed, it indicates whether the issue is associated with a milestone or not.  
![Bildschirmfoto 2024-12-18 um 16.15.00.png](https://docs.ij-solutions.com/__attachments/a_6dcfea3051b6b08926c6c77975f6cd14ba2245a41a08aeb693fd1bd3f06e27b4/Bildschirmfoto%202024-12-18%20um%2016.15.00.png?cb=ff1de9cfac48cd19ed9c7a203c19e3ad) Project Milestones information in an issue

If the section is expanded, you can see more details.  
![image-20241218-151859.png](https://docs.ij-solutions.com/__attachments/a_4d48d8c334b18e548737ea070e5b7e3623f68c5cf23e575ae5596985e66c1fda/image-20241218-151859.png?cb=d3df0478d5acfc9e406c88e67e55db56) Expanded Project Milestone section in an issue

If an issue is not associated with a milestone, you can easily map it to one directly within the issue itself. Additionally, you have the option to edit the linked milestone or remove it altogether.

---
language: "en"
---
# Milestone Custom Field

Project Milestones adds a native **Milestone** field to your Jira instance. Jira admins can add it to screens and work item layouts like any other custom field. In this example, it is displayed right above the description of a story.  
![Screenshot 2026-07-29 at 16.57.04.png](https://docs.ij-solutions.com/__attachments/a_95b49b524825b3d1769c01ec7903eff589fd8c2296c7d6000763901c64224f2c/Screenshot%202026-07-29%20at%2016.57.04.png?cb=fc825f653f384cca8ce3678b514754d5)

Unlike the milestone information in the sidebar panel, it's a real Jira field --- so you can search for it with JQL and use it to group and filter issues in reports. The field is kept in sync automatically whenever a milestone assignment changes.

## Adding the field to your screens

The Milestone field isn't on any screen by default. A Jira administrator needs to add it to screens or layouts in the system or space administration. Once it's on a screen, it also becomes editable there, giving you a second way to assign a milestone to an issue besides the milestone panel.

## Searching with JQL

The Milestone field exposes several sub-properties you can query independently. Use the syntax `Milestone.<property> <operator> <value>`:  

|                   What it holds                    |      JQL clause       |                Example                 |
|----------------------------------------------------|-----------------------|----------------------------------------|
| Milestone name                                     | `Milestone.name`      | `Milestone.name = "Beta Launch"`       |
| Milestone ID (stable identifier, survives renames) | `Milestone.id`        | `Milestone.id = "a1b2c3d4"`            |
| Milestone status                                   | `Milestone.status`    | `Milestone.status = "Completed"`       |
| Milestone start date                               | `Milestone.startDate` | `Milestone.startDate >= startOfYear()` |
| Milestone end date                                 | `Milestone.endDate`   | `Milestone.endDate < endOfMonth()`     |

Milestone status values are: `New`, `In progress`, `ready`, and `Completed` --- the same values shown on the [project milestone page](https://docs.ij-solutions.com/pm/project-page.md).

### Supported operators

* `=` and `!=` on all properties

* `IS EMPTY` --- find issues with no milestone assigned, e.g. `Milestone.name IS EMPTY`

* Date properties (`startDate`, `endDate`) also support relational operators such as `>=`, `<=`, `>`, and `<`, and JQL date functions like `startOfYear()`, `endOfMonth()`, or `now()`

### More examples

* `project = "ABC" AND Milestone.status = "In progress"` --- all in-progress-milestone issues in a project

* `Milestone.name = "Beta Launch" AND resolution = Unresolved` --- open work for a specific milestone

* `Milestone.endDate < now() AND resolution = Unresolved` --- issues tied to overdue, unfinished milestones

Existing issues that already had a milestone mapped were backfilled with the correct values when this field was introduced, so historical data is searchable too.

---
language: "en"
---
# Project Milestones Cloud Documentation

Welcome to the documentation for the Project Milestones app designed for Jira Cloud. In this guide, we will outline the app's functionality, provide instructions on its usage, and detail the configuration options available for administrators.

[For Users](https://docs.ij-solutions.com/pm/for-users.md)
* [For Project Admins](https://docs.ij-solutions.com/pm/for-project-admins.md)
[For System Admins](https://docs.ij-solutions.com/pm/for-system-admins.md)

---
language: "en"
---
# Project Milestones Settings

The Project Milestones settings are only accessible by Jira system administrators

## How to access the Project Milestones settings?

As Jira system administrator, you find the app settings via Apps → Manage Apps → Project Milestones settings on the left sidebar.

## What can you do in the settings?

The admin settings empower system administrators to adjust configurations for:

* Permissions that dictate who can view or edit milestones in projects, based on project roles, user groups, or individual users.

* The fields designated for automated milestone mapping, applicable both globally and on a per-project basis.

### Permissions

By default, there are no restrictions in place, allowing all Jira users and groups to access and utilize the app freely.  
![image-20241218-153018.png](https://docs.ij-solutions.com/__attachments/a_a2463fb21672c4c465997f602535f3090d7bdda748b4536521c05a6b5ca32afd/image-20241218-153018.png?cb=cdad72ceb2050fd9d0e4adc7abfd9e4a) Default - no permission restrictions defined

Activating the toggle allows you to limit access to the app for specific projects, user groups, or individual users. You can configure view and edit permissions independently. Users who lack view permissions will encounter the following message when attempting to access the app, whether from the project page or the global project overview.  
![No_app_access.png](https://docs.ij-solutions.com/__attachments/a_e657a929aacf6b3b3013ac9414381602011ec35f5f0706844ea481dfd902d349/No_app_access.png?cb=40f01941550fd343efde858e1d4b7443) No access message

#### By Project

To manage your projects effectively, you can select a project from the top menu to add it to your list and establish permissions for that specific project. Once the project is added, you have the option to assign project roles, user groups, or individual users, allowing you to customize view and edit permissions exclusively for them.  
![image-20241218-153609.png](https://docs.ij-solutions.com/__attachments/a_ec05871f592e320da3e2e694215d922ac71e356da2220a64c85e3d93c75a77e8/image-20241218-153609.png?cb=f1eac9c8601f74b40f6694fcec891cd4) Permissions set for projects

In the example provided, all users and groups associated with the 'Demo Project' have access to the milestones, although they cannot make any edits. Conversely, in the 'Demo Kanban Project,' the app is accessible only to members of the 'Member' project role and to the individual user, Mark Sanders. Additionally, in this project, the milestones are set to read-only, preventing any modifications.

#### By Project Role

Permissions can also be defined by project role, similar to how they are assigned for projects.  
![image-20241218-154005.png](https://docs.ij-solutions.com/__attachments/a_bbdb28d022dc4d668981cc0a46c781c97972462592c91d0d27f806826cc5de96/image-20241218-154005.png?cb=dfdae8e9a0cebeb68cbe8f37976a6ea7) Permissions set for project role

Access to project milestones is restricted solely to members assigned the 'Administrator' project role. These members have the ability not only to edit existing milestones but also to create new ones.

#### By Group

To add a group to the list and grant app permissions, simply select the desired group from the options at the top.  
![image-20241218-154247.png](https://docs.ij-solutions.com/__attachments/a_d427e7cf35ae1df669b175f720bbb7b7c0fa8b322ffee4f456b1a1c19de8d244/image-20241218-154247.png?cb=85d8640c216e533c035571df28fc42a6) Permissions set for user group

#### By User

Permissions can also be assigned to individual users, just as they are for groups.  
It is important to understand that user settings will always take precedence over project, project role, and group settings. This means that a user with specific permissions defined here will retain those permissions across all projects, regardless of whether they are a member of a group or assigned a project role.

#### Save settings

You can easily discard your modifications at any time by clicking the cancel button. If you wish to save your settings, simply press the save button. Your modifications will be clearly displayed in the dialog that appears.  
![image-20241218-154519.png](https://docs.ij-solutions.com/__attachments/a_cfe25f0ed1c32140f33cf45002bcd741c67fcb43ca5ec3180e81ecaa2751a37e/image-20241218-154519.png?cb=a11b0605505b02c27c38c3b2b0530f2b) Summary of changes to app permissions

When you click on save on this dialog, the settings will be applied. A flag shows up, when it has been saved successfully.

### Field settings

The field settings enable you to modify the date field utilized for automated issue mapping to milestones. By default, the global setting employs the due date field for this purpose. However, you have the flexibility to change this field within the settings and even assign specific date fields for each project.  
![image-20241218-155249.png](https://docs.ij-solutions.com/__attachments/a_3de379ac112e3bccea48baa6e76e12327aff729bea9f47ebdd07d291f6de99a1/image-20241218-155249.png?cb=7084182f9f5e1b29d8556130008bcac1) Field settings - globally and per project

In this example, the due date field remains configured as a global field for issue mapping. However, in the 'Demo Kanban Project,' the target end field has been utilized instead.  
Please be aware that project-specific settings are only available for company-managed projects.

---
language: "en"
---
# Project Milestones Page

## Welcome to Your Project Adventure! 🚀

The project page is your trusty sidekick, ready to guide you through every Jira project, whether it's team-managed or company-managed. It's like having a map for your project journey, ensuring you never lose your way!

### Finding Your Milestone Treasure Map 🗺️

Look to the left sidebar to discover your project's milestone page. It's like finding a hidden treasure chest! When you open it for the first time, it's a blank slate, ready for you to fill with your project's milestones.  
![image-20241217-161821.png](https://docs.ij-solutions.com/__attachments/a_bbed78b32ff873ad637150947c6f611cf577bc8484ead283feac2434e87f5002/image-20241217-161821.png?cb=21ad71d1e184d46ad06995afd41120cd) Project Milestones on the project sidebar

### Project Header: Your Project's Crown 👑

At the top, you'll find the project header, showcasing the project's name and its start and completion dates. Those dates can be edited by project administrators in the project settings.

### Create Your Milestone Masterpieces 🎨

Ready to add some milestones? Click the "Create Milestone" button and let your creativity flow! Fill in the title, description, start date, and completion date. Watch as your milestones come to life in the list below.  
![image-20241217-163137.png](https://docs.ij-solutions.com/__attachments/a_43aaeacf03307cb4230f4bbe85a6d86ef67893401f31beaec9e6bc737b9d26bb/image-20241217-163137.png?cb=c946b4e8d9df922427a6213e960434fd) Create milestone dialog

### Milestone List: Your Project's Hall of Fame 🏆

#### Default View: The Classic Gallery

Your milestones are sorted by completion date, like a well-organized art gallery. Check off completed milestones to see them turn green, a sign of your project's progress!  
![image-20241217-163430.png](https://docs.ij-solutions.com/__attachments/a_d3f8fc4d4a9c533741e01267e52c8fd6e76192705af06e2f87fdfd148f84155f/image-20241217-163430.png?cb=2e0c521d34a14aa3333354731ab18b93) Milestones default view

#### Table View: The Interactive Exhibit

Switch to table view for a more interactive experience. Sort and drag milestones to your heart's content, but remember, this is just for display---like rearranging your favorite collectibles!  
![image-20241217-163516.png](https://docs.ij-solutions.com/__attachments/a_6855bbfe88994b4cbad6eda9597b665c4deb7382fe366970cdb9d02b8b817ded/image-20241217-163516.png?cb=ca5dd2dcd146f003f9b8e3dfbf7f14a5) Milestones table view

### Milestone Status: The Progress Parade 🎉

Each milestone has a status, from "New" to "Completed." Keep an eye on these to track your project's progress and celebrate each achievement!

The following status values are possible:

* New Milestone created and no issue mapped to it

* In progress Issues are mapped to the milestone and not all of them are resolved

* ready Mapped issues are all resolved, meaning the milestone is ready to be completed

* Completed Milestone has been marked as completed

### Mapping Issues: The Puzzle Solver 🧩

Map issues to milestones with ease. Whether you do it manually or automatically, it's like solving a puzzle that brings your project picture together.  
![image-20241217-164026.png](https://docs.ij-solutions.com/__attachments/a_0af3ed8e4858e82c3330fc4f32e619b5df479654efe58825d5c020c2b6286110/image-20241217-164026.png?cb=ffc2a30a12687c0cc6647c1fddf03cc8) Issues mapped to milestones  
![image-20241217-164137.png](https://docs.ij-solutions.com/__attachments/a_3bbc6f1e615db9b28c2cc2d34237fb35639e92e39fa37009393a875d7fda552e/image-20241217-164137.png?cb=8781e796ad3ad94575f74c6be21f984d) Issue mapping dialog  
![image-20241217-164237.png](https://docs.ij-solutions.com/__attachments/a_5d765cb6161c04e28503769abdb40569c43c0f7f6a116556dd3e9ebfe0faf568/image-20241217-164237.png?cb=64e46dfb773e690079e60cbe46e840a3) Map issues to milestones automatically

---
language: "en"
---
# REST API Endpoints

The app provides several API endpoints to retrieve and manage milestones from outside Jira. You can find detailed information on the available REST API endpoints, including methods, required parameters, body content, and endpoint URLs on this API documentation page.

**Please note:** Each instance has unique endpoints, which can be retrieved on the Project Milestones settings page in the Jira administration by system administrators.

## Authentication

When accessing any of the REST API endpoints mentioned below, users must authenticate themselves using the email associated with their Atlassian account and an app API token obtainable from the app's administration.

To generate your token, navigate to Apps → Manage your Apps → Project Milestones Settings (left sidebar) → API token tab.  
![image-20241218-155740.png](https://docs.ij-solutions.com/__attachments/a_a1b92aa02b21d4a9d399d5ea9e8dfa1320b053fe918c3d5716bf01b5bbdf4876/image-20241218-155740.png?cb=777f36ce85f4e87a50a426829db476d2)

You have access to a comprehensive list of all your generated tokens, along with details on their creation and last usage. To generate a new API token, simply click on the designated button located at the top of the page.  
Please remember that your generated token is only visible during the creation process in the modal dialog. It is crucial to copy it to your clipboard and securely store it. Once generated, the token cannot be displayed again. In case you misplace your token and fail to save it, you will need to delete the current token and generate a new one.

## REST API Endpoints

### 1. Get Milestones

Retrieve all milestones for a project.

* Method**:** **GET**

* Parameters**:**

  * project key: The project key of the project you want to get milestones for.

* Body**:** None

* Endpoint URL: Unique endpoint for your cloud instance. As system administrator, get it from Apps → Manage apps → Project Milestones Settings → REST API Endpoints tab

**Responses:**  

| **Status code** |   **Status text**    |                                                                        **Body**                                                                         |                                                                         **Reason**                                                                         |
|-----------------|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 200             | `OK`                 | JSON array with milestones                                                                                                                              |                                                                                                                                                            |
| 405             | `Method not allowed` | JSON { error: true, message: "Method not allowed. Please use GET method." }                                                                             | Another method than GET has been used to call the endpoint.                                                                                                |
| 401             | `Unauthorized`       | JSON { error: true, message: "Unauthorized - something is wrong with the provided credentials. Please authenticate with email address and api token." } | Either email address or api token used for authentication isn't correct. The user couldn't be authenticated on the instance with the provided credentials. |
| 404             | `Not found`          | JSON { error: true, message: "No project could be found with this key." }                                                                               | No project could be found with the provided key.                                                                                                           |
| 403             | `No access`          | JSON { error: true, message: "Access denied - you do not have permission to view this data." }                                                          | The user calling the api has either no access to the project at all, or no permission to view milestones in that project.                                  |

#### 2. Create Milestone

Create a new milestone in a project.

* Method**:** **POST**

* Parameters**:**

  * project key: The project key of the project you want to create a milestone in.

* Body**:**

  JSON

      {
          "title": "<title>",
          "description": "<description>",
          "start": "<date_format_YYYY-MM-DD>",
          "end": "<date_format_YYYY-MM-DD>"
      }

  Example:
  JSON

      {
          "title": "Feature freeze",
          "start": "2024-08-01",
          "end": "2024-08-31",
          "description": "No more features after that period."
      }

<!-- -->

* Endpoint URL: Unique endpoint for your cloud instance. As system administrator, get it from Apps → Manage apps → Project Milestones Settings → REST API Endpoints tab

**Responses:**  

| **Status code** |     **Status text**     |                                                                                                    **Body**                                                                                                    |                                                                                                                        **Reason**                                                                                                                         |
|-----------------|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 201             | `Created`               | JSON object of new milestone including new id. JSON { id: <new_milestone_id>, title: <new_milestone_title>, start: <new_milestone_start>, end: <new_milestone_end>, description: <new_milestone_description> } |                                                                                                                                                                                                                                                           |
| 500             | `Internal Server Error` | JSON { error: true, message: "Saving new milestone not possible at the moment. Please try again." }                                                                                                            | An error occurred when the new milestone is saved.                                                                                                                                                                                                        |
| 405             | `Method not allowed`    | JSON { error: true, message: "Method not allowed. Please use POST method." }                                                                                                                                   | Another method than POST has been used to call the endpoint.                                                                                                                                                                                              |
| 400             | `Bad request`           | JSON { error: true, message: "<Reason for error in request body>" }                                                                                                                                            | The error can be returned for multiple reasons: * the format of the request body isn't correct * provided start date is later than end date of the milestone * required fields missing in request body * the provided dates aren't in format `YYYY-MM-DD` |
| 401             | `Unauthorized`          | JSON { error: true, message: "Unauthorized - something is wrong with the provided credentials. Please authenticate with email address and api token." }                                                        | Either email address or api token used for authentication isn't correct. The user couldn't be authenticated on the instance with the provided credentials.                                                                                                |
| 404             | `Not found`             | JSON { error: true, message: "No project could be found with this key." }                                                                                                                                      | No project could be found with the provided key.                                                                                                                                                                                                          |
| 403             | `No access`             | JSON { error: true, message: "Access denied - you do not have permission to create milestones." }                                                                                                              | The user calling the api has either no access to the project at all, or no permission to create milestones in that project.                                                                                                                               |

#### 3. Edit Milestone

Edit an existing milestone in a project.

* Method**:** **PUT**

* Parameters**:**

  * project key: The project key of the project you want to edit a milestone in.

* Body**:**

  JSON

      {
          "id": "<milestone_id>",
          "description": "<description>",
          "start": "<date_format_YYYY-MM-DD>",
          "end": "<date_format_YYYY-MM-DD>"
      }

Only milestone id is required. The milestone attributes included in the body will be updated.

* Endpoint URL: Unique endpoint for your cloud instance. As system administrator, get it from Apps → Manage apps → Project Milestones Settings → REST API Endpoints tab

**Responses:**  

| **Status code** |     **Status text**     |                                                                                           **Body**                                                                                           |                                                                                                                                      **Reason**                                                                                                                                      |
|-----------------|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 201             | `Created`               | JSON object of edited milestone. JSON { id: <milestone_id>, title: <new_milestone_title>, start: <new_milestone_start>, end: <new_milestone_end>, description: <new_milestone_description> } |                                                                                                                                                                                                                                                                                      |
| 500             | `Internal Server Error` | JSON { error: true, message: "Saving milestone not possible at the moment. Please try again." }                                                                                              | An error occurred when the edited milestone is saved.                                                                                                                                                                                                                                |
| 405             | `Method not allowed`    | JSON { error: true, message: "Method not allowed. Please use PUT method." }                                                                                                                  | Another method than PUT has been used to call the endpoint.                                                                                                                                                                                                                          |
| 400             | `Bad request`           | JSON { error: true, message: "<Reason for error in request body>" }                                                                                                                          | The error can be returned for multiple reasons: * the format of the request body isn't correct * start date would be later than end date of the milestone after editing * id of milestone to be edited is missing in the request body * provided dates aren't in format `YYYY-MM-DD` |
| 401             | `Unauthorized`          | JSON { error: true, message: "Unauthorized - something is wrong with the provided credentials. Please authenticate with email address and api token." }                                      | Either email address or api token used for authentication isn't correct. The user couldn't be authenticated on the instance with the provided credentials.                                                                                                                           |
| 404             | `Not found`             | JSON { error: true, message: "Invalid milestone ID. The milestone with the provided ID doesn't exist." }                                                                                     | No milestone to edit could be found for the provided id.                                                                                                                                                                                                                             |
| 404             | `Not found`             | JSON { error: true, message: "No project could be found with this key." }                                                                                                                    | No project could be found with the provided key.                                                                                                                                                                                                                                     |
| 403             | `No access`             | JSON { error: true, message: "Access denied - you do not have permission to edit milestones." }                                                                                              | The user calling the api has either no access to the project at all, or no permission to edit milestones in that project.                                                                                                                                                            |

#### 4. Delete Milestone

Delete an existing milestone in a project.

* Method**:** **DELETE**

* Parameters**:**

  * project key: The project key of the project you want to delete a milestone from.

  * id: id of the milestone to be deleted

* Body**:**None

<!-- -->

* Endpoint URL: Unique endpoint for your cloud instance. As system administrator, get it from Apps → Manage apps → Project Milestones Settings → REST API Endpoints tab

**Responses:**  

| **Status code** |     **Status text**     |                                                                             **Body**                                                                              |                                                                         **Reason**                                                                         |
|-----------------|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 200             | `OK`                    | Id of the milestone that has been deleted JSON { id: <milestone_id> }                                                                                             |                                                                                                                                                            |
| 500             | `Internal Server Error` | JSON { error: true, message: "Deleting milestone not possible at the moment. Please try again." }                                                                 | An error occurred when deleting the milestone.                                                                                                             |
| 405             | `Method not allowed`    | JSON { error: true, message: "Method not allowed. Please use DELETE method." }                                                                                    | Another method than DELETE has been used to call the endpoint.                                                                                             |
| 400             | `Bad request`           | JSON { error: true, message: "Missing required parameters. Milestone ID is missing." }                                                                            | No id for an milestone to be deleted has been provided as parameter.                                                                                       |
| 401             | `Unauthorized`          | JSON { error: true, message: "Unauthorized - something is wrong with the provided credentials. Please authenticate with email address and Atlassian api token." } | Either email address or api token used for authentication isn't correct. The user couldn't be authenticated on the instance with the provided credentials. |
| 404             | `Not found`             | JSON { error: true, message: "Invalid milestone ID. The milestone with the provided ID doesn't exist." }                                                          | No milestone to delete could be found for the provided id.                                                                                                 |
| 404             | `Not found`             | JSON { error: true, message: "No project could be found with this key." }                                                                                         | No project could be found with the provided key.                                                                                                           |
| 403             | `No access`             | JSON { error: true, message: "Access denied - you do not have permission to delete milestones." }                                                                 | The user calling the api has either no access to the project at all, or no permission to delete milestones in that project.                                |

---
language: "en"
---
# Duplicate Epic Cloud Documentation

Welcome to the documentation of the Duplicate Epic app for Jira Cloud. On these pages we describe what the app does, how it can be used and what you can configure in detail when duplicating epics.  
[Duplicate App](https://docs.ij-solutions.com/duplicate-epic/duplicate-app.md)

If you experience a bug in the app, if you have an idea for improvement or if you have another topic you want to talk about, feel free to visit our [service management](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1) or contact us via [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net)

---
language: "en"
---
# App settings

## Jira Permissions

The duplicate app always respects the user permissions in Jira. Users without create permissions cannot copy to a space using the duplicate app.

### Duplicate is available for all users by default

By default, Duplicate is readily accessible to all users within your instance, aiming to streamline item creation and cater to various roles across your organization. While it proves beneficial in numerous scenarios, there may arise situations where its usage needs restriction to specific projects or user groups. To address this need, we have implemented app permission settings tailored for Jira administrators.

### How Jira admins can access the app settings page

As a Jira administrator, navigate to Apps → Manage your apps → Duplicate Settings on the left sidebar to reach the configuration page for the Duplicate app.

### What Jira admins can configure on the app settings page

Access to the duplicate app can be limited to specific spaces or user groups. By default, the app is accessible to all spaces and user groups.

To restrict access, navigate to the permission tab and enable the corresponding toggle. You can then choose spaces and user groups on separate tabs. Under the space tab, pick a space from the list and include it in the table by clicking the add button.

If restrictions are in place but no spaces or groups are specified, the app will still be accessible to all users across all spaces.

For a space, you can specify whether attachment copying should be allowed within that space. If the toggle is turned off, it will prevent the duplication of attachments using the duplicate app, even if the app is accessible in that space.  
![image-20241219-083346.png](https://docs.ij-solutions.com/__attachments/a_0b192d7cfff0274cc72aee4d7ce96284f7ec8524eb299a47c33a6359852f31da/image-20241219-083346.png?cb=04d52e6abf6490e00ca8cd014662606a) Space permission settings  
![image-20241219-083455.png](https://docs.ij-solutions.com/__attachments/a_157aa768855713d4962a35e8a8c6ae10b9dc3637959992aeaa698e1282c2ccc2/image-20241219-083455.png?cb=f76637ca5f18998758545da0e05a5a25) User group permission settings

A "Save" button will only be displayed if changes have been made to the configuration. Click on it to save your settings.

Once the "Save" button has been clicked, a message will appear confirming that the new configuration has been successfully saved.  
![image-20241219-083539.png](https://docs.ij-solutions.com/__attachments/a_6a23d989e82333f3178413784da3851b575f7831a1bf54fe1e816b72fe22bd6b/image-20241219-083539.png?cb=c41f3320fcd187960421780421ac4748)

### How does it look like when access to Duplicate is denied

Unfortunately, it is only possible to completely conceal the Duplicate item action when the app is inaccessible in a space, not when it is defined for user groups.

Nevertheless, the following message will be displayed when Duplicate is only available for certain user groups but users not in those groups attempt to open the item action.  
![image-20241219-083817.png](https://docs.ij-solutions.com/__attachments/a_00809c29aec9f6ce9d6c0a439e21d58673d7a99b17e13f3b467fb4d914e43e0a/image-20241219-083817.png?cb=5fe092ec9e06ca00a95ce652fc7781fd) No access to Duplicate due to user group restriction

---
language: "en"
---
# Child Items Configuration

![image-20260121-093912.png](https://docs.ij-solutions.com/__attachments/a_d8fe0761531b834254b7ea499691105319ec1879041c250d42cde71b2fc994c8/image-20260121-093912.png?cb=113cf22bfab0645d1c51ef7000e55f21)

## Info Panel

* **Total Child Items**: Count of items across all hierarchy levels under the parent.

* **Hierarchy Level**: Number of levels beneath the parent, typically up to two (story and sub-task).

* **Items Selected for Duplication**: Number of child items currently selected for duplication.

## General Settings

### Link Between Source and Duplicated Items

* **Enable**: Establish a link similar to "clones / is cloned by" in Jira.

* **Dropdown**: Choose the link type for duplicated items.

### Keep in Source Space

* **Option**: Duplicate child items within their original space or transfer to the target space.

* **Default**: All items are copied to the target space.

![Cloud_Second_Screen_find_and_replace.png](https://docs.ij-solutions.com/__attachments/a_e44a42ce82b8519226c3a15b8cb47efd0f4861945458c19037e7507a311edaa4/Cloud_Second_Screen_find_and_replace.png?cb=7c5ade5c098a8d1f84838c6016973594)

### Modify Work Item Summaries advanced edition

* **Find and Replace**: Search and replace terms in child item summaries.

* **Prefix/Suffix**: Add to summaries for customization.

#### Example for Find and Replace

In the provided example screenshot, the word '\<type of user\>' is replaced with 'developer' in all summaries. This capability enhances efficiency by enabling users to make bulk changes to text elements swiftly and accurately. The preview of the work item summary is displayed immediately when the search term is found.

## Hierarchy Table

![image-20260121-094710.png](https://docs.ij-solutions.com/__attachments/a_575e81731a2c33d82c2586635805c29d002b18921ded57887b803cec8676628b/image-20260121-094710.png?cb=5fa512fe419c795511b822893f68f48f)

* **Expand/Collapse**: Click icons to view additional child items.

* **Expand all**: Click the 'Expand all child items' button located at the top to expand the entire tree.

* **Select for Duplication**: Choose child items to duplicate with the parent.

  * Only items with a type existing in the target space are selectable.

  * Deselecting a parent makes its children unselectable.

  * Item type, key, summary, and assignee are displayed for each child item

## Fields

* **Copy Attachments**:

  * option to copy if permissions allow

  * default is to copy

  * not displayed if no attachments or lacking permission in target space

* **Copy all Child Attachments**: Enable or disable the copy attachment switch for all child items at once.

* **Edit Fields**:

  * Summary: Revise the child item's summary.

  * Assignee: Choose from users with the necessary permission to be assigned to work items in the target space.

* **Save Updates**: Upon clicking the save button, the updated values will appear on the screen and will be applied to the duplicated items.

## Reorder

* **Drag-and-Drop**: Rearrange child items to define a new order.

* **Modify Hierarchy**: Easily change child items parents in the list with drag-and-drop.

* **Error Handling**: Invalid positions trigger error messages.

## Links

Enable the copy links option to show a list of items linked to the child items. You can then select which links should be copied over to the duplicated item.  
![image-20260121-095234.png](https://docs.ij-solutions.com/__attachments/a_b31e35f44a6b369b27b9e641dce8b08ae5bd4727055876ad449b1ae5deb7d445/image-20260121-095234.png?cb=f7039b64fdb1d8769347183a86f7dc01)

*** ** * ** ***

If you have finished your settings, click on 'Duplicate' to start the process. See [this page](https://docs.ij-solutions.com/duplicate-epic/duplication-results.md) for information on the result screen.

---
language: "en"
---
# Duplicate App

Welcome to the documentation for the **Duplicate App** for Jira Cloud. This guide provides comprehensive information on the app's functionality, usage, and configuration options.

## Overview

The Duplicate app enhances Jira's cloning capabilities by allowing you to copy entire work item hierarchies, including parent and nested child items, even across different spaces (in the advanced edition).

## Key Features - Standard Edition

* **Comprehensive Duplication**: Copy work items, their children, and links in one go.

* **Customizable Duplicates**: Modify attributes such as summary and assignee during the duplication process

* **Flexible Configuration**: Decide which attachments, links, and child items to copy.

* **Item Hierarchy Duplication**: Copy parent items together with all child and descendant items with unlimited hierarchy depth

## Key Features - Advanced Edition

* **Cross-Space Duplication**: Copy work items into different spaces and transition between company-managed and team-managed spaces.

* **Duplicate in Background**: Initiate the duplication process and proceed to your next task, allowing the copying to occur seamlessly in the background.

* **Bulk Copy from Item Navigator**: Search for items in the item navigator and copy them together in a single bulk operation.

## Usage Instructions

### Work Item View

1. **Accessing Duplicate**: After installing the app, find the "Duplicate" option in the item actions menu (three dots in the top right corner).

![image-20260121-085624.png](https://docs.ij-solutions.com/__attachments/a_74574edf14f03773a60d499b18438a5bf1243a24aab023c1e3d5d274d8ec4377/image-20260121-085624.png?cb=39eee318840c94ac4de4d7bcdb5af284)

2. **Configuration** : Select the duplicate option to open the configuration screen. For detailed configuration, refer to [this guide](https://docs.ij-solutions.com/duplicate-epic/work-item-duplication.md).

### Item Navigator advanced edition

1. **Accessing Bulk Duplication** : After installing the app, find the "Duplicate" option in the Apps dropdown right on top of the item navigator.

   ![image-20260121-085934.png](https://docs.ij-solutions.com/__attachments/a_6e12438ac35d9614ecc9f4c2de8b9cb8b23137c9f0ee9031f39906da80763e52/image-20260121-085934.png?cb=35d1dc76745e1b675bfbeac173738b36)

2. **Configuration** : Select the duplicate option to open the configuration screen. For detailed configuration, refer to [this guide](https://docs.ij-solutions.com/duplicate-epic/item-navigator-bulk-duplication.md).

## Use Cases

* **Template Projects**: Establish template items and duplicate them into active projects as needed.

* **Recurring Modules**: Quickly set up project structures by copying template epics with associated child items.

* **Ensure Quality**: Effortlessly recreate established structures without the need to generate work items from scratch repeatedly. This approach guarantees that no crucial details are overlooked.

## Access Settings

* **Jira Administrators**: Control app accessibility by restricting it to specific projects or user groups. Limit usage to internal users if necessary.

* **Attachment Cloning**: Define for each individual project if it should be allowed to copy attachments from the project or not.

Read more about the app settings for Jira administrators in [this guide](https://docs.ij-solutions.com/duplicate-epic/app-settings.md).

## Support and Feedback

If you experience a bug or have suggestions, visit our [service management portal](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1) or contact us via [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net).

---
language: "en"
---
# Duplicate in background

Please note that this feature is only available in the advanced edition of the app.

It allows duplication to occur in the background, enabling you to continue with other tasks.

Just check the "duplicate in background" option for a more streamlined experience.  
![image-20260121-091225.png](https://docs.ij-solutions.com/__attachments/a_8f8019454b6b19a2caf50e74b499fe6ead3271074e9729e50b8682a437cd8112/image-20260121-091225.png?cb=a8f00a99f466084edc4f70c0d8fa321d)

## Benefits

* **Close Dialog**: You can close the duplication dialog while the process continues.

* **Monitor Progress**: Reopen the dialog to check ongoing background processes.

* **Efficiency**: No need to keep the app open during the entire process.

### Ideal for

* **Large Hierarchies**: Useful for items with many child items where duplication is time-consuming.

* **Attachments**: Beneficial when duplicating items with attachments, as this takes longer.

* **Proven Structures**: Suitable for frequently copied item structures, reducing the need for constant monitoring.

This streamlined approach ensures you can manage your tasks efficiently while the copy process runs in the background.

---
language: "en"
---
# Duplication Results

## Visual Indicators

* **Source Items**: Displayed on the left.

* **Duplication Status**:

  * **Spinner**: Indicates ongoing duplication.

  * **Check Mark**: Duplication completed.

  * **Cross Mark**: Error occurred, with message on the right.

* **Duplicated Item Links**: Available on the right to access duplicated items directly (opens in a new tab).

### Progress Monitoring

Progress bar located at the top, showing the current status of the process.  
![Screenshot 2025-07-25 at 12.21.02.png](https://docs.ij-solutions.com/__attachments/a_c62572ec263c343039c6c3b05ea8a3bd3e3e228f233c1e61661a3137a1d7cabc/Screenshot%202025-07-25%20at%2012.21.02.png?cb=d472ccc62f274476d04197ab17f83153) Duplication in progress

### Error Handling

Error icon appears with a message if an error occurs during duplication.

### Completion

Use provided links to navigate to each source or target work item once duplication is complete.  
![Screenshot 2025-07-25 at 12.21.28.png](https://docs.ij-solutions.com/__attachments/a_8724c551b792aaccec2af33e7dd9af8df414b5dcfe128974789751792cd16827/Screenshot%202025-07-25%20at%2012.21.28.png?cb=790237ba8d1ab26c9f4d2de3c5733474)  
![Screenshot 2025-07-25 at 12.21.51.png](https://docs.ij-solutions.com/__attachments/a_c7fbd9ff97f9356ecde8fbb82052401841a3e2a2785c5d94f465ef7895eb940e/Screenshot%202025-07-25%20at%2012.21.51.png?cb=ece087713fb75e663f9e78a05b50658e) Duplication completed

### Duplicate in Background

If you select the duplicate in background option, the process will start, and a message will indicate that you can close the dialog while copying occurs in the background.  
![Screenshot 2025-07-25 at 12.22.24.png](https://docs.ij-solutions.com/__attachments/a_1d05f6a1824689f26469d6572bc8794e8f90c215e1791d06016c12cc402f6cf5/Screenshot%202025-07-25%20at%2012.22.24.png?cb=f63baa04cdd933b42265b04cd35f29c1) Duplicate in background

If you reopen the duplicate dialog, whether for the same item or a different one, ongoing background processes will appear in the message at the top.  
![Screenshot 2025-07-25 at 12.22.48.png](https://docs.ij-solutions.com/__attachments/a_ebb1c008fc48bdf0778a481688652ca7544a2a9c89c22a5bc787e19716559598/Screenshot%202025-07-25%20at%2012.22.48.png?cb=138c26b35ee6567335d9e47a2ff3ebfb) Ongoing background job

---
language: "en"
---
# Effortless Duplication with the Duplicate App in Jira Cloud

Duplicate in Jira Cloud simplifies the process of copying work items, including their children, with ease.

## Precondition

Ensure that the Duplicate app is installed and licensed. Once this is done, the app can be used immediately in every Jira work item.

## How to Access Duplicate in a work item

This guide highlights the location of the duplicate action within a Jira work item. Let's consider duplication of this Epic using the app. It includes several child items as stories or tasks and some of them have sub-tasks.  
![image-20260121-090546.png](https://docs.ij-solutions.com/__attachments/a_1fead727241de5c87f01a83fe3a1a1604f5a7f2469c7bd7b02a61b461d8bf71a/image-20260121-090546.png?cb=8f1ba17f9d1bf35dbd021989fe5c65c0)

To access the duplicate app, please follow these steps:

1. **Navigate to the Work Item**: Open the Jira work item you wish to duplicate.

2. **Open Configuration** : Click on the three dots (more options) and select **Duplicate**.

![image-20260121-090658.png](https://docs.ij-solutions.com/__attachments/a_d74833c13e2fe1cc6295c17f48971b1701e460b46dffbe1e73f0d1cae94079d1/image-20260121-090658.png?cb=be5c3ad5b050e0d31c5fb2b2c0c7b46c)

For detailed instructions on duplication of a work item, visit [this page](https://ij-solutions.atlassian.net/wiki/pages/createpage.action?spaceKey=dec&title=Clone%20-%20Work%20Item%20Cloning&linkCreation=true&fromPageId=1714421823).

## How to Access Duplicate in the work item navigator advanced edition

You can also bulk duplicate Jira items with the app through the work item navigator. Open a JQL search for Jira items, then click Apps → Duplicate to open the app dialog. This feature is only visible if you subscribed to the advanced edition of the app.  
![image-20260121-090857.png](https://docs.ij-solutions.com/__attachments/a_b761ec4e8668732b823fd9a6e68098ae58e886dc300ed7e9615e479a981adf0f/image-20260121-090857.png?cb=a64ae779013f117af741ac6f9bd00fd8)

For detailed instructions on duplication of the results of a jql search with the bulk duplicate feature, visit [this page](https://docs.ij-solutions.com/duplicate-epic/item-navigator-bulk-duplication.md).

---
language: "en"
---
# Item Navigator Bulk Duplication

Please note that this feature is only available if you have subscribed to the advanced edition of the Duplicate app

Opening the Bulk Duplicate dialog from the item navigator lets you copy all items returned by your JQL search. For detailed configuration options, see the information on this page.

## Target Space Selection

* **Default**: All items are copied within their current space.

* **Cross-Space Duplication**: Check the box to select a new target space for all the items.

![image-20260121-121720.png](https://docs.ij-solutions.com/__attachments/a_79a245d67835f56329976af071ad57298e835966134c28755f54d7acfbe93166/image-20260121-121720.png?cb=efda5983550f9e21587c51a534ed065c)

Please note that only accessible spaces are shown.

### Keep in Source Space

This option applies only when copying items to a different space.

* **Option**: Duplicate child items within their original space or move them to the selected target space.

* **Default**: All items copy to the target space.

## Work items

### Settings

You can apply the following general settings to the work items list.  
![image-20251124-093318.png](https://docs.ij-solutions.com/__attachments/a_1cc2a9ac431460e0341de024a55d69a859e4d5eb1a4d0a855b657d12ae32e47d/image-20251124-093318.png?cb=b257116b550f6ec8f9583fa3e21e8662)

#### Links

**Link between source and duplicated items**

* **Enable**: Establish a link similar to "clones / is cloned by" in Jira.

* **Dropdown**: Choose the link type for duplicated items.

**Internal links**

* Internal links connect two items within the search

* **Decide** whether to recreate them (item 1 linked to item 2 results in copied item 1 linked to copied item 2)

**Labels**

Select labels to be set on all copied items

**Modify Work Item Summaries**

* **Find and Replace**: Search and replace terms in child item summaries.

* **Prefix/Suffix**: Add to summaries for customization.

### Work Item Table

The work item table displays up to 50 items from your JQL. To see more, click the load more button at the table's bottom. Items appear in the correct hierarchy. For example, the JQL search returns MC-43, MC-44, MC-45, and MC-48. MC-44, MC-45, and MC-48 are child items under MC-43 and display accordingly.  
![Screenshot 2025-11-24 at 17.42.08.png](https://docs.ij-solutions.com/__attachments/a_096deaa98b41bd82024600eeb6b6bf387ef81d321873679c9ce48832a708a6b9/Screenshot%202025-11-24%20at%2017.42.08.png?cb=112ae1b63d20fbbf39038792c59f2430)

1. In the example, work item MOBL-4 has child items. Click the expand icon to load, display, and copy all child items, even if they fall outside the initial JQL scope.

2. MC-43 has more child items than the three shown in the JQL. Click the load more children icon to display all child items in the table.

3. **Parent Link**: Option to replicate the parent link if one exists (only available for the top level items).

4. **Copy Attachments**:

   * option to copy if permissions allow

   * default is to copy

   * not displayed if no attachments or lacking permission in target space

5. **Copy links**: Option to copy the work item links

6. **Edit**: Click this icon to open the edit mode for summary and assignee fields

#### Reorder

* **Drag-and-Drop**: Rearrange child items to define a new order.

* **Modify Hierarchy**: Easily change child items parents in the list with drag-and-drop.

* **Error Handling**: Invalid positions trigger error messages.

* Reordering top-level items isn't possible

![Screenshot 2025-04-17 at 15.39.43.png](https://docs.ij-solutions.com/__attachments/a_f119cd51bb1766aae7bba52ea22a2a73ae2f21fa74a6e6dd3ba4376ee3c345c8/Screenshot%202025-04-17%20at%2015.39.43.png?cb=f4da25865aeebda54b1809367d8cdbe1)

If you have finished your settings, click on 'Duplicate' to start the process. See [++this page++](https://docs.ij-solutions.com/duplicate-epic/duplication-results.md) for information on the result screen.

---
language: "en"
---
# Parent Item Configuration

## Target Space Selection advanced edition

This feature is only available when you have subscribed to the advanced edition of the app.

* **Default**: Duplication occurs within the same space.

* **Cross-Space Duplication**: Check the box to select a new target space.

![image-20251123-072846.png](https://docs.ij-solutions.com/__attachments/a_57b588b4ea637192d7b720521a824a70256f8e5e315018e240593e3093f65fe3/image-20251123-072846.png?cb=97fd9205f0f2f9b5883a287683701ef1)  
![image-20251123-072918.png](https://docs.ij-solutions.com/__attachments/a_d0ccd58af2ff71fb646b05d369b7c0bd69e07064459f809f0dae66cc557aa214/image-20251123-072918.png?cb=7f0bac27f174da9c8c8f5cb0b2331096)  
![image-20251123-073006.png](https://docs.ij-solutions.com/__attachments/a_5f5dd08958f1f36e630ccdb2c5b2457b647187f0c21a0d6f45be8fe6dcee4433/image-20251123-073006.png?cb=d03e17be66b84b9df8f841461493b68a)

**Notes**:

* Only accessible spaces are shown.

* System checks for item type compatibility and creation permissions in the new space. Errors are displayed if conditions aren't met.

![image-20251123-073050.png](https://docs.ij-solutions.com/__attachments/a_130c056b716a9e8d586b3ab8de8198033b6e6b9c54b6eaa4be518edd6a131bfa/image-20251123-073050.png?cb=b86523bec79ab74c0cc876240f864c45)

## Parent Configuration

![image-20260121-092228.png](https://docs.ij-solutions.com/__attachments/a_138528ff04a85d9decfc078fb4ba876c2d5513c41371ada944df15a6d846c5f7/image-20260121-092228.png?cb=fec105592047280ef969e9c072c34e52)

* **Summary**: Define a new summary; original is shown by default.

* **Assignee**:

  * assign a user with permission in the target space

  * defaults to the current assignee

  * resets if permissions are lacking in a new target space

  * leaving it blank means an unassigned cloned item

* **Find in Description** advanced edition :

  * locate and replace text in the description

  * useful for placeholders

  * seamless transition from placeholders to the desired text upon duplication

  * only available if description field is on item create screen

* **Replace With** advanced edition :

  * enter replacement text

  * leave blank to remove found text.

* **Copy Attachments**:

  * option to copy if permissions allow

  * default is to copy

  * not displayed if no attachments or lacking permission in target space

## Links

Enable the copy links option to show a list of items linked to the parent. You can then select which links should be copied over to the duplicated item.  
![image-20260121-092500.png](https://docs.ij-solutions.com/__attachments/a_2df51398f82d187d29b8b6d9b364126699ae7fee3fe1fa1fc588427d499d3186/image-20260121-092500.png?cb=750b1de5e1e266e0ebd6c6839da6ee68)

---
language: "en"
---
# Work Item Duplication

When you open the duplicate dialog, you can either adjust the settings for parent and child items. For detailed configuration options, refer to the following pages:  
* [Parent Item Configuration](https://docs.ij-solutions.com/duplicate-epic/parent-item-configuration.md)
* [Child Items Configuration](https://docs.ij-solutions.com/duplicate-epic/child-items-configuration.md)
* [Duplicate in background](https://docs.ij-solutions.com/duplicate-epic/duplicate-in-background.md)
* [Duplication Results](https://docs.ij-solutions.com/duplicate-epic/duplication-results.md)

---
language: "en"
---
# Legal Information

* [Data Security and Privacy Policy](https://docs.ij-solutions.com/legal/data-security-and-privacy-policy.md)
* [EULA](https://docs.ij-solutions.com/legal/eula.md)
* [ij-solutions Service Management SLAs](https://docs.ij-solutions.com/legal/ij-solutions-service-management-slas.md)
* [License Agreement](https://docs.ij-solutions.com/legal/license-agreement.md)

---
language: "en"
---
# Acceptable Use Policy (AUP)

In addition to our EULA we align with the following Bonterms standard AUP.

Effective date: November 1 2024

## Acceptable Use Policy Attachment

(for Bonterms EULA)

This Acceptable Use Policy ("**AUP** ") sets forth rules that apply to the use of any of Provider's Cloud Services by Customer ("**you**"). If referenced by the parties on their Cover Page, this AUP operates as an Attachment to an Agreement created using the Bonterms EULA. Capitalized terms not defined in this AUP have the meanings given in the Bonterms EULA.

* **Content Restrictions**. You will not upload, store, post or transmit content that:

  * Is obscene, defamatory, deceptive, harassing, threatening, hateful or discriminatory;

  * Violates anyone else's intellectual property, privacy, publicity or other rights;

  * Violates applicable laws or regulations; or

  * Contains viruses, malware, malicious code or similar harmful materials.

* **Prohibited Conduct**. You will not:

  * Engage in deceptive or illegal activities (including, "spoofing", "phishing" or pyramid or similar schemes);

  * Transmit spam or other unsolicited communications to other users;

  * Publish benchmark or performance information about the Cloud Service without our consent;

  * Use the Cloud Service in violation of data, privacy or other applicable laws or regulations;

  * Use the Cloud Service to engage in, promote, support or facilitate hateful, discriminatory or violent activities, whether online or offline; or

  * Engage in any activity that we reasonably determine on advice of counsel will cause liability to us.

* **No Disruption**. You will not:

  * Access the Cloud Service through means we did not authorize (for instance, scraping, crawling or penetration testing);

  * Disable or interfere with the Cloud Service or circumvent any of our security or access controls; or

  * Try to access other users' data or accounts without their express permission.

* **Others.** You will not permit or encourage others to commit any of the actions above.

We may monitor compliance with this AUP and investigate any violations. If we determine that you or your content violates this AUP, we may remove or suspend access to your content or invoke our suspension rights under the Agreement (see Section 11 of the EULA (Suspension)).

We may report any activity that we suspect violates any law or regulation to law enforcement officials, regulators or other appropriate third parties, and cooperate with them to investigate and prosecute illegal conduct. Our reporting may include disclosing information related to the violation of this AUP.

---
language: "en"
---
# Data Security and Privacy Policy

Last updated date of this policy: 17.02.2026

**Please note:** ij-solutions GmbH is named **ij-solutions** in the following.

This Data Security and Privacy Policy describes what data ij-solutions collects, how ij-solutions processes personal data, and which security measures are applied when providing Atlassian Marketplace apps and related support services.

This policy applies to all ij-solutions apps listed on the Atlassian Marketplace.

## 1. Scope and Hosting Model (Forge / Runs on Atlassian)

All ij-solutions Atlassian Marketplace apps are built using **Atlassian Forge** and carry the **Runs on Atlassian** badge.

This means that app code and processing run entirely on Atlassian infrastructure. ij-solutions does not operate separate hosting infrastructure for these apps and does not transfer Jira or Confluence instance data to ij-solutions-controlled servers.

The same applies to our **Atlassian Data Center apps**, which run exclusively within the customer's self-managed Jira environment. ij-solutions does not operate external infrastructure for these apps and does not collect or store customer instance data outside of the customer-controlled host system.

## 2. Data Handling and Storage

### 2.1 Data collected via Atlassian Marketplace

If you download and install an ij-solutions app from the Atlassian Marketplace which is **not free of charge**, Atlassian provides ij-solutions with contact details of your technical contact, including:

* first name and last name

* email address

* company name

ij-solutions may use the email address to ask about experiences with apps, ask for feature suggestions, provide support-related information, or inform about new developments.

You can cancel this subscription at any time by writing an email to [**info@ij-solutions.com**](mailto:info@ij-solutions.com).

### 2.2 Data collected from customer instances (Jira / Confluence)

ij-solutions does **not** collect or store customer content from Jira or Confluence instances outside Atlassian.

In particular, ij-solutions does not store issue data, page data, comments, attachments, or user-generated content on ij-solutions infrastructure.

### 2.3 Support communication and customer-provided data

ij-solutions collects and stores data and information sent by email as well as responses to those emails. This also applies to emails to ij-solutions support and information provided in ij-solutions service management.

For support purposes, customers may voluntarily share information such as screenshots, logs, configuration details, or excerpts of Jira/Confluence content. The customer decides what information is provided and to what extent.

Such data is used solely for troubleshooting and support purposes.

## 3. Security Controls for Stored Data

ij-solutions applies appropriate technical and organizational measures to protect customer-related information that may be handled in support or communication processes, including:

* **Access control:** Access to support systems and communication channels is restricted to authorized personnel only.

* **Least privilege:** Access is granted only when required for support or operational purposes.

* **Secure communication:** Email and web-based communication is handled using secure transport mechanisms (e.g., TLS/HTTPS where supported).

* **Confidential handling:** Customer-provided information is treated as confidential and is only used for the intended purpose.

* **Secure development practices:** ij-solutions follows internal development and review processes to reduce the risk of vulnerabilities in its apps.

Since all ij-solutions apps run on Atlassian Forge and carry the **Runs on Atlassian** badge, processing of Jira/Confluence instance data remains within Atlassian's infrastructure and security boundary.

## 4. Incident Response and Breach Notification

ij-solutions maintains an incident response process to detect, assess, and respond to security incidents.

If ij-solutions becomes aware of a confirmed security incident impacting customer data processed through its support systems or related communication channels, ij-solutions will notify affected customers without undue delay and provide relevant details where possible.

## 5. Data Retention and Deletion

ij-solutions retains customer-related communication data (such as emails and support ticket content) only as long as necessary for support, operational purposes, or legal obligations.

Customers may request deletion of support communication data by contacting [**info@ij-solutions.com**](mailto:info@ij-solutions.com), provided no legal retention requirements prevent deletion.

## 6. Data Sharing

ij-solutions will neither sell nor share your data with any third parties unless explicitly permitted by applicable law.

## 7. Acceptance of this Policy

If you disagree with this policy, do not use ij-solutions apps and do not communicate with ij-solutions via email or service management.

If you have concerns or questions regarding this policy, feel free to contact ij-solutions via email at:

📩 [**info@ij-solutions.com**](mailto:info@ij-solutions.com)

---
language: "en"
---
# EULA

As of **November 1 2024** , we're using the Standard Agreement of the Atlassian Marketplace v1.0 from Bonterms that can be found here: [Marketplace Transactions - Bonterms](https://bonterms.com/standard/marketplace-transactions-v1/).

The provider-specific terms and any additions to this agreement are defined in section 21. Additions for our Atlassian Data Center offerings are defined in section 22.  
![image-20241023-073929.png](https://docs.ij-solutions.com/__attachments/a_5191c454c83518659df006e2e7cb8e177aab1e11ec13af90f26c26dc2121d20b/image-20241023-073929.png?cb=4bdbda83a16862f7720f759165e9deac)

## Bonterms Standard Agreement for Marketplace Transactions (Version 1.0)

*Role of Bonterms*: Bonterms publishes this Standard Agreement but is not a party to the Agreement created between Provider and Customer and has no responsibility to either for its use.

### 1. Using this Standard Agreement

++1.1 Standard Agreement++ . This Bonterms Standard Agreement for Marketplace Transactions (Version 1.0) ("**Standard Agreement** ") sets forth the terms and conditions under which Provider makes available Subscriptions to its Cloud Service or Provider Software (each, a "**Product** ") offered through a Listing on the Marketplace. Provider may (i) make additions to or modifications of this Standard Agreement ("**Additional Terms** ") or (ii) add Attachments by stating as such in its Listing. Any Additional Terms and any Attachments are collectively referred to as "**Provider-Specific Terms**." Capitalized terms are defined in context or in Section 20 (Definitions).

++1.2 Entering the Agreement++ . Customer and Provider agree to this Standard Agreement and any Provider-Specific Terms (collectively, the "**Agreement** ") upon Customer's first entry into an Order ("**Effective Date**").

++1.3 Orders++. As specified in the Marketplace, an Order may be between Customer and the Marketplace provider (or other reseller or agent of Provider) or directly with Provider. Each Order creates a separate Agreement between Provider and Customer but Orders do not become part of the Agreement.

++1.4 Order of Precedence++. In the event of a conflict between the elements of the terms and conditions making up the Agreement, the order of precedence is: (i) any Amendment, (ii) Provider-Specific Terms and (iii) this Standard Agreement.

#### 2. Products

++2.1 Cloud Service.++ Subject to this Agreement, Customer may use the Cloud Service for its own business purposes in accordance with the Permitted Use.

++2.2 Provider Software.++ Subject to this Agreement, Customer may install, copy and use the Provider Software for its own business purposes in accordance with the Permitted Use.

++2.3 Users++. Customer may permit Users to use the Product on its behalf. Customer is responsible for provisioning and managing its User accounts, for its Users' actions through the Product and for their compliance with this Agreement. Customer will ensure that Users keep their login credentials confidential and will promptly notify Provider upon learning of any compromise of User accounts or credentials.

#### 3. Customer Data

++3.1 Use of Customer Data++ . Subject to this Agreement, Provider will access and use Customer Data solely to provide and maintain the Cloud Service, Support and Professional Services under this Agreement ("**Use of Customer Data**"). Use of Customer Data includes sharing Customer Data as Customer directs through the Cloud Service, but Provider will not otherwise disclose Customer Data to third parties except as permitted in this Agreement.

++3.2 Security++. Provider will implement and maintain the Security Measures, if any, identified in the Provider-Specific Terms. If no Security Measures are identified, Provider will use appropriate technical and organizational measures designed to prevent unauthorized access, use, alteration or disclosure of Customer Data.

++3.3 DPA++. The parties will adhere to the Data Protection Addendum (DPA), if any, identified in the Provider-Specific Terms.

++3.4 Usage Data++. Provider may collect Usage Data and use it to operate, improve and support the Product and for other lawful business purposes, including benchmarking and reports. However, Provider will not disclose Usage Data externally unless it is (a) de-identified so that it does not identify Customer, its Users or any other person and (b) aggregated with data across other customers.

#### 4. Mutual Compliance with Laws

Each party will comply with all Laws that apply to its performance under this Agreement.

#### 5. Support and SLA

++5.1 Support++. Provider will provide Support for the Product as described in any Support Policy identified in the Provider-Specific Terms.

++5.2 SLA++. Provider will adhere to any Service Level Agreement (SLA) identified in the Provider-Specific Terms.

#### 6. Warranties

++6.1 Mutual Warranties++. Each party represents and warrants that:

(a) it has the legal power and authority to enter into this Agreement, and

(b) it will use industry-standard measures to avoid introducing Viruses into the Cloud Service.

++6.2 Performance Warranty++.

(a) ++Scope++ . Provider warrants that the Product will perform materially as described in the Documentation and that Provider will not materially decrease the overall functionality of the Cloud Service during the Subscription Term (the "**Performance Warranty**").

(b) ++Claim Report++ . Customer must report a breach of warranty in reasonable detail ("**Claim** ") within 30 days after discovering the issue in the Product ("**Claim Period**").

(c) ++Remedy++ . Within 30 days of receiving a verified Claim during the Claim Period ("**Fix Period** "), Provider will use reasonable efforts to correct or provide a reasonable workaround ("**Fix**") for the Claim. If Provider fails to provide a Fix during the Fix Period, either party may on notice to the other terminate the Subscription as it relates to the nonconforming Product and Provider will refund to Customer any prepaid, unused fees for the terminated portion of the Subscription Term.

(d) Exclusive Remedy. **The procedures set forth in this Section 6.2 are Customer's exclusive remedies and Provider's sole liability for breach of the Performance Warranty.**

++6.3 Disclaimers++ . **Except as expressly set out in this Agreement, each party disclaims all warranties, whether express, implied, statutory or otherwise, including warranties of merchantability, fitness for a particular purpose, title and noninfringement. Provider's warranties in this Section 6 do not apply to issues arising from Third-Party Platforms or misuse or unauthorized modifications of the Product. These disclaimers apply to the full extent permitted by Law**.

#### 7. Usage Rules

++7.1 Compliance++. Customer (a) will comply with any Acceptable Use Policy (AUP) identified in the Provider-Specific Terms and (b) represents and warrants that it has all rights necessary to use Customer Data with the Cloud Service and grant Provider the rights to Customer Data specified in this Agreement, without violating third-party intellectual property, privacy or other rights. Between the parties, Customer is responsible for the content and accuracy of Customer Data.

++7.2 High-Risk Activities and Sensitive Data++. Customer:

(a) will not use the Product for High-Risk Activities,

(b) will not submit Sensitive Data to the Cloud Service, and

(c) acknowledges that the Product is not designed for (and Provider has no liability for) use prohibited in this Section 7.2.

++7.3 Restrictions++. Customer will not and will not permit anyone else to: (a) sell, sublicense, distribute or rent the Product (in whole or part), grant non-Users access to the Product or use the Product to provide a hosted or managed service to others, (b) reverse engineer, decompile or seek to access the source code of the Product, except to the extent these restrictions are prohibited by Laws and then only upon advance notice to Provider, (c) copy, modify, create derivative works of or remove proprietary notices from the Product, (d) conduct security or vulnerability tests of the Cloud Service or interfere with its operation, (e) circumvent access restrictions to any Product or (f) use the Product to develop a product or service that competes with the Product.

#### 8. Third-Party Platforms

To the extent offered by Provider, Customer may choose to enable integrations or exchange Customer Data with Third-Party Platforms. Customer's use of a Third-Party Platform is governed by its agreement with the relevant provider, not this Agreement, and Provider is not responsible for Third-Party Platforms or how their providers use Customer Data.

#### 9. Professional Services

Provider will perform Professional Services as described in a Statement of Work, which may identify additional terms or milestones for the Professional Services. Customer will give Provider timely access to Customer Materials reasonably needed for Professional Services, and Provider will use the Customer Materials only for purposes of providing Professional Services. Subject to any limits in a Statement of Work, Customer will reimburse Provider's reasonable travel and lodging expenses incurred in providing Professional Services. Customer may use code or other deliverables that Provider furnishes as part of Professional Services only in connection with Customer's authorized use of the Product under this Agreement.

#### 10. Fees

Fees will be as stated in the Order and payment terms are as set forth in the Order or terms of the Marketplace.

#### 11. Suspension

Provider may suspend Customer's access to the Cloud Service and related services due to a Suspension Event, but where practicable will give Customer prior notice so that Customer may seek to resolve the issue and avoid suspension. Provider is not required to give prior notice in exigent circumstances or for a suspension made to avoid material harm or violation of Law. Once the Suspension Event is resolved, Provider will promptly restore Customer's access to the Cloud Service in accordance with this Agreement. "**Suspension Event**" means (a) Customer's account is 30 days or more overdue, (b) Customer is in breach of Section 7 (Usage Rules) or (c) Customer's use of the Cloud Service risks material harm to the Cloud Service or others.

#### 12. Term and Termination

++12.1 Subscription Terms++. Each Subscription Term will last for an initial 12-month period unless the Order states otherwise.

++12.2 Term of Agreement++. This Agreement starts on the Effective Date and continues until the end of all Subscription Terms, unless sooner terminated in accordance with its terms. If no Subscription is in effect, either party may terminate this Agreement for any or no reason with notice to the other party.

++12.3 Termination++. Either party may terminate this Agreement (including all Subscriptions) if the other party (a) fails to cure a material breach of this Agreement within 30 days after notice, (b) ceases operation without a successor or (c) seeks protection under a bankruptcy, receivership, trust deed, creditors' arrangement, composition or comparable proceeding, or if such a proceeding is instituted against that party and not dismissed within 60 days.

++12.4 Data Export and Deletion++.

(a) During a Subscription Term, Customer may export Customer Data from the Cloud Service (or Provider will otherwise make the Customer Data available to Customer) as described in the Documentation.

(b) After termination or expiration of this Agreement, within 60 days of request, Provider will delete Customer Data and each party will delete any Confidential Information of the other in its possession or control.

(c) Nonetheless, the recipient may retain Customer Data or Confidential Information in accordance with its standard backup or record retention policies or as required by Law, subject to Section 3.2 (Security), Section 16 (Confidentiality) and any DPA.

++12.5 Effect of Termination++.

(a) Customer's right to use the Product, Support and Professional Services will cease upon any termination or expiration of this Agreement, subject to this Section 12.

(b) The following Sections will survive termination or expiration of this Agreement: 3.4 (Usage Data), 6.3 (Disclaimers), 7 (Usage Rules), 12.4 (Data Export and Deletion), 12.5 (Effect of Termination), 13 (Intellectual Property), 14 (Limitations of Liability), 15 (Indemnification), 16 (Confidentiality), 19 (General Terms) and 20 (Definitions).

(c) Except where an exclusive remedy is provided, exercising a remedy under this Agreement, including termination, does not limit other remedies a party may have.

#### 13. Intellectual Property

++13.1 Reserved Rights++. Neither party grants the other any rights or licenses not expressly set out in this Agreement. Except for Provider's express rights in this Agreement, as between the parties, Customer retains all intellectual property and other rights in Customer Data and Customer Materials provided to Provider. Except for Customer's express rights in this Agreement, as between the parties, Provider and its licensors retain all intellectual property and other rights in the Product, Professional Services deliverables and related Provider technology.

++13.2 Feedback++. If Customer gives Provider feedback regarding improvement or operation of the Product, Support or Professional Services, Provider may use the feedback without restriction or obligation. All feedback is provided "AS IS" and Provider will not publicly identify Customer as the source of feedback without Customer's permission.

#### 14. Limitations of Liability

++14.1 General Cap++ . **Each party's entire liability arising out of or related to this Agreement will not exceed the General Cap.**

++14.2 Consequential Damages Waiver++ . **Neither party will have any liability arising out of or related to this Agreement for indirect, special, incidental, reliance or consequential damages or damages for loss of use, lost profits or interruption of business, even if informed of their possibility in advance**.

++14.3 Exceptions and Enhanced Cap++ . **Sections 14.1 (General Cap) and 14.2 (Consequential Damages Waiver) will not apply to Enhanced Claims or Uncapped Claims. For all Enhanced Claims, each party's entire liability will not exceed the Enhanced Cap**.

++14.4 Nature of Claims++. The waivers and limitations in this Section 14 apply regardless of the form of action, whether in contract, tort (including negligence), strict liability or otherwise and will survive and apply even if any limited remedy in this Agreement fails of its essential purpose.

++14.5 Liability Definitions++.

"**Enhanced Cap**" means three times (3x) the General Cap.

"**Enhanced Claims**" means Provider's breach of Section 3.2 (Security) or either party's breach of Section 3.3 (DPA).

"**General Cap**" means amounts paid or payable by Customer to Provider under this Agreement in the 12 months immediately preceding the first incident giving rise to liability.

"**Uncapped Claims**" means (a) the indemnifying party's obligations under Section 15 (Indemnification), (b) either party's infringement or misappropriation of the other party's intellectual property rights, (c) any breach of Section 16 (Confidentiality), excluding breaches related to Customer Data and (d) liabilities that cannot be limited by Law.

#### 15. Indemnification

++15.1 Indemnification by Provider++. Provider, at its own cost, will defend Customer from and against any Provider-Covered Claims and will indemnify and hold harmless Customer from and against any damages or costs awarded against Customer (including reasonable attorneys' fees) or agreed in settlement by Provider resulting from the Provider-Covered Claims.

++15.2 Indemnification by Customer++. Customer, at its own cost, will defend Provider from and against any Customer-Covered Claims and will indemnify and hold harmless Provider from and against any damages or costs awarded against Provider (including reasonable attorneys' fees) or agreed in settlement by Customer resulting from the Customer-Covered Claims.

++15.3 Indemnification Definitions++.

"**Customer-Covered Claim**" means a third-party claim arising from Customer's breach or alleged breach of Section 7.1 (Compliance) or 7.2 (High-Risk Activities and Sensitive Data).

"**Provider-Covered Claim**" means a third-party claim that the Product, when used by Customer as authorized in this Agreement, infringes or misappropriates a third party's intellectual property rights.

++15.4 Procedures++. The indemnifying party's obligations in this Section 15 are subject to receiving from the indemnified party: (a) prompt notice of the claim (but delayed notice will only reduce the indemnifying party's obligations to the extent it is prejudiced by the delay), (b) the exclusive right to control the claim's investigation, defense and settlement and (c) reasonable cooperation at the indemnifying party's expense. The indemnifying party may not settle a claim without the indemnified party's prior approval if settlement would require the indemnified party to admit fault or take or refrain from taking any action (except regarding use or nonuse of the Product when Provider is the indemnifying party). The indemnified party may participate in a claim with its own counsel at its own expense.

++15.5 Mitigation++. In response to an infringement or misappropriation claim, if required by settlement or injunction or as Provider determines necessary to avoid material liability, Provider may: (a) procure rights for Customer's continued use of the Product, (b) replace or modify the allegedly infringing portion of the Product to avoid infringement, without reducing the Product's overall functionality or (c) terminate the affected Subscription and refund to Customer any prepaid, unused fees for the terminated portion of the Subscription Term.

++15.6 Exceptions++. Provider's obligations in this Section 15 do not apply to claims resulting from (a) modification or unauthorized use of the Product, (b) use of the Product in combination with items not provided by Provider, including Third-Party Platforms or (c) Provider Software other than the most recent release, if Provider made available (at no additional charge) a newer release that would avoid infringement.

++15.7 Exclusive Remedy++. This Section 15 sets out the indemnified party's exclusive remedy and the indemnifying party's sole liability regarding third-party claims of intellectual property infringement or misappropriation covered by this Section 15.

#### 16. Confidentiality

++16.1 Use and Protection++. As recipient, each party will (a) use Confidential Information only to fulfill its obligations and exercise its rights under this Agreement, (b) not disclose Confidential Information to third parties without the discloser's prior approval, except as permitted in this Agreement and (c) protect Confidential Information using at least the same precautions recipient uses for its own similar information and no less than a reasonable standard of care.

++16.2 Permitted Disclosures++.

(a) ++Personnel++. The recipient may disclose Confidential Information to its employees, agents, contractors and other representatives having a legitimate need to know (including, for Provider, the subcontractors referenced in Section 19.9), provided it remains responsible for their compliance with this Section 16 and they are bound to confidentiality obligations no less protective than this Section 16.

(b) ++Required by Law++. The recipient may disclose Confidential Information (including Customer Data) to the extent required by Law. If permitted by Law, the recipient will give the discloser reasonable advance notice of the required disclosure and reasonably cooperate, at the discloser's expense, to obtain confidential treatment for the Confidential Information.

++16.3 Exclusions++. These confidentiality obligations do not apply to information that the recipient can document (a) is or becomes public knowledge through no fault of the recipient, (b) it rightfully knew or possessed, without confidentiality restrictions, prior to receipt from the discloser, (c) it rightfully received from a third party without confidentiality restrictions or (d) it independently developed without using or referencing Confidential Information.

++16.4 Remedies++. Breach of this Section 16 may cause substantial harm for which monetary damages are an insufficient remedy. Upon a breach of this Section 16, the discloser is entitled to seek appropriate equitable relief, including an injunction, in addition to other remedies.

#### 17. Publicity

Neither party may publicly announce this Agreement without the other party's prior approval or except as required by Laws.

#### 18. Trials and Betas

Use of Trials and Betas is permitted only for Customer's internal evaluation during the period designated in the Order (or if not designated, 30 days). Either party may terminate Customer's use of Trials and Betas at any time for any reason. Trials and Betas may be inoperable, incomplete or include features never released. **Notwithstanding anything else in this Agreement, Provider offers no warranty, indemnity, SLA or Support for Trials and Betas and its liability for Trials and Betas will not exceed US$1,000**.

#### 19. General Terms

++19.1 Assignment++. Neither party may assign this Agreement without the prior consent of the other party, except that either party may assign this Agreement, with notice to the other party, in connection with the assigning party's merger, reorganization, acquisition or other transfer of all or substantially all of its assets or voting securities. Any non-permitted assignment is void. This Agreement will bind and inure to the benefit of each party's permitted successors and assigns.

++19.2 Governing Law and Courts++.

(a) The **Governing Law** governs this Agreement and any action arising out of or relating to this Agreement, without reference to conflict of law rules. The parties will adjudicate any such action in the **Courts** and each party consents to the exclusive jurisdiction and venue of the Courts for these purposes.

(b) Unless otherwise specified in the Provider-Specific Terms, the "**Governing Law** " is the laws of the State of California and the "**Courts**" are the federal and state courts located in San Francisco, California.

++19.3 Notices++.

(a) Except as set out in this Agreement, notices, requests and approvals under this Agreement must be in writing to the addresses specified by Provider and Customer and will be deemed given: (1) upon receipt if by personal delivery, (2) upon receipt if by certified or registered U.S. mail (return receipt requested), (3) one day after dispatch if by a commercial overnight delivery service or (4) upon delivery if by email.

(b) Provider will specify its notice address through the Listing or Product and Customer will specify its notice address through the Order or other method designated by Provider. Either party may update its notice address with notice to the other. Provider may also send operational notices through the Product.

++19.4 Entire Agreement++.

(a) This Agreement is the parties' entire agreement regarding its subject matter and supersedes any prior or contemporaneous agreements regarding its subject matter. In this Agreement, headings are for convenience only and "including" and similar terms are to be construed without limitation. Terms in purchase orders used by Customer will not amend or modify this Agreement; any such documents are for administrative purposes only. This Agreement may be executed in counterparts (including electronic copies and PDFs), each of which is deemed an original and which together form one and the same agreement.

(b) Neither the provider of the Marketplace (except if operating as the Provider) nor Bonterms, the publisher of this Standard Agreement, is a party to this Agreement and neither will have any liability or responsibility to either Provider or Customer in connection with use of this Standard Agreement.

++19.5 Amendments++.

(a) Any amendments to this Agreement must be in writing and signed by each party's authorized representatives (an "**Amendment**"). Amendments become part of this Agreement.

(b) Orders may contain Use Restrictions but do not amend or modify any part of this Agreement.

++19.6 Operational Changes++. With notice to Customer, Provider may modify the AUP, Security Measures, SLA or Support Policy to reflect new features or changing practices, but the modifications may not be retroactive or materially decrease Provider's overall obligations during a Subscription Term.

++19.7 Waivers and Severability++. Waivers must be signed by the waiving party's authorized representative and cannot be implied from conduct. If any provision of this Agreement is held invalid, illegal or unenforceable, it will be limited to the minimum extent necessary so the rest of this Agreement remains in effect.

++19.8 Force Majeure++. Neither party is liable for a delay or failure to perform this Agreement due to a Force Majeure. If a Force Majeure materially adversely affects the Product for 15 or more consecutive days, either party may terminate the affected Subscription upon notice to the other and Provider will refund to Customer any prepaid, unused fees for the terminated portion of the Subscription Term. However, this Section 19.8 does not limit Customer's obligations to pay fees owed.

++19.9 Subcontractors++. Provider may use subcontractors and permit them to exercise Provider's rights and fulfill Provider's obligations, but Provider remains responsible for each subcontractor's compliance with this Agreement and for Provider's overall performance under this Agreement. This does not limit any additional terms for subprocessors under a DPA.

++19.10 Independent Contractors++. The parties are independent contractors, not agents, partners or joint venturers.

++19.11 No Third-Party Beneficiaries++. There are no third-party beneficiaries to this Agreement.

++19.12 Open Source++ . Provider Software may include third-party open source software ("**Open Source**") as listed in the Documentation or by Provider upon request. Customer acknowledges that its license to use any Open Source will be the Open Source license applicable to such code and not the license to Provider Software in Section 2.2 (Provider Software) above to the extent required by such Open Source license.

++19.13 Export++. Each party (a) will comply with all export and import Laws in performing this Agreement and (b) represents and warrants that it is not listed on any U.S. government list of prohibited or restricted parties or located in (or a national of) a country subject to a U.S. government embargo or designated by the U.S. government as a "terrorist-supporting" country. Customer will not submit to the Cloud Service any data controlled under the U.S. International Traffic in Arms Regulations.

++19.14 Government Rights++. To the extent applicable, the Product is "commercial computer software" or a "commercial item" for purposes of FAR 12.212 and DFARS 227.7202. Use, reproduction, release, modification, disclosure or transfer of the Product is governed solely by the terms of this Agreement, and all other use is prohibited.

#### 20. Definitions

* "**Acceptable Use Policy** " or "**AUP**" is defined in Section 7.1 (Compliance).

* "**Additional Terms**" is defined in Section 1.1 (Standard Agreement).

* "**Agreement**" is defined in Section 1.2 (Entering the Agreement).

* "**Amendment**" is defined in Section 19.5 (Amendments).

* "**Attachments**" means any AUP, Security Measures, SLA, Support Policy or other policies specified in the Provider-Specific Terms.

* "**Cloud Service**" means Provider's proprietary software as a service (SaaS) or cloud service as identified in the applicable Listing.

* "**Confidential Information**" means information disclosed by or on behalf of one party (as discloser) to the other party (as recipient) under this Agreement, in any form, which (a) the discloser identifies to recipient as "confidential" or "proprietary" or (b) should be reasonably understood as confidential or proprietary due to its nature and the circumstances of its disclosure. Provider's Confidential Information includes technical or performance information about the Product, and Customer's Confidential Information includes Customer Data.

* "**Courts**" is defined in Section 19.2 (Governing Law and Courts).

* "**Customer**" means the party placing the Order.

* "**Customer Data**" means any data, content or materials that Customer (including its Users) submits to its Cloud Service accounts, including from Provider Software or Third-Party Platforms.

* "**Customer Materials**" means materials and resources that Customer makes available to Provider in connection with Professional Services.

* "**Data Protection Addendum** " or "**DPA**" is defined in Section 3.3 (DPA).

* "**Documentation**" means Provider's standard usage documentation for the Product. Documentation is included in the definition of "Product" unless otherwise specified.

* "**Force Majeure**" means an unforeseen event beyond a party's reasonable control, such as a strike, blockade, war, pandemic, act of terrorism, riot, third-party Internet or utility failure, refusal of government license or natural disaster, where the affected party takes reasonable and customary measures to avoid or mitigate such event's effects.

* "**Governing Law**" is defined in Section 19.2 (Governing Law and Courts).

* "**High-Risk Activities**" means activities where use or failure of the Product could lead to death, personal injury or environmental damage, including life support systems, emergency services, nuclear facilities, autonomous vehicles or air traffic control.

* "**Laws**" means all laws, regulations, rules, court orders or other binding requirements of a government authority that apply to a party.

* "**Listing**" means Provider's description of its Product (and any related Support) and Subscriptions in a listing on the Marketplace that designates use of this Standard Agreement.

* "**Marketplace**" means the application marketplace or app store on which Provider has published a Listing and made available Subscriptions to their Product.

* "**Open Source**" is defined in Section 19.12.

* "**Order**" means an order by Customer for a Subscription that is entered into through the Marketplace.

* "**Permitted Use**" means use of a Product in accordance with the applicable Subscription, any Use Restrictions and the Documentation.

* "**Product**" is defined in Section 1.1 (Standard Agreement).

* "**Professional Services**" means training, migration or other professional services that Provider furnishes to Customer related to the Product.

* "**Provider**" means the party providing the Product.

* "**Provider Software**" means Provider's proprietary installed software or apps identified in the applicable Listing.

* "**Provider-Specific Terms**" is defined in Section 1.1 (Standard Agreement).

* "**Security Measures**" is defined in Section 3.2 (Security).

* "**Sensitive Data** " means (a) patient, medical or other protected health information regulated by the Health Insurance Portability and Accountability Act (as amended and supplemented) ("**HIPAA**"), (b) credit, debit, bank account or other financial account numbers, (c) social security numbers, driver's license numbers or other government ID numbers and (d) special categories of data enumerated in European Union Regulation 2016/679, Article 9(1) or any successor legislation.

* "**Service Level Agreement** " or "**SLA**" is defined in Section 5.2 (SLA).

* "**Standard Agreement**" is defined in Section 1.1 (Standard Agreement).

* "**Statement of Work**" means a statement of work for Professional Services that is signed by the parties and references this Agreement.

* "**Subscription**" means the right for Customer to access the Product and any related Support as described in a Listing and the applicable Order.

* "**Subscription Term**" means the term for a Subscription as identified in the Order.

* "**Support**" means support for the Product as described in Section 5.1 (Support).

* "**Support Policy**" is defined in Section 5.1 (Support).

* "**Suspension Event**" is defined in Section 11 (Suspension).

* "**Third-Party Platform**" means any product, add-on or platform not provided by Provider that Customer uses with the Cloud Service.

* "**Trials and Betas**" mean access to the Product on a free or trial basis or to particular features designated by Provider as "beta" or "early access."

* "**Usage Data**" means Provider's technical logs, data and learnings about Customer's use of the Product, but excluding Customer Data.

* "**Use Restrictions**" means user, seat, copy, installation, license or other scope of use restrictions for the Product as specified in a Listing or Order.

* "**User**" means anyone that Customer allows to use its accounts for the Product, who may include (a) employees, advisors and contractors of Customer and (b) others if permitted in this Agreement, the Documentation or a Listing.

* "**Virus**" means viruses, malicious code or similar harmful materials.

#### 21. Provider-Specific Terms

21.1 Replacement of section 19.2 (b): the "**Governing Law** " is the laws of Germany and the "**Courts**" are the federal and state courts located in Hamburg, Germany.

21.2 The **Service Level Agreements (SLA)** and the **Support Policy** mentioned in section 5.1 can be found at the following page: [ij-solutions Service Level Agreements](https://docs.ij-solutions.com/legal/ij-solutions-service-management-slas)

21.3 The **Acceptable Use Policy** of cloud services provided by ij-solutions mentioned in section 7 can be found at the following page: [Acceptable Use Policy (AUP)](https://docs.ij-solutions.com/legal/acceptable-use-policy-aup.md)

21.4 In addition to section 3.1 of this agreement ("**Use of Customer Data**"), the Provider may use the company name of the Customer as well as the provided contact email address for the following purposes:

(a) The Provider may send emails to the Customer contact with information regarding the Product during an active Subscription or Trial period and a period of 6 months after its end. The Customer can deny this right at the time of the conclusion of this agreement as well as at any time afterward by submitting a request via email to [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net).

(b) The Provider may name the company name of the Customer as a referential customer and display the Customer company logo on the website <https://ij-solutions.com> as of conclusion of this agreement. The Customer can deny this right at the time of the conclusion of this agreement as well as at any time afterward by submitting a request via email to [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net), requesting the references to be deleted. Upon receipt of such a request, the Provider will remove any reference to the Customer within 30 days and make no further reference to the Customer.

#### 22. Amendments for Atlassian Data Center

22.1 ++Subject matter of the Data Center offering++

(a) Our Atlassian Data Center solution matches the Cloud services outlined in section 2.1, plus it comes with extra downloadable Software from the Atlassian Marketplace for installation on the Customer's Atlassian Data Center instance.

(b) The Customer is entitled to download a previous version from the Atlassian Marketplace instead of the most current version. However, we do not guarantee compatibility with other software and the security of such older versions.

22.2 ++Customer obligations to cooperate++

(a) The Customer shall be obliged to keep the Software up to date at all times during the term of the agreement, in particular to install upgrades and new versions of the Software immediately after we have notified the Customer accordingly. To be informed by us about the latest upgrades and versions of the Software, the Customer undertakes to log in to the "Watch" function. Without a corresponding registration, a Customer can always view the latest version of a Software under the history version, which can be found for the relevant product on the Atlassian Marketplace under "Versions \> See all versions". We inform the Customer about critical security updates in any case without the latter having to take any action; the information is sent to the contact data entered by the Customer on [https://my.atlassian.com](https://my.atlassian.com/). We shall only provide our support services if the Software is up to date with the latest version delivered by us.

(b) The Customer shall be solely responsible for setting up a functional hardware and Software environment for the Software of a size that is sufficient to take into account the additional load caused by the subject matters covered by the agreement. Same is true for the network environment that allows access to the Cloud services required for the Data Center offering.

(c) The Customer shall thoroughly test the Software before use to verify any defects and usability in the existing hardware and Software configuration. This also applies to Software which the Customer receives within the scope of warranty and, where applicable, maintenance.

(d) The Customer shall comply with our Company's instructions for the installation and operation of the Software; it shall regularly keep up to date with our company's current instructions published on the documentation website <https://docs.ij-solutions.com>

(e) The Customer shall bear any disadvantages and additional costs resulting from a breach of these obligations.

22.3 ++Data backup by the Customer; Liability for loss of data++

(a) The Customer shall take appropriate measures for the event that the Software does not work properly in whole or in part (e.g. daily data backup, fault diagnosis, regular checking of data processing results). In particular, the Customer shall carry out a complete backup of all system and application data immediately before each update or installation of a newer version of the Software. The data backups shall be stored in such a way that the backed-up data may be restored at any time.

(b) Our company shall not be liable for the loss of Customer data insofar as the damage is due to the Customer failing to carry out data backups and thereby ensuring that lost data can be restored with reasonable effort, contrary to its obligation under section 22.3 (a). In all other respects, section 14 shall apply.

22.4 ++End of Life compatibility++

For a period of two years, we support versions of our Software older than the most current version only by providing security patches for critical security vulnerabilities ("End of Life"). We expressly point out that beyond this period of time, neither compatibility with the current basic Software of Atlassian (e.g. Jira) nor sufficient security of such previous versions is guaranteed. If we provide updates, they will be compatible with versions of Atlassian's Software (e.g. Jira) released within the last two years.

---
language: "en"
---
# ij-solutions Service Management SLAs

On this page we provide the SLAs we target to achieve when working on customer requests in our [Service Management](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1)

All times are valid within our support hours: Monday - Friday, 9:00 - 19:00 CET

## Time to first response

If you reach out to us via our service management portal or by mail to [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net) you can expect to get an initial response within the following time periods:

* For bugs with highest priority: **4**h

* For bugs with second highest priority: **6**h

* For all other requests: **8**h

### Time to resolution

You can expect that your request will be resolved within the following time periods:

* For requests with highest priority: **24**h

* For requests of type "Technical support": **48**h

* For all other requests: **72**h

---
language: "en"
---
# License Agreement

Please read this end user license agreement ("EULA") carefully before using any ij-solutions software ("software"). The following agreement is a legal agreement between either an individual or a single legal entity ("Licensee") and ij-solutions GmbH ("Licensor" or "ij-solutions"). This agreement applies from the time the licensee receives the software from a reseller or licensor ("Purchase"). The licensee agrees to be bound by the terms of this agreement by installing, copying, downloading or otherwise using the software. If the licensee does not agree to the terms of this agreement, the licensee may not install, copy, download or otherwise use the software. For evaluation period the terms under section*Evaluation Period* will apply.

By installing and using the software the licensee assures to use the software only for the licensees commercial, academic or self-employed professional activities.

## 1. Definitions

* Authorized user: A named person (named user license model) who accesses and uses the software under this agreement. The number of authorized users may not exceed the number of users purchased.

* Confidential information: All items (e.g. software, documents, information) that are protected by proprietary rights, contain trade or business secrets or are designated as being confidential.

* Documentation: The complete factual and technical description of the Software.

* License fee: The remuneration for the use of the software.

* Platform: The online marketplace on which the licensee might have purchased the software.

* Reseller: The third party operating the platform and selling the software via the platform.

* Software: ij-solutions standard software purchased by the licensee. Its main technical features are described at <https://ij-solutions.atlassian.net/wiki/>

### 2. Obligations of the Licensor

The licensor will provide the software in an executable form (object code). The licensor will deliver the software by making it available for download or installation. The licensee is not entitled to be provided with the source code.

Along with the delivery of the software the licensor will provide the documentation in electronic form. Any other documentation shall only be due if expressly agreed upon. The licensee may use the documentation only for internal purposes and may reproduce the documentation only within the context of its own use in accordance with this agreement. The licensee may not modify, expand or create derivative works based on the documentation.

The same provisions of this agreement for the software apply to the documentation as well.

Every perpetual license contains product support and maintenance for the term of this agreement (see section *Maintenance and Support* for details).

#### 3. Rights of Use

The Software is legally protected. The licensor is the sole owner of any copyrights, patent rights, trademark rights and any other ancillary copyrights in and to the software.

The licensor grant the licensee the worldwide and non-exclusive right to use the software under the terms of this agreement - solely on hardware systems owned, leased or controlled by the licensee pursuant to the terms of this agreement.

The right of use is limited to the number of authorized users.

The licensee obtain the right of use after the payment is received by the licensor.

The licensee is only entitled to decompile the interface information of the software within the statutory limits under German Copyright Law and only if the licensee

a) has notified the licensor of the plan in written form and

b) has unsuccessfully asked for the provision of the necessary interface information granting at least a two week period.

All knowledge and information that the licensee obtains on the software in connection with the decompiling process is subject to the confidentiality obligations pursuant to section 9 of this agreement. Prior to involving a third party, the licensee shall provide the licensor with a written statement from such third party in which the same agrees directly vis-à-vis the licensor to comply with the rules set forth in this sections 3 and 9.

All forms of exploitation not explicitly allowed in this agreement, in particular the renting, lending and distribution in physical or immaterial form, use of the software by and on behalf of third parties (e.g., by outsourcing, hosting, software as a service) are not permitted without the licensors prior written consent.

The licensor points out that the software may contain open source software which is subject to its own licensing rights. If so, the licensor shall provide software licenses for that particular piece in the framework of the corresponding open source licensing regulations ("open source software"), so that the licensee can use the software within the meaning of this agreement. Such open source software is specified in more detail in the corresponding installation package and is licensed in accordance with special open source regulations. If there are any contradictions between the terms of this agreement and regulations for open source software, the regulations for open source software shall take precedence in respect of such open source software.

#### 4. Term and Termination

This agreement commences with the licensees purchase of the software and runs for a fixed term according to the licensees purchase. During this fixed term it cannot be terminated for convenience and after the fixed term it will automatically expire.

The right of the parties to terminate this agreement for cause remains unaffected. For the licensor, cause shall exist, in particular, if

a) the licensee is in default for more than three months with an amount of the license fee that corresponds pro rata temporis to a portion of three months,

b) the licensee suspends his payments, itself, or, if permissible, the licensor apply or any other creditor of the licensee applies for the institution of insolvency proceedings or similar statutory proceedings, if such a proceeding is opened or declined for a lack of assets, or

c) if the licensee significantly violate this agreement and fail to cease such violation within a reasonable period for rectification granted by the licensor.

Termination according to the terms described before shall always be threatened with specification of the grounds and the grant of a reasonable period for rectification (normally at least two (2) weeks), and may only be declared within two (2) months after that period has ended. No period for rectification has to be granted if the licensor cannot be reasonably expected to do so.

In the event that the licensor terminates this agreement for cause, the licensor shall be entitled to retain the license fee, to which the licensor would have been entitled without termination, as damages, less the expenditures saved by the licensor due to the termination. This shall not apply if the licensee is not responsible for the cause. Generally, the licensor shall reduce the license fee by a lump-sum in the amount of 10% to account for saved expenditures. The licensee is entitled to prove that the licensor has saved more than 10%.

Notices of termination shall be in written form to be effective.

Upon the expiry or termination of this agreement, the software may lose significant parts or the total range of the functionality. The licensor may require the licensee to delete the software from the licensees IT systems.

#### 5. Obligations of the Licensee

The installation of the software shall be conducted by the licensee. The licensor shall reasonably advise and support the licensee in preparing the installation. It is the licensees duty to observe the licensors instructions and/or to clarify the installation conditions with the licensor in due time and comprehensively in order to be able to carry out the installation smoothly and speedily. The licensee will also operate the software.

If the licensee request support in case of defects the licensee shall send the licensor detailed error reports and shall assist the licensor comprehensively and at the licensees own expense with the error analysis and rectification.

The licensee is obliged to accept, install and launch all new versions of the software, updates, patches, etc. provided by the licensor for error or defect rectification.

The licensee shall install without delay, at the latest within 30 calendar days update packages provided by the licensor to fix security issues or bugs to avoid or mitigate claims addressed by section 7.

#### 6. Purchase, Payment Terms

If the licensee has purchased the software via a platform, the licensee shall make an upfront payment of the license fee for the respective contract term to the reseller in accordance with the platform's terms of use as detailed on the licensors webpage on the platform. If the licensee has purchased the software directly from the licensor, the licensee shall make an upfront payment of the license fee for the respective contract term to the licensor.

The licensor may require additional reasonable compensation for additional expenditure caused by the licensees conduct in breach of contractual obligations or by the licensees failure to cooperate at all, in good time or as agreed, by the licensees use of the software contrary to the intended purposes or the terms in this agreement, or by the subsequent amendment or expansion of performance demands by the licensee. This shall not apply where the licensee is not responsible for the additional expenditure.

The licensee may only make a set-off against claims that are not disputed by the licensor or have been established with final force. Except within the applicability of sec. 354a of the German Commercial Code (HGB), the licensee may assign claims under this agreement to third parties solely with the licensors prior written consent. The licensee shall have a right of retention or the defence of non-performance of the agreement solely within the context of this Agreement.

#### 7. Functionality, Maintenance and Support

The licensee will be able to use a software that works as advertised in the platform and described in detail in the documentation, available at <https://ij-solutions.atlassian.net/wiki/>

The licensor does not warrant that the software is suitable for a certain purpose of use, unless it is stated explicitly in the documentation mentioned before.

The licensor will rectify any defects and errors of the software duly reported by the licensee within a reasonable period of time. The licensor may rectify defects by making available a software that is free from this defect or by informing the licensee of a way to avoid the effects of the defect.

The licensor is liable for defects of the software only to the extent that the licensor is responsible for them.

In the event that the licensee make enhancements or add-ons to the software, the licensee acts at own risk and sole responsibility. The licensor does not assume any warranty obligations for defects in the components of the software that are affected by modifications or add-ons, unless the licensee is able to prove that the defect is not due to the modification or add-on or if the licensor has approved the modification or add-on in written from. The same applies if modifications, add-ons or other unauthorized interferences by the licensee in the software outside the existing standard functionality of the software change or expand the contents or structure of the databases of the software.

The licensor make available new releases of the software from time to time at our own choice. It may happen that new releases do not contain all functionalities of previous releases or do not have full downward compatibility to previous versions of the software. The licensee can decide at own choice to use new releases, unless terms under section 5 apply. In case the licensee uses new releases this agreement applies to such releases as well. Bugs will be fixed by releasing a new version of the software which contains the fix.

#### 8. Limitation of Liability

To the maximum extent permitted under applicable law, the licensor excludes its liability for damages of any kind or nature, including without limitation any compensatory, incidental, direct, indirect, special, punitive or consequential damages (including (without limitation) loss of use, loss or corruption of data, loss of income or profit, loss of or damage to property, claims of third parties, reputational harm, opportunity loss, loss of contracts or customers, loss of goodwill, loss of anticipated savings, recoupment of any investment made, the cost of procuring replacement goods or services, and other losses including attorneys' fees) in connection with (a claim relating to) this agreement, including (without limitation) claims resulting from the (non-)performance of the software.

The foregoing exclusion shall equally apply to the benefit of the licensors and its affiliates' employees, agents, suppliers and contractors.

In the event that liability is nevertheless imposed on the licensor, its affiliates, their employees, agents, suppliers or contractors, the liability shall not exceed the amount of the fees (excl. taxes) paid for the software, if any. In no event shall the licensor have any obligations, responsibilities or liability whatsoever with respect to a backup copy of the software made by the licensee. Third party material shall be exclusively governed by the applicable third party terms and conditions.

#### 9. Confidentiality and Data Protection

The parties agree to treat in confidence, also beyond the end of this agreement, all confidential information, of which they obtain knowledge, or which are provided to them prior to or during performance of the contract by the other party, unless such confidential information becomes publicly known without a breach of the confidentiality obligation. The parties shall keep and safeguard Confidential Information in a manner that excludes access by third parties. The licensee shall only enable access to confidential information for those employees and authorized persons who require such access in order to perform their work responsibilities. Such persons shall be instructed about the confidentiality obligation.

Where, in the course of providing the licensors contractual obligations under this agreement, the licensor process personal data for which the licensee is the responsible party or where access to such personal data is possible, the parties shall in advance enter into an agreement on processing of personal data that complies with the relevant statutory requirements.

The licensor may use the licensees contact data (name, email address) for sending the licensee emails with information regarding the software during an active license or evaluation term and a period of 6 months after its end. The licensee can deny this right at the time of the conclusion of this agreement as well as at any time afterward by submitting a request via email to [info@ij-solutions.com](mailto:info@ij-solutions.com), requesting the type of information you do not want to receive any more.

The licensor may name the licensee as a referential customer as of conclusion of this agreement. The licensee can deny this right at the time of the conclusion of this agreement as well as at any time afterward by submitting a request via email to [info@ij-solutions.com](mailto:info@ij-solutions.com), requesting the references to be deleted. Upon receipt of such request, the licensor will remove any reference to the licensee within 30 days and make no further reference to the licensee.

The information the licensee provides will be used by the licensor to provide support services, to promote services and to fulfill legal obligations (e.g. accounting). Information on the licensee will not be shared with third parties. The licensor will hold the personal data the licensee provided for 3 years after the expiration of an active license, for 1 year after the expiration of an evaluation license. The licensee has a right to access personal information, to object to the processing of personal information, to rectify, to erase, to restrict, to port personal information and to apply to a data protection authority.

#### 10. Choice of Law and Venue, Final Provisions

The german law applies excluding its conflict of laws rules. The standard UN Convention on Contracts for the International Sale of Goods (CISG) is excluded.

The sole place of jurisdiction for all disputes arising from this agreement is Hamburg/Germany.

If any provision of this agreement is prohibited, invalid or unenforceable in any jurisdiction, that provision will, as to that jurisdiction be ineffective to the extent of the prohibition, invalidity or enforcement without invalidating the remaining provisions of this agreement or affecting the validity or enforcement of that provision in any other jurisdiction

#### 11. Evaluation Period

The software can be tested free of charge for a period of 30 days ("Evaluation period") by downloading the software from the platform. With the expiry of the evaluation period the software will automatically stop functioning.

The following provisions shall apply to the evaluation period and take precedence over the general provisions of the agreement set in sections 1 to 10 above:

1. ij-solutions is not obliged to any maintenance or support. The statutory provisions of the German Civil Code shall apply in respect of ij-solutions warranty and liability obligations.

2. ij-solutions grant a worldwide, non-exclusive, right of use of the software for 30 days - solely on hardware systems owned, leased or controlled by the individual or single legal entity downloaded the software.

3. The right granted pursuant to no. 2 shall commence with the download of the Software.

---
language: "en"
---
# Epic Clone Documentation

Welcome to the documentation of the Epic Clone app for Jira Data Center. Here, we provide detailed information on the app's functionality, usage, and configuration options specifically related to epic cloning.

* [Getting Started](https://docs.ij-solutions.com/epic-clone/getting-started.md)
[Epic Clone](https://docs.ij-solutions.com/epic-clone/epic-clone.md)
* [Cloud Migration](https://docs.ij-solutions.com/epic-clone/cloud-migration.md)

---
language: "en"
---
# Clone Process

When you clone an epic in Jira using the epic clone feature, a screen will appear that allows you to configure the settings for the cloned epic and its associated issues. This page provides a detailed explanation of the options available to you. For instance, let's consider the scenario where we want to clone this epic using the epic clone option:  
![image-20210916-073257.png](https://docs.ij-solutions.com/__attachments/a_71c7787569f1540b627e421d6c683757ec3427398a4789badb417f7a5fddf4f3/image-20210916-073257.png?cb=a739a03714c0836c0599b3d2bc15b061)

The epic includes four issues, two sub-tasks, one linked issue, one attachment, and a specified value for the original estimate. By selecting More → Clone Epic Template, you will access the epic clone configuration screen, which will be detailed in the following section.

## Clone Configuration

![Screenshot 2025-07-20 at 14.07.55.png](https://docs.ij-solutions.com/__attachments/a_e8c18917dfee53287b795b34238f1acb666ae3218daffaa2f61e3e2cfba42a99/Screenshot%202025-07-20%20at%2014.07.55.png?cb=373cf5ee0649f805b2121b496be97c21)  
**To Project:**Choose the target project for your clone. You will only see projects in the selection list that you have access to and that are configured with the epic issue type.

**Summary:**Set the summary for the cloned epic. The summary of the source epic is displayed by default.

**Epic Name:**Set the epic name field for the cloned epic. The epic name of the source epic is displayed by default.

**In Description:**The find \& replace functionality for the description field is particularly beneficial when you have placeholders in your source or template epic description. By entering the placeholder in the "find" section and the desired value in the "replace" section, the description in the cloned epic will be updated accordingly.

**Component(s):**Set the component(s) field in your cloned epic. The field value of the source epic is displayed by default if a component is set. The select list will show all available components in the target project (see project field on top).

Optionally, you can choose to set the selected component(s) in all cloned issues. If this checkbox isn't checked the components field value will be copied from source to target issues.

**Fix Version(s):**Set the fix version field in your cloned epic. The fix version value of the source epic is displayed by default if a version is set. Please note that the fix versions you select here will be set also in all issues in epic. The select list will show all available versions in the target project (see project field on top).

Optionally, you can choose to copy set fix versions of all cloned issues.

**Security Level:**To set the security level for your cloned epic. Please be aware that the chosen security level will also apply to all issues within that epic. The selection list will display all available security levels for the target project (refer to the project field at the top). To configure the issue security during the cloning process, you must possess the appropriate "set issue security" permission in the target project. If you lack this permission, the cloning process will not succeed.

**Original Estimate:**Set the original estimate for the cloned epic. The estimation value of the source epic is displayed by default if it has a value set.  
**Assignee:**Choose the assignee for the cloned epic. Only users with assignable permissions in the target project are eligible for selection. Please enter at least three characters to search for assignable users within the target project.

Optionally, you can choose to set the selected user as assignee for all cloned issues.

**Due Date:**Set the due date for the cloned epic.

Optionally, you can choose to copy set due dates of all cloned issues.

**Clone Attachments:**If you would like to clone the attachments of the epic, please check this option.

**Clone Links:**To clone the issue links of the epic, please check this option. If selected, the cloned epic will be linked to the same issues as the original epic.

**Add Labels:**Add one or several labels to the issue. Labels in this field need to be separated by comma (","). Spaces can't be inserted. Existing labels will remain and cloned as well. The additional labels added on the clone screen will be set on all cloned issues if no individual labels are set for child issues on the next page (see below).

Clicking "Next" will take you to the second page, where you can configure the issues within the epic. At this stage, the required fields for the target project will be validated. For instance, if the due date is mandatory, you will not be able to proceed without entering a value in the due date field.

![Screenshot3_new.png](https://docs.ij-solutions.com/__attachments/a_54c8c1ac9d820ceb99e7ab7a15cbf2ef4e28803a796e0d309919801ae8010e13/Screenshot3_new.png?cb=b8d747d5f6cabc707f59cd9d720757d8)

### Issues in Epic

This screen displays all issues within the epic, showcasing the issue type icon, key, and summary for each item. You can select which issues to clone by using the checkboxes next to them. Additionally, you have the option to configure some extra information here.

**Original Estimate:**Set the original estimate for the different issues in epic which will be cloned. The estimation value of the source issue is displayed by default if it has a value set.

**Due Date:**Set the due date for the different issues in epic which will be cloned.

**Assignee:**Select the assignee for the different issues in epic which will be cloned. Only users with assignable user permission in target project can be selected here.

If you selected on the previous screen that the epic assignee should be assigned to all issues, you won't be able to select an assignee for issues in epic here.

**Story Points:**To set story points for stories within an epic, ensure that this field is only visible for the story issue type. Additionally, the story points custom field must be present in your Jira instance; please note that it will not function correctly if the field has been renamed in your instance.

#### Sub-Tasks

If the epic includes sub-tasks, they will be listed below the issues in the epic section, complete with the issue type icon, key, and summary. Just like the issues in the epic, you can select whether to clone these sub-tasks using the checkbox. If the checkbox is checked, the sub-tasks will be cloned into the target epic.

#### Linked Issues

If the epic has any linked issues, they will be presented in a list beneath the sub-tasks section. Additionally, for both the epic and the sub-tasks, you have the option to determine whether the linked issues should be cloned. **Please note that if the checkbox is selected, those issues will be cloned, and the cloned issue will be associated with the target epic.**

![Screenshot 2025-07-20 at 14.14.25.png](https://docs.ij-solutions.com/__attachments/a_257bc963bacf705dbc534fdcd3ea1da576d3ac3556368ac961f07e3719597d10/Screenshot%202025-07-20%20at%2014.14.25.png?cb=09e937ac7dac167eec802dd9c348db90)

#### Summary Prefix and Suffix

You have the option to add a prefix or suffix for the summaries of issues in an epic, sub-tasks, or linked issues by filling in the two fields on the right side. Any text you enter will appear as preview immediately before or after the issue summaries displayed on the left side, respectively.

#### Find and replace

To update the summary, description, or both in all child issues, use the find and replace feature. This functionality is particularly beneficial when you have placeholders in your template issues that you wish to substitute with actual values during the cloning process.

#### Child issue labels

You can assign distinct labels exclusively to child issues. In this field, labels must be separated by commas (","). Please note that spaces are not permitted. Existing labels will be retained and cloned as well.

#### Internal links

Decide whether to replicate internal links among child issues. Internal links refer to connections between child issues that belong to the **same Epic** . If you choose to enable this option, those links will be maintained and established between the corresponding cloned child issues (see [Clone Process \| External/internal links of child items](https://docs.ij-solutions.com/epic-clone/clone-process.md#External/internal-links-of-child-items) for more details).

If you finished your settings, just press the "Start Clone" button to start the cloning process.  
Please note that regardless if the issues in epic or linked issues are located in different projects or not in the same project than the source epic, all issues will be cloned to the project selected in the "to project" field (= target project).

## External/internal links of child items

As the cloning of child issue links can become complex, here is a table with examples for the different possibilities. Let's assume we have a source Epic with child items A, B and C, and issues D and E, which are outside of the source Epic, so not among the children.

* Source Epic

  * Child: Item A

  * Child: Item B

  * Child: Item C

* Item D

* Item E

|    **Link**     | **Type** | **Selected link option for child links** |               **Result**                |
|-----------------|----------|------------------------------------------|-----------------------------------------|
| Item A → Item D | external | Clone external links                     | Cloned item A → Item D                  |
| Item A → Item D | external | Clone internal links                     | no link created as link is not internal |
| Item B → Item C | internal | Clone external links                     | Cloned item B → Item C                  |
| Item B → Item C | internal | Clone internal links                     | Cloned item B → Cloned item C           |

## Results

Once the cloning process is complete, the results will be displayed. You can then access the newly created epic or issues by clicking on the corresponding links.

![Results.png](https://docs.ij-solutions.com/__attachments/a_bfc00799a5afcffd0fe4495ebd9564228e4c7a28289368961e0053bb022d595d/Results.png?cb=f10dd34448542f2554e72a15fba8a4e7)

---
language: "en"
---
# Cloud Migration

On this page we explain what you need to consider when migrating from Server to Cloud in regards of our app Epic Clone.

## App Data Migration

As our app **doesn't store any app specific data**, there is no data to migrate when transferring your Server instance to Jira Cloud. Like it is for the Server app, you just need to install the app, apply a license and start using it. There is no app data that is generated on installation and nothing to configure. Just start using it and save time when duplicating epics with issues in epic.

### Differences between Server and Cloud version

As also Jira Cloud is different to Jira on premise, also the Epic Clone app has some differences between Server/DC and Cloud version. The following table shows what features are available on Server and Cloud and what differences exist.  

|                            **Feature**                             |                                                                         **Epic Clone Server / Data Center**                                                                          |                                                                                                  **Epic Clone Cloud**                                                                                                  |
|--------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Clone epics together with issues in epic                           | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Clone every issue type together with child issues (e.g. sub-tasks) | ![cross mark](https://docs.ij-solutions.com/__attachments/a_f9450b2f23e7b558a8684069af4cfc93796e025f151163a344100d84416e762c/atlassian-cross_mark?cb=a9c671cfc7809253be52d640dbbf1019)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Decide which child issues to clone and which not                   | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Clone across projects                                              | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) *also from team- to company managed projects and vice versa* |
| Clone linked issues or links                                       | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Set new summary and epic name during cloning                       | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Set new assignee during cloning                                    | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) *for epic + issue in epic* | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) *only for parent issue*                                      |
| Modify Labels                                                      | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Modify components and fix versions                                 | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Modify estimation                                                  | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Clone attachments                                                  | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Search \& Replace functionality for epic description               | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Search \& Replace functionality for child issues summaries         | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Add prefix or postfix to issues in epic summary                    | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |
| Epic clone administration: Limit access to certain groups/projects | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                            | ![check mark](https://docs.ij-solutions.com/__attachments/a_723a9624272099243e2a0a881c129c8cff7951d63db4420479adea9d6eae6f40/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955)                                                              |

Please also have a look at our documentation for further details on the differences between Server and Cloud version:

* Epic Clone Server / Data Center: [Epic Clone](https://docs.ij-solutions.com/epic-clone/epic-clone.md)

* Epic Clone Cloud: [Epic Clone Cloud Documentation](https://docs.ij-solutions.com/epic-clone-cloud.md)

We will update this page on regular intervals as we always try to improve our apps and reduce the differences between Server and Cloud version. However, if you have any feedback, questions or feature request, feel free to contact us via our [Service Management](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1)

---
language: "en"
---
# Epic Clone

## What does Epic Clone do?

With Epic Clone, you gain the enhanced capability to clone an epic along with all its associated issues in a single action. In contrast, the standard cloning feature in Jira allows you to clone only the epic issue itself, with the option to include attachments, links, or sub-tasks. However, issues connected to the epic via the epic link field cannot be cloned simultaneously with the epic during the same cloning process.

Epic Clone also offers the flexibility to configure cloned epics and their associated issues. This functionality extends to cloning across different projects as well. The following issue attributes can be modified:  

### Epic:

* Target project (also all issues in epic will be cloned to that project)

* Summary

* Assignee

* Epic name

* Find and replace for description

* Component(s)

* Fix version(s)

* Security level

* Original estimate

* Due date

* Labels (add custom label)

#### Issues in Epic:

* Add summary prefix

* Add summary suffix

* Find and replace in issues summaries and / or descriptions

* Original estimate

* Due date

* Assignee

* Labels (add custom label)

* Story points (for stories only)

When it comes to attachments, sub-tasks, and linked issues, you can choose whether to clone them or not.

## How can Epic Clone be used?

Upon installing the app, you will notice an additional option in the "More" menu of Epics, labeled "Clone Epic Template."  
![TN2_new.png](https://docs.ij-solutions.com/__attachments/a_56d69d0a8350fa6fd6c93990b8fe17e20202436963c5b865385f7be68db1ce36/TN2_new.png?cb=091081559f76ef3f3c159fa9f7289396)

Clicking on that entry will open the epic clone configuration.

You can find detailed information about the Epic Clone process here: [Clone Process](https://docs.ij-solutions.com/epic-clone/clone-process.md)

## What can Epic Clone be used for?

The app could be particularly valuable for you, especially if you have template epics that you wish to reuse. Its cross-project cloning functionality enables you to establish template epics within a designated template project and seamlessly transfer them to active projects whenever needed.

Consider a scenario where you work in a software development company and require certain modules for every software application you create. Often, the stories associated with these modules will be similar across different projects. By having them organized within a template epic, you can significantly reduce the effort involved in creating and structuring these issues. This allows you to clone the entire epic, along with all its issues, in one swift action whenever necessary.

At the start of each project, you can rapidly establish the structure with epics and issues. With the epic cloning feature, you can easily replicate the template epics and their associated issues into your new project, assign them to the appropriate team members, and set estimation values---all in a single action for each epic. This streamlined process saves you considerable time compared to manually setting up a new project, allowing you to concentrate on the truly important tasks at hand!

## Can the access to Epic Clone be restricted?

Jira administrators have the ability to restrict access to the epic cloning feature for specific user groups or projects. This functionality can be particularly beneficial when dealing with extensive epics that should only be duplicated by users who are knowledgeable about the process. For instance, in such cases, cloning could be limited exclusively to administrators.

Another scenario might involve allowing cloning solely from designated template projects while preventing it from productive projects in general. In this way, the epic cloning capability can be confined to those specific template projects.

For more details, please have a look at this page: [Epic Clone Administration](https://docs.ij-solutions.com/epic-clone/epic-clone-administration.md)

If you experience a bug in the app, if you have an idea for improvement or if you have another topic you want to talk about, feel free to visit our [service management](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1) or contact us via [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net)

---
language: "en"
---
# Epic Clone Administration

This page is relevant for Jira administrators only as the epic clone configuration is located in the system administration of Jira.

On the epic clone configuration page, Jira system administrators can limit the access to epic clone to Jira administrators, project administrators, certain user groups, or projects.

Furthermore, the cloning of attachments in epic clone can be disabled completely. These settings might be useful if you have sensitive data in your templates, which shouldn't be copied to other projects without control who is doing this.

You can find the configuration page in the Jira system administration → Manage Apps → Epic Clone section on the left sidebar. If you don't modify anything here, nothing will change and you will have epic clone available for all Jira users (with create/edit permission in the project) and in all projects. The default page looks like this.  
![image-20210916-080518.png](https://docs.ij-solutions.com/__attachments/a_cfc35f0fafa8008df6bdc21a0fab916e3d79aa8ee6ec18cb1c70880ee1f0ea0f/image-20210916-080518.png?cb=adca42fb74d2923650fc0241c597cd79) Epic clone configuration page without any settings

If you select one or more groups and/or one or more projects, the clone epic template entry in the more menu of Jira issues will only be available for users in those groups and in the selected projects. Again, if you don't select any group, epic clone will be available for all users, and if you don't select a project, epic clone will be available in all projects, respectively.

Let's have a look at this example:  
![image-20210916-080544.png](https://docs.ij-solutions.com/__attachments/a_46aa0864a55d8951afe93d66954ef20473ec5d3d028225e9b1cefbee55fd7335/image-20210916-080544.png?cb=1f7cd3e53528db67639acec6604bafbf) Example for epic clone configuration

In this case, the clone epic template option will only be visible for users in the jira-administrators group and in the project "TEST".  
For all settings you do, please don't forget to save your configuration so it is applied to the availability of epic clone.

---
language: "en"
---
# Getting Started

Thanks for your interest in the Epic Clone app for Jira. Here we will explain what you need to do to get the app working and take over cloning tasks you might be doing manually so far.

First, either download and install the app directly from the marketplace integration in your Jira instance (System Administration → Manage Apps → Find new Apps) or download the .jar File from the marketplace and install it via System Administration → Manage Apps → Upload App.  
![Bildschirmfoto 2021-01-30 um 16.03.45.png](https://docs.ij-solutions.com/__attachments/a_2b94c1d98b42110bac74355765519fa4581a5ec611c80a086edb46225d5607d4/Bildschirmfoto%202021-01-30%20um%2016.03.45.png?cb=ee25e775c7143693cc1397df9f5aaedc)

After installing the app you will already see the "Clone Epic Template" in issues of type epic.  
![TN2_new.png](https://docs.ij-solutions.com/__attachments/a_5ff244c7e7fd1cf15c0d720b09e6490115e942112004eaa2a19bc09f5bd2e5b8/TN2_new.png?cb=091081559f76ef3f3c159fa9f7289396)

If you click on the Clone Epic Template entry, the epic clone screen will open. However, you will see a red not licensed tag in the top right corner where the start clone button would normally appear.  
![Bildschirmfoto 2021-01-30 um 16.12.40.png](https://docs.ij-solutions.com/__attachments/a_435d56c77dad39075074aa5b916e4e7351ff87c0953415fb5698ecf380fc4673/Bildschirmfoto%202021-01-30%20um%2016.12.40.png?cb=b98bb4f710a94c249ba7ff476e772b83)

Cloning will not be possible as long as you didn't add either an evaluation or a purchased license to the app on the Manage Apps screen in the Jira system administration. We recommend to test the app with an evaluation license before you purchase it.  
![Bildschirmfoto 2021-01-30 um 16.11.26.png](https://docs.ij-solutions.com/__attachments/a_c36112dd81b36ff37090eae7b10c5c76209331da98bd87cf902700b15fc33ddc/Bildschirmfoto%202021-01-30%20um%2016.11.26.png?cb=b475a9291a3b1f5a8fc0e523af48cf6f)

After adding a valid license, the app listing in your Jira instance will look like this.  
![Bildschirmfoto 2021-01-30 um 16.14.49.png](https://docs.ij-solutions.com/__attachments/a_6ffbb8052e4f8a557a98fbc59c924c72a30ac696037d3c29e70e13e9170e6f20/Bildschirmfoto%202021-01-30%20um%2016.14.49.png?cb=0bae876d86a5030464c76cf6f4fd83c4)

With a valid license you will be able to use the app and clone epics together with issues in epic and linked issues in one action.  
![Bildschirmfoto 2021-01-30 um 16.15.55.png](https://docs.ij-solutions.com/__attachments/a_0a04fcf7477f1ad83a11ed8962d4cd9dc4012a6e340b08aee4b536c3df7cce8e/Bildschirmfoto%202021-01-30%20um%2016.15.55.png?cb=6690ddd0bbfe432303150dc8dc9c8086)

If you face any problems with the described procedure, experience a bug in the app, if you have an idea for improvement or if you have another topic you want to talk about, feel free to visit our [service management](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1) or contact us via [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net)

---
language: "en"
---
# User Absence Planner Cloud Documentation

Check out our documentation including a getting started page and detailed information on app usage and configuration.

* [Getting Started](https://docs.ij-solutions.com/uap-cloud/getting-started.md)
* [User Absence Planner Global Page](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-global-page.md)
* [User Absence Planner Issue View](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-issue-view.md)
* [User Absence Planner Admin Settings](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-admin-settings.md)
* [REST API Endpoints](https://docs.ij-solutions.com/uap-cloud/rest-api-endpoints.md)
* [Automation Actions](https://docs.ij-solutions.com/uap-cloud/automation-actions.md)
* [JQL Function](https://docs.ij-solutions.com/uap-cloud/jql-function.md)

---
language: "en"
---
# API Documentation

**Please note:** Each instance has unique endpoints, which can be retrieved on the user absence planner settings page in the Jira administration by system administrators. The email address of the user you want to manage absences for is always required as parameter.

## Authentication

When accessing any of the REST API endpoints mentioned below, users must authenticate themselves using the email associated with their Atlassian account and an app API token obtainable either from the app's administration, or from the api token tab on the User Absence Planner global page.

To generate your token as Jira administrator, navigate to Marketplace Apps → User Absence Planner Settings (left sidebar) → API token tab.  
![image-20260926-151934.png](https://docs.ij-solutions.com/__attachments/a_a755274ff08e96b1a74131835f9e2969fa1384cd6a2422ead48b6fe187d0b734/image-20260926-151934.png?cb=679a45caa99aa2eefb738322c45a6d1c)

### Personal API token

Click Create new API token to generate a token for your admin Jira account. In the dialog, enter a name and choose an expiration: 30, 90, 180, 365 days, or never.  
![image-20260926-152357.png](https://docs.ij-solutions.com/__attachments/a_edbe5e472954580f3e433fe7c8f681fa925eef1e6a883ffa1c87fa44f9d97a8f/image-20260926-152357.png?cb=5e40327adc93fa856fdd5456d37f31c1)  
Please remember that your generated token is only visible during the creation process in the modal dialog. It is crucial to copy it to your clipboard and securely store it. Once generated, the token cannot be displayed again. In case you misplace your token and fail to save it, you will need to delete the current token and generate a new one.

### API token for Service Accounts

For [Atlassian service accounts](https://support.atlassian.com/user-management/docs/understand-service-accounts/), create API tokens from the API token tab using its button. This is useful when you use service accounts for external integrations and interfaces.  
Service accounts in your instance are fetched regularly. They may not be available immediately after app installation or update.

You can also fetch service accounts manually using the Refresh now button in the token creation dialog.  
![image-20260926-152906.png](https://docs.ij-solutions.com/__attachments/a_3708fb3816677257ae7231fdda17182ad01b9f0836e37bf34883077e1276fee0/image-20260926-152906.png?cb=a2f88ac770898c93a5bcafac43135b86)  
API tokens for service accounts always expire; you cannot set them to never expire.

Please remember to grant permission to edit/view absences for other users to service accounts if you want to use them for external system integration.

If non-admin users receive permission to use the API, they will also see an API token tab on the global User Absence Planner page.  
![image-20260926-153359.png](https://docs.ij-solutions.com/__attachments/a_4104e7aee23b86c6770f9ab6b79996cb05f7f2ffd7cf7bc62071bf9c640cbd4d/image-20260926-153359.png?cb=285e4806ea6ea6d0d23261a9907e0ae9)

You can get the REST API endpoints from the corresponding button.  
![image-20260926-153506.png](https://docs.ij-solutions.com/__attachments/a_bc481bb5a9604751da6be015c0959ac1a85bca301b049c31d1c215543f4d38d4/image-20260926-153506.png?cb=9754504bff248348bf019a08725451fa)
REST API endpoint information for non-admin users

## REST API Endpoints

### 1. Create Absence

Create a new absence entry for a specific user.

* Method**:** **POST**

* Parameters**:**

  * user: The email address or account id of the user you want to create an absence for.

* Body**:**

  JSON

      {
          "title": "<title>",
          "type": "<type>",
          "start": "<date_format_YYYY-MM-DD>",
          "end": "<date_format_YYYY-MM-DD>",
          "message": "<message>",
          "startTime": "<time_HH:mm_or_h:mm_AM/PM>",
          "endTime": "<time_HH:mm_or_h:mm_AM/PM>"
      }

  Example:
  JSON

      {
          "title": "Summer holidays",
          "type": "Holiday",
          "start": "2024-08-03",
          "end": "2024-08-14",
          "message": "I am currently out of office with no access to my Jira tasks."
      }

All values required except message, start and end time.

* Endpoint URL: Unique endpoint for your cloud instance. As system administrator, get it from Marketplace Apps → User Absence Planner Settings → REST API Endpoints tab

**Responses:**  

| **Status code** |     **Status text**     |                                                                                                       **Body**                                                                                                       |                                                                                                                                           **Reason**                                                                                                                                           |
|-----------------|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 201             | `Created`               | JSON object of new absence including new id. JSON { id: <new_absence_id>, title: <new_absence_title>, type: <new_absence_type>, start: <new_absence_start>, end: <new_absence_end>, message: <new_absence_message> } |                                                                                                                                                                                                                                                                                                |
| 500             | `Internal Server Error` | JSON { error: true, message: "Saving new absence not possible at the moment. Please try again." }                                                                                                                    | An error occurred when the new absence is saved.                                                                                                                                                                                                                                               |
| 405             | `Method not allowed`    | JSON { error: true, message: "Method not allowed. Please use POST method." }                                                                                                                                         | Another method than POST has been used to call the endpoint.                                                                                                                                                                                                                                   |
| 400             | `Bad request`           | JSON { error: true, message: "<Reason for error in request body>" }                                                                                                                                                  | The error can be returned for multiple reasons: * the format of the request body isn't correct * provided start date is later than end date of the absence * required fields missing in request body * the provided absence type is invalid * the provided dates aren't in format `YYYY-MM-DD` |
| 401             | `Unauthorized`          | JSON { error: true, message: "Unauthorized - something is wrong with the provided credentials. Please authenticate with email address and Atlassian api token." }                                                    | Either email address or api token used for authentication isn't correct. The user couldn't be authenticated on the instance with the provided credentials.                                                                                                                                     |
| 404             | `Not found`             | JSON { error: true, message: "We couldn't find an user with the provided email address." }                                                                                                                           | No user could be found with the provided email address.                                                                                                                                                                                                                                        |
| 403             | `No access`             | JSON { error: true, message: "Access denied - you do not have permission to create an absence for this user." }                                                                                                      | An absence for another user than the one calling the api should be created, but the user calling the api doesn't have the permission to create absences for other users.                                                                                                                       |

#### 2. Edit Absence

Edit an existing absence entry for a specific user.

* Method**:** **PUT**

* Parameters**:**

  * user: The email address or account id of the user you want to edit an absence for.

  * title or absenceId: Title or absence id of the absence you want to edit

* Body**:**

  JSON

      {
          "title": "<title>",
          "type": "<type>",
          "start": "<date_format_YYYY-MM-DD>",
          "end": "<date_format_YYYY-MM-DD>",
          "message": "<message>",
          "startTime": "<time_HH:mm_or_h:mm_AM/PM>",
          "endTime": "<time_HH:mm_or_h:mm_AM/PM>",
          "allDay": <true_or_false>
      }

  Example:
  JSON

      {
          "id": "_.gee4i65",
          "end": "2024-08-21",
          "message": "My holidays have been extended until August 21."
      }

No required attributes. The absence attributes included in the body will be updated.

* Endpoint URL: Unique endpoint for your cloud instance. As system administrator, get it from Marketplace Apps → User Absence Planner Settings → REST API Endpoints tab

**Responses:**  

| **Status code** |     **Status text**     |                                                                                                **Body**                                                                                                |                                                                                                                                                     **Reason**                                                                                                                                                      |
|-----------------|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 201             | `Created`               | JSON object of edited absence. JSON { id: <new_absence_id>, title: <new_absence_title>, type: <new_absence_type>, start: <new_absence_start>, end: <new_absence_end>, message: <new_absence_message> } |                                                                                                                                                                                                                                                                                                                     |
| 500             | `Internal Server Error` | JSON { error: true, message: "Saving absence not possible at the moment. Please try again." }                                                                                                          | An error occurred when the edited absence is saved.                                                                                                                                                                                                                                                                 |
| 405             | `Method not allowed`    | JSON { error: true, message: "Method not allowed. Please use PUT method." }                                                                                                                            | Another method than PUT has been used to call the endpoint.                                                                                                                                                                                                                                                         |
| 400             | `Bad request`           | JSON { error: true, message: "<Reason for error in request body>" }                                                                                                                                    | The error can be returned for multiple reasons: * the format of the request body isn't correct * start date would be later than end date of the absence after editing * id of absence to be edited is missing in the request body * provided absence type is invalid * provided dates aren't in format `YYYY-MM-DD` |
| 401             | `Unauthorized`          | JSON { error: true, message: "Unauthorized - something is wrong with the provided credentials. Please authenticate with email address and Atlassian api token." }                                      | Either email address or api token used for authentication isn't correct. The user couldn't be authenticated on the instance with the provided credentials.                                                                                                                                                          |
| 404             | `Not found`             | JSON { error: true, message: "We couldn't find an user with the provided email address." }                                                                                                             | No user could be found with the provided email address.                                                                                                                                                                                                                                                             |
| 404             | `Not found`             | JSON { error: true, message: "Invalid absence ID. The absence with the provided ID doesn't exist." }                                                                                                   | No absence to edit could be found for the provided id.                                                                                                                                                                                                                                                              |
| 403             | `No access`             | JSON { error: true, message: "Access denied - you do not have permission to create an absence for this user." }                                                                                        | An absence for another user than the one calling the api should be edited, but the user calling the api doesn't have the permission to edit absences for other users.                                                                                                                                               |

#### 3. Delete Absence

Delete an existing absence entry for a specific user.

* Method**:** **DELETE**

* Parameters**:**

  * user: The email address or account id of the user you want to edit an absence for.

  * One of the following is required:

    * title: Title of the absence you want to delete

    * absenceId: Absence id of the absence you want to delete

    * date: Delete all absences that are planned for this date

    * Date range - from and to: Delete all absences that are planned in this date range

* Body**:**None

<!-- -->

* Endpoint URL: Unique endpoint for your cloud instance. As system administrator, get it from Marketplace Apps → User Absence Planner Settings → REST API Endpoints tab

**Responses:**  

| **Status code** |     **Status text**     |                                                                             **Body**                                                                              |                                                                              **Reason**                                                                               |
|-----------------|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 200             | `OK`                    | Id of the absence that has been deleted JSON { id: <absence_id> }                                                                                                 |                                                                                                                                                                       |
| 500             | `Internal Server Error` | JSON { error: true, message: "Deleting absence not possible at the moment. Please try again." }                                                                   | An error occurred when deleting the absence.                                                                                                                          |
| 405             | `Method not allowed`    | JSON { error: true, message: "Method not allowed. Please use DELETE method." }                                                                                    | Another method than DELETE has been used to call the endpoint.                                                                                                        |
| 400             | `Bad request`           | JSON { error: true, message: "Missing required parameters. Absence ID is missing." }                                                                              | No id for an absence to be deleted has been provided as parameter.                                                                                                    |
| 401             | `Unauthorized`          | JSON { error: true, message: "Unauthorized - something is wrong with the provided credentials. Please authenticate with email address and Atlassian api token." } | Either email address or api token used for authentication isn't correct. The user couldn't be authenticated on the instance with the provided credentials.            |
| 404             | `Not found`             | JSON { error: true, message: "We couldn't find an user with the provided email address." }                                                                        | No user could be found with the provided email address.                                                                                                               |
| 404             | `Not found`             | JSON { error: true, message: "Invalid absence ID. The absence with the provided ID doesn't exist." }                                                              | No absence to delete could be found for the provided id.                                                                                                              |
| 403             | `No access`             | JSON { error: true, message: "Access denied - you do not have permission to delete absences of this user." }                                                      | Absence for another user than the one calling the api should be deleted, but the user calling the api doesn't have the permission to delete absences for other users. |

#### 4. Check Availability

Check availability for a specific user on the current day.

* Method**:** **GET**

* Parameters**:**

  * user: The email address or account id of the user you want to edit an absence for.

* Body**:**None

<!-- -->

* Endpoint URL: Unique endpoint for your cloud instance. As system administrator, get it from Marketplace Apps → User Absence Planner Settings → REST API Endpoints tab

---
language: "en"
---
# Automation Actions

User Absence Planner for Jira Cloud supports Jira Automation actions that allow you to manage absences directly within your automation rules. This enables you to automate absence management workflows without writing custom code or using the REST API directly.  
**Known Limitation: Custom Domains**

The automation actions are currently not working on Jira instances with a custom domain(i.e. instances with a different url than `*.atlassian.net`). This is a known technical limitation. If your instance uses a custom domain, please check back for updates as we are working to resolve this.

## Smart Values

All automation actions support Jira smart values, allowing you to dynamically reference issue or user data in your action inputs. For example:

* `{{issue.assignee.accountId}}` --- the account ID of the issue's assignee

* `{{issue.assignee.emailAddress}}` --- the email address of the issue's assignee

* `{{issue.reporter.emailAddress}}` --- the email address of the issue's reporter

### Accessing Smart Values for Action Outcomes

Actions like Check User Availability and Get Absences for User return data that can be used in subsequent steps of your automation rule via smart values. To find the correct smart value format for an action's output:

1. Open your automation rule in the Jira Automation editor

2. Add a log action component (i.e. after the User Absence Planner action)

3. Click on the available smart values icon

   ![Screenshot 2026-03-20 at 19.32.49.png](https://docs.ij-solutions.com/__attachments/a_d24f618ade05515aa69717f62dea8b15a241532dd2f00db671efe6e22d993cb4/Screenshot%202026-03-20%20at%2019.32.49.png?cb=6d74626026baacf16c3ecfb7527e74e9)
4. Click on the User Absence Planner action you have added to the rule

   ![Screenshot 2026-03-20 at 19.33.23.png](https://docs.ij-solutions.com/__attachments/a_09bd7fbdc2ce28b59c47af21cf63cf9c7daa710db1960990b0aa7486c4c991c4/Screenshot%202026-03-20%20at%2019.33.23.png?cb=3fb7d13cbc2a7e81cba5a7c90154ef9c)
5. The smart values available for that action's output will be listed there with their exact format

   ![Screenshot 2026-03-20 at 19.33.59.png](https://docs.ij-solutions.com/__attachments/a_59d3a8819980b401d7a1f085c7c493fd7283e56152a34aa650bdc99fcc56bcbe/Screenshot%202026-03-20%20at%2019.33.59.png?cb=08c0a5c9a9bfd71eb6f0b7171da0920b)

This is the easiest way to discover the available output smart values for each action.

## User Parameter

For all automation actions, the User parameter accepts either:

* The user's email address (e.g. `jane.doe@example.com`)

* The user's Atlassian account ID (e.g. `5b10a2844c20165700ade21g`)

You can use a smart value for this parameter, such as `{{issue.assignee.emailAddress}}` or `{{issue.assignee.accountId}}`.

## Available Automation Actions

The following automation actions are available:

### 1. Create Absence

Creates a new absence entry for a specified user.

**Action name:** Create absence

**Input fields:**  

|   Field    | Required |                                  Description                                  |
|------------|----------|-------------------------------------------------------------------------------|
| User       | Yes      | The user for whom the absence should be created (email address or account ID) |
| Title      | Yes      | A descriptive title for the absence                                           |
| Type       | Yes      | The absence type (e.g. Holiday, Sickness, Business trip)                      |
| Start date | Yes      | The start date of the absence (format: YYYY-MM-DD)                            |
| End date   | Yes      | The end date of the absence (format: YYYY-MM-DD)                              |
| Message    | No       | An optional out-of-office message visible to other users                      |

Smart values are supported for all fields.

**Output**: The id of the created absence

**Use case example:** Automatically create an absence in Jira when a new approved leave request is created in your HR system or project.

*** ** * ** ***

### 2. Edit Absence

Edits an existing absence entry for a specified user.

**Action name:** Edit absence

**Input fields:**  

|   Field    | Required |                              Description                              |
|------------|----------|-----------------------------------------------------------------------|
| User       | Yes      | The user whose absence should be edited (email address or account ID) |
| Absence ID | Yes      | The ID of the absence to be updated                                   |
| Title      | No       | Updated title for the absence                                         |
| Type       | No       | Updated absence type                                                  |
| Start date | No       | Updated start date (format: YYYY-MM-DD)                               |
| End date   | No       | Updated end date (format: YYYY-MM-DD)                                 |
| Message    | No       | Updated out-of-office message                                         |

Only the fields provided will be updated; all other fields remain unchanged. Smart values are supported for all fields.

**Use case example:** Automatically update an absence end date when a leave request is extended.

*** ** * ** ***

### 3. Delete Absence

Deletes an existing absence entry for a specified user.

**Action name:** Delete absence

**Input fields:**  

|   Field    | Required |                              Description                               |
|------------|----------|------------------------------------------------------------------------|
| User       | Yes      | The user whose absence should be deleted (email address or account ID) |
| Absence ID | Yes      | The ID of the absence to be deleted                                    |

**Use case example:** Automatically remove an absence when a leave request is cancelled or rejected.

*** ** * ** ***

### 4. Check User Availability

Checks whether a specified user is currently available or out of office.

**Action name:** Check user availability

**Input fields:**  

| Field | Required |                                 Description                                 |
|-------|----------|-----------------------------------------------------------------------------|
| User  | Yes      | The user whose availability should be checked (email address or account ID) |

**Output:** Returns the following information, which can be referenced via smart values in subsequent steps of your rule:

* **Availability state** --- whether the user is currently available (`true`) or out of office (`false`)

* **Start date** --- the start date of the current absence, if the user is out of office

* **End date** --- the end date of the current absence, if the user is out of office

* **Message** --- the absence message, if the user is out of office and a message has been set

To find the exact smart value format for these outputs, refer to the [Accessing Smart Values for Action Outcomes](https://docs.ij-solutions.com/uap-cloud/automation-actions.md#accessing-smart-values-for-action-outcomes) section above.

**Use case example:** Check if an assignee is available before assigning an issue to them, and route to an alternate user if they are absent.

*** ** * ** ***

### 5. Get Absences for User

Retrieves all absences for a specified user.

**Action name:** Get absences for user

**Input fields:**  

| Field | Required |                                Description                                |
|-------|----------|---------------------------------------------------------------------------|
| User  | Yes      | The user whose absences should be retrieved (email address or account ID) |

**Output:** Returns a list of absence objects for the user, each containing the absence ID, title, type, start date, end date, and message. The returned data can be referenced via smart values in subsequent steps of your automation rule.

To find the exact smart value format for these outputs, refer to the [Accessing Smart Values for Action Outcomes](https://docs.ij-solutions.com/uap-cloud/automation-actions.md#accessing-smart-values-for-action-outcomes) section above.

**Use case example:** Retrieve a user's planned absences and include them in a notification or report generated by your automation rule.

*** ** * ** ***

## Notes

* The automation actions are currently not available on instances with a custom domain. See the notice at the top of this page for details.

* All automation actions require the User Absence Planner app to be installed. The user who set up the connection to the User Absence Planner app within the automation rule must have the necessary permissions within the app --- note that this is not necessarily the user who triggers the rule at runtime.

* Absence types used in the Create Absence and Edit Absence actions must match the types configured in your instance. See [User Absence Planner Admin Settings](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-admin-settings.md) for details on managing absence types.

* For programmatic access outside of Jira Automation, refer to the [API Documentation](https://docs.ij-solutions.com/uap-cloud/api-documentation.md).

---
language: "en"
---
# Custom Integration with HR System

**Objective:** Develop a custom integration to sync employee leave data from an HR system to Jira.

**Steps:**

1. Set Up Your Environment:

   1. Choose your programming language (e.g., Python, Node.js)

   2. Set up a development environment and install necessary libraries for making HTTP requests (e.g., requests for Python, axios for Node.js)

2. Fetch Data from HR System:

   1. Use the API provided by your HR system to fetch employee leave data

   2. Example (Python):

      Python

          import requests

          hr_system_url = "https://api.hr-system.com/leaves"
          response = requests.get(hr_system_url)
          leaves = response.json()

3. Map Data to Jira API:

   1. Map the leave data from the HR system to the fields required by the User Absence Planner API

   2. Example (Python):

      Python

          for leave in leaves:
              data = {
                  "title": leave["title"],
                  "type": leave["type"],
                  "start": leave["start_date"],
                  "end": leave["end_date"],
                  "message": leave["notes"]
              }

4. Send Data to Jira API:

   1. Use the createAbsence endpoint to create absences in Jira

   2. Example (Python):

      Python

          jira_url = "<cloud_site_unique_createAbsence_endpoint>?user=<user_email_address&cloudSite=<your_cloud_site>"
          headers = {"Content-Type": "application/json"}

          for leave in leaves:
              data = {
                  "title": leave["title"],
                  "type": leave["type"],
                  "start": leave["start_date"],
                  "end": leave["end_date"],
                  "message": leave["notes"]
              }
              response = requests.post(jira_url, json=data, headers=headers)
              if response.status_code == 201:
                  print(f"Successfully created absence for {leave['email']}")
              else:
                  print(f"Failed to create absence for {leave['email']}: {response.text}")

---
language: "en"
---
# Getting Started

Thanks for your interest in User Absence Planner for Jira Cloud. The app can be installed by running through the following steps as Jira administrator.

## Installation

Click on Apps on top and then on "Explore more apps".  
![Explore_more_apps.png](https://docs.ij-solutions.com/__attachments/a_a879e8b66b8efab6f0c256171262d392372fab43e88709f9cd33ce9bfe5cb062/Explore_more_apps.png?cb=84a75fee5360925faabea53a14a0687f)

Search for "User Absence Planner" and click on the User Absence Planner entry in the search results.  
![image-20240215-102922.png](https://docs.ij-solutions.com/__attachments/a_f37790ba04f19e0898ff73bb6864079f3fcb89d1a6272f671359c20456e03c2a/image-20240215-102922.png?cb=45c4d85d6eb4ef00be6959d5df18a63e)

![image-20240227-143310.png](https://docs.ij-solutions.com/__attachments/a_aa9bf49b77707ffc3d35e1697cddda91957cdbd54369cdcdfba1c6056f7abc4e/image-20240227-143310.png?cb=3c877a6fd34681bd677cf5d18ad7ae18)

Click on try it free to start the evaluation. For up to 10 users in your instance, the app remains free. Install the app via the appearing screen.  
![image-20240227-143425.png](https://docs.ij-solutions.com/__attachments/a_78d6a8402a75a25c6a52e4b7147f5446cc55ccd02b48186366016868893a1591/image-20240227-143425.png?cb=8fd3e3a4abc3c2c2326ccd1104fccec2)

After successful installation, a flag is displayed that the app has been added.

### App usage

After installing the app, you will see the following new pages in your Jira instance:

* User Absence Planner global page (Tab Apps on top)

* User availability overview in every Jira issue

* User Absence Planner settings (in system administration - access only for Jira system administrators)

You can find details about the different pages in the following sections:  
**Global page**

[User Absence Planner Global Page](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-global-page.md)  
**Issue view**

[User Absence Planner Issue View](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-issue-view.md)  
⚙️ **Admin settings**

[User Absence Planner Admin Settings](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-admin-settings.md)

If you experience a bug in the app, if you have an idea for improvement or if you have another topic you want to talk about, feel free to visit our [service management](https://ij-solutions.atlassian.net/servicedesk/customer/portal/1) or contact us via [support@ij-solutions.atlassian.net](mailto:support@ij-solutions.atlassian.net)

---
language: "en"
---
# Integrating with Outlook via Zapier

**Objective:** Automatically create and update absences in Jira based on events in Outlook Calendar.

**Steps:**

1. Create a Zapier Account: Sign up for a free account at [Zapier](https://zapier.com/)

2. Set Up a Zap: Create a new Zap in Zapier

3. Trigger:

   1. Choose "Outlook Calendar" as the trigger app

   2. Select the event trigger, such as "New Event" or "Event Start"

   3. Connect your Outlook account to Zapier and set up the trigger details

4. Action:

   1. Choose "Webhooks by Zapier" as the action app

   2. Select "POST" for creating a new absence or "PUT" for updating an existing absence

5. Configure the Webhook:

   1. For creating a new absence:

      1. Set the URL to the createAbsence endpoint (unique for your instance)

      2. Include parameters in URL with the users email address and the cloud site

      3. Define body:

         JSON

             {
               "title": "{{Outlook Event Title}}",
               "type": "Holiday",
               "start": "{{Outlook Event Start}}",
               "end": "{{Outlook Event End}}",
               "message": "Outlook Calendar Event"
             }

   2. For updating an absence:

      1. Set the URL to the editAbsence endpoint (unique for your instance)

      2. Include parameters in URL with the users email address and the cloud site

      3. Define body:

         JSON

             {
               "id": "{{Absence ID}}",
               "title": "{{Outlook Event Title}}",
               "type": "Holiday",
               "start": "{{Outlook Event Start}}",
               "end": "{{Outlook Event End}}",
               "message": "Outlook Calendar Event"
             }

6. Test and Activate:

   1. Test the Zap to ensure that it correctly creates or updates absences in Jira based on Outlook events

   2. Activate the Zap

---
language: "en"
---
# JQL Function

User Absence Planner for Jira Cloud provides a JQL function, `absentUsers()`, that lets you filter or search issues by absence status directly in JQL --- without writing custom code or using the REST API.

## Syntax

The function can be used with the `in` and `not in` operators against any user field --- `assignee`, `reporter`, or a custom user field:

* `absentUsers()` --- users who are absent today.

* `absentUsers("<keyword>")` --- users absent during a relative period. Supported keywords: `today`, `tomorrow`, `thisWeek`, `nextWeek`, `thisMonth`, `nextMonth`.

* `absentUsers("<date>")` --- users absent on a specific date, formatted `YYYY-MM-DD`.

* `absentUsers("<from>", "<to>")` --- users absent at any point within an explicit date range, both formatted `YYYY-MM-DD`.

## Examples

|                               JQL                                |                                                    Result                                                     |
|------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
| `assignee in absentUsers()`                                      | Issues assigned to someone who is currently absent                                                            |
| `assignee not in absentUsers()`                                  | Issues assigned to someone currently available (unassigned issues are excluded, matching native JQL behavior) |
| `reporter in absentUsers("nextWeek")`                            | Issues reported by someone absent at any point next week                                                      |
| `"Custom User Field" in absentUsers("2026-08-01", "2026-08-15")` | Issues where a custom user field points to someone absent within that date range                              |

## Notes

* If an argument isn't recognized (e.g. an invalid keyword or malformed date), Jira displays an error message in the issue navigator rather than silently returning no results.

* For programmatic access outside of JQL, refer to the [API Documentation](https://docs.ij-solutions.com/uap-cloud/api-documentation.md), or for use within automation rules, see [Automation Actions](https://docs.ij-solutions.com/uap-cloud/automation-actions.md).

---
language: "en"
---
# My Absences

On this page, we describe what you can do on the my absences tab.

## Define Absence

On the global page, you can plan your upcoming absences. No matter whether you are away for holidays, a business trip, or a long term leave, you should schedule your absences in advance in Jira to let your team members know that you are out of office.

To add a new absence, go to My Absences → Absence list and click on the Add absence button.  
![image-20240218-150043.png](https://docs.ij-solutions.com/__attachments/a_853b8be5edcb0f4164daf3b0d22a5c9a2e3fe627ac62df19f05cbbb0d6e74ace/image-20240218-150043.png?cb=524d4ddf18c13c224b73bad6afd9c35c)
Absence list

On the screen that opens, you can define the absence with the following information:

* Title for absence

* Type of absence with default options\*:

  * Business trip

  * Training

  * Holiday

  * Sickness

  * Conference

  * Trade fair participation

  * Long term leave

  * Other

* All day toggle --- enabled by default, so the absence covers the entire selected date range. Turn it off to set a start and end time for the absence, useful for half-day absences or absences that only cover part of a day.

* Start date of absence time (Time field if all day toggle above is disabled)

* End date of absence time (Time field if all day toggle above is disabled)

* Message for other users (Absence notice)

\* *The available absence types might be different in your instance. They can be configured by system admins based on specific needs for your company.*  
![image-20260721-174010.png](https://docs.ij-solutions.com/__attachments/a_28cb36d583e3ba8c3fa80fc9d342a7bd36d0ec9cc41cfb261892952ce2ee79e6/image-20260721-174010.png?cb=10416135f5894d0b0ace9ec9857781c6)
Add absence dialog with all day toggle enabled (default)  
![image-20260721-174254.png](https://docs.ij-solutions.com/__attachments/a_7e2f07382e7ef735bdd1ca0528e7c22a575d7e3e06b931d2611dc92b53b081dc/image-20260721-174254.png?cb=224914fe3421a42f05e0194215e0f6e4)
Start and end dates with time selection if all day toggle disabled

### Display and edit absences

The absence list under my absences shows your defined absences. By clicking on the edit button, you can edit them inline in case something needs to be modified. If you want to delete an entry, just click on the trash icon.

After clicking on the edit icon, the respective row in the list will switch to edit mode, and you can modify the data. If something is changed, a check icon appears to save the changes. By clicking on the close icon, you can discard your changes at any time.  
![image-20240218-151226.png](https://docs.ij-solutions.com/__attachments/a_f1c6d6c40ea1667f0052a49256b2a91f687495cdd24ff7d99c6ac96e86922fe7/image-20240218-151226.png?cb=f62f9fce889eebd433b979c44ef77341)
Absence row in edit mode

You will get a notification on successful saving when you finished your modifications.  
![image-20240218-151036.png](https://docs.ij-solutions.com/__attachments/a_41a77515e614dd338fe946513a773b2e104bea3fb3ae2416ef014818a7bfcfb5/image-20240218-151036.png?cb=c67a7a034404d6799b67e8a3c8f0c2e3)

### Automation and alternate settings

On the second tab under my absences, you are able to make settings for alternate user and automation for your absences.  
![image-20240218-151642.png](https://docs.ij-solutions.com/__attachments/a_d768be0602fcc842309cf3251fda465990ffcf29079225c5dca44af825474078/image-20240218-151642.png?cb=8e8eddc676b93cb35b45da0d5513fd65)

* **Comment issue on assignment:** If you set this option, newly created issues assigned to you will be automatically commented with an out-of-office notification. The same happens for issues which are getting assigned to you. The comment is created by the app and will look like this:

  ![OOO_comment.png](https://docs.ij-solutions.com/__attachments/a_9ffae0f5f59f7b7dc344155460afbc80b1b0809e958ae35cd88ded9fe6b1be1f/OOO_comment.png?cb=e872cc582baa3d4799280b6cda99ea1e)

* **Re-assign issue to alternate:** If this checkbox is clicked, created issues assigned to you will be automatically assigned to the selected alternate user (see next settings option). The same happens for issues which are getting assigned to you. If no alternate user is selected, the option will be disabled.

* **Alternate user:**You can select a user, who will be responsible for your Jira issues (assigned to you) during your absence. If no user is selected, you can search for users in the select field. An existing alternate user can be modified by clicking on the edit icon or removed by clicking on the trash icon.

Please note that alternate users need to have the assignable user permission in all projects you get issues assigned during your absence. Otherwise, the automated assignment by the app won't work.  
Please don't forget to save your settings via the save button when you change anything here. Otherwise your changes will be lost.

---
language: "en"
---
# Outlook as Master – Syncing Absences to Jira

## Overview

In many organizations, Outlook Calendar is where employees already record time off --- vacation requests, sick days, business trips. Rather than asking users to enter the same absence twice (once in Outlook, once in Jira), you can set up Outlook as the **master system**: absence events created, changed, or cancelled in Outlook are automatically reflected as absences in Jira via the User Absence Planner (UAP) app.

This page walks through the two building blocks needed to set this up:

1. **Jira side** --- how the sync request is received and turned into a UAP absence

2. **Outlook side** --- how a calendar change is detected and turned into a create/update/delete call

Note: this is not an out-of-the-box integration. It requires either a no-code automation tool (Power Automate) or a small custom script, configured for your organization's Outlook and Jira setup.

*** ** * ** ***

### 1. Jira side: two ways to receive the sync

#### Option A --- Direct REST API calls

Call the UAP [Create / Edit / Delete Absence endpoints](https://docs.ij-solutions.com/uap-cloud/api-documentation.md) directly from whatever runs on the Outlook side.

* Authenticate with an email address + UAP API token (Apps → Manage apps → User Absence Planner Settings → API token tab)

* Since one identity will be creating/editing/deleting absences for many users, that identity needs permission to manage absences on behalf of other users, not just its own

* Simple to set up, but the API token then has to be stored securely wherever your Outlook-side automation runs

#### Option B --- Jira Automation "Incoming Webhook" + UAP Automation Actions (recommended)

Jira Automation supports an **Incoming webhook** trigger, which gives you a URL and secret. Your automation rule receives a JSON payload and then uses the existing [UAP automation actions](https://docs.ij-solutions.com/uap-cloud/automation-actions.md) (*Create absence* / *Edit absence* / *Delete absence* ), referencing the payload via `{{webhookData.<field>}}` smart values.

This is generally the better option when an external system is the master, because:

* No UAP API token needs to be handed to the Outlook-side tool or script --- the automation rule's own connection to UAP handles authentication

* Mapping and validation logic (e.g. rejecting an absence type that doesn't exist in your instance, or branching on create vs. update vs. delete) lives centrally in one Jira Automation rule instead of being scattered across scripts

* The rule doesn't care what triggers it --- you can swap the Outlook-side tool later without touching Jira

* Automation's built-in audit log gives you a ready-made trail for troubleshooting

**Please note:** Automation actions currently aren't available on Jira instances with a custom domain (i.e. anything other than `*.atlassian.net`) --- check this before committing to this approach.

In practice, build either one rule per operation (create/edit/delete) or a single rule that branches on an `action` field you include in the webhook payload.

*** ** * ** ***

### 2. Outlook side: two ways to detect changes and call Jira

#### Option 1 --- Power Automate (no-code, Microsoft-native)

Best suited to teams already working in the Microsoft ecosystem who want something maintainable without writing code. Runs in the cloud, so it isn't tied to a specific laptop being switched on.

* **Trigger:** *When an event is added, updated or cancelled (V3)* (Office 365 Outlook connector), scoped to the calendar you want to sync from. This trigger reports a `Type` (added/updated/deleted) you can branch on.

* **Filter:** decide up front how an absence event is distinguished from a regular meeting. A dedicated Outlook **Category** (e.g. "Vacation", "Sick", "Business Trip") is usually the easiest signal, since it doesn't require moving events to a separate calendar.

* **Action:** an HTTP call to either the Jira Automation incoming-webhook URL (Option B above) or directly to the UAP REST endpoint (Option A).

* **Correlating updates and deletes:** you need to persist a mapping between the Outlook event and the UAP absence ID returned when it was created --- otherwise a later update or cancellation has nothing to target in Jira. Two common approaches:

  * Store the mapping (Event ID → Absence ID) in a SharePoint list or Excel table

  * Write the absence ID back onto the Outlook event itself via a Microsoft Graph `PATCH` call using a single-value extended property, so the mapping travels with the event and no separate storage is needed

* **Licensing note:** calling arbitrary URLs (the HTTP action) is a *Premium* connector in Power Automate --- confirm your tenant has the right licensing before planning around this as the "no-code" option.

#### Option 2 --- Script against Microsoft Graph (PowerShell / Python / Node)

More setup effort, but no Power Automate licensing dependency, and easier to run centrally across many mailboxes at once.

* Register an Entra ID (Azure AD) app with the `Calendars.Read` permission --- delegated (per user) or application (admin-consented, can read across mailboxes, useful for a central sync job)

* Use Microsoft Graph's **delta query** instead of re-scanning the whole calendar on every run:

  * First call: `GET /users/{id}/calendarView/delta?startDateTime=...&endDateTime=...`

  * Store the returned `@odata.deltaLink` and call it again next run --- Graph returns only what changed since then, with deleted events flagged `@removed`

* For each changed event: skip anything that doesn't match your "this is an absence" rule (same category/calendar logic as Option 1), map the fields (see below), then:

  * New event → call Create Absence → store `event.id → absence.id`

  * Already-synced event that changed → call Edit Absence with the stored absence ID

  * `@removed` → call Delete Absence with the stored absence ID

* Run it as a scheduled job on a server, or --- more reliably --- as a timer-triggered Azure Function, so it doesn't depend on any specific machine being on.

*** ** * ** ***

### 3. Field mapping

|                       Outlook                       |            UAP absence field            |                                                             Notes                                                             |
|-----------------------------------------------------|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| Subject                                             | `title`                                 |                                                                                                                               |
| Category (e.g. "Vacation", "Sick", "Business Trip") | `type`                                  | Must exactly match an absence type configured in your instance's UAP admin settings --- agree this mapping up front           |
| Start (date, all-day event)                         | `start`                                 | Format `YYYY-MM-DD`                                                                                                           |
| End (date, all-day event)                           | `end`                                   | Format `YYYY-MM-DD`. Outlook's all-day end date is exclusive (the day *after* the last day) --- subtract one day when mapping |
| Body / a fixed string                               | `message`                               | Optional                                                                                                                      |
| Mailbox owner's UPN                                 | `user` (query parameter / action field) | Assumes the Outlook UPN matches the Jira account email address --- confirm this holds for your tenant                         |

*** ** * ** ***

### 4. Getting started

* Set up the Jira side first (Option B is recommended) --- it's reusable and testable on its own, independent of whatever you build on the Outlook side.

* Pick Option 1 or 2 on the Outlook side based on what's already available: Power Automate Premium licensing, or in-house capacity to build and host a script.

* Introduce a dedicated Outlook Category (or calendar) to mark "this is an absence" before building anything else --- syncing every calendar entry is unreliable, and there's no single, Graph-queryable "this is out-of-office" flag that behaves consistently across all Outlook clients.

* Plan for updates and deletions from day one: without persisting the event ↔ absence mapping, only the initial creation will work reliably.

We don't currently offer this integration out of the box, but the building blocks above (REST API, Automation Actions with Incoming Webhook trigger, and Microsoft Graph) are enough to build it for your organization's specific setup.

---
language: "en"
---
# Prepare for Absence

The idea of this tab is that you can arrange things before you are away. Imagine you have important tasks open, which shouldn't be left behind and needs to be taken care of during your absence.

On the preparation tab you can add comments to those issues stating that you will be out of office, or directly reassign them to someone else. This can be done one by one or for all issues in bulk.

## Upcoming absence notification

If your next planned absence is not more than 5 business days ahead, an info message is displayed on top of the page which reminds you to prepare for the upcoming absence.

With a click on "dismiss", the message disappears and won't be shown again.  
![upcoming_absence_message.png](https://docs.ij-solutions.com/__attachments/a_3e2f4a71e9d3dec8c58fcf095dbbf59ca65013a427f17fd4383e9b657431c86a/upcoming_absence_message.png?cb=f7b6092d0418cec5d0f81879c3a2ca36) Message to inform you about an upcoming absence

### Comment and assign your issues

#### Reference absence

Before you search for assigned issues, you can select an absence to which you would like to refer to. By default, the next upcoming absence is selected. This absence entry is used to pre-fill comments with information on start and end of absence.

#### Search for assigned issues

By clicking on the search button, you can start the search for issues assigned to you. A JQL search is performed in the background to fetch a list of assigned issues from Jira. There are two possibilities to modify the search results:

* **Narrow down to specific projects**: You can select one or several projects in the select field to only search in those projects. If you have a high number of issues assigned in Jira, a limitation to certain projects might be useful.

* **Only unresolved issues:**This selection is set by default and we recommend to keep it like that. By default, only open issues will be searched. If you deselect this option, the number or returned issues might be very high and the search takes a lot longer.

In general, we limit the number of displayed issues in the table to 500 as commenting and assigning of more issues prior to your absence isn't recommended.  
![Prepare_for_absence_search.png](https://docs.ij-solutions.com/__attachments/a_0f32ea94969f19ac2a8ccfcb49d1fac8a7e937cb51bc119fafaf686c378cbeb5/Prepare_for_absence_search.png?cb=2a2ea502fd9f971392cba35e7ecb1529) Search options for preparation of absence

#### Comment and assign

When the search is completed, a list of assigned issues is displayed. To comment on them or change the assignee, you have two options:

* individually one by one

* bulk action

For the individual actions, you can click on the comment or assign button in the respective issue row in the table. A dialog appears where you can either define the new assignee, or add a comment to the issue. If you have selected a references absence on top, the comment field will have a default value with information on this specific absence (start- and end date).  
![comment_individual.png](https://docs.ij-solutions.com/__attachments/a_d66e9caee4f8bcf94db3f3b416e886696b346eafe943e9ce7a5a0b46f91cd83b/comment_individual.png?cb=c1a7827df41283e620654b6d13a71fe5) Comment on individual issue dialog

For assigning an issue, you have the option to either assign it to the defined alternate user. If you didn't define an alternate user or want to assign certain issues to someone else, you can deselect that option and choose an assignee in the user field.  
![assign_individual_1.png](https://docs.ij-solutions.com/__attachments/a_f4a7c3b3ecc9fcac499b576eb2c1270963a8bb528090e5f78ea2a09685503204/assign_individual_1.png?cb=f4b0ad8c4caec83db88004c479fffead) Assign individual issue to alternate user  
![assign_individual_2.png](https://docs.ij-solutions.com/__attachments/a_9f171e3e6d5e1affab183022088d624637d16b8ee9d3d144c0b7cd4cf4a1cf2e/assign_individual_2.png?cb=17939e80df0a070ff202bbc5bcaf777d) Select user to assign an issue to

For bulk-commenting or -assigning of issues, you can define the settings on top of the table. If the table contains more than 1 issue, the bulk action options can be expanded.  
![Prepare_for_absence.png](https://docs.ij-solutions.com/__attachments/a_b33a37c59986598d56271de558b8f4e34cac9cf9d3d8b88cf164e45d26f2d28b/Prepare_for_absence.png?cb=3319c8dc771d4bb6434e98c81f29b842) Defining bulk action

Similar to the options for the individual issues mentioned above, you can define a comment to be added to all issues and an assignee to be set on all issues. The number of modified issue depends on how many are checked in the table. By default, the checkbox in the first column is checked for all issues. You can decide individually for each issue, whether to include it in the bulk action or not.

Below the comment and assignee fields you see how many issues would be changed when you click on comment issues or assign issues, respectively.

When one of the buttons are clicked, a dialog appears where you have to confirm to submit the bulk action.  
![comment_bulk.png](https://docs.ij-solutions.com/__attachments/a_ae6c3ecc474d657c7c1f2d70858031d08f3aba7ccde85a2c620868c93fac0b47/comment_bulk.png?cb=61f7368d205618e9914259d502732642) Bulk comment dialog  
![assign_bulk.png](https://docs.ij-solutions.com/__attachments/a_e1ecf517b91bda686f554b78d52ee00e9435857e1e3be6b4586b9758e2f9e987/assign_bulk.png?cb=9d9c927bed9fa982bb51a883646e280b) Bulk assign dialog

After submitting the dialog, the issues get commented or assigned. When that is done, the dialog shows a message with information on how many issues succeeded and how many failed.  
**Notes on permissions:**

Your assigned issues might be located in various project. If you don't have the assign issues or comment on issues permission in one of those projects, you won't be able to comment or assign them. In that case, the individual action in the table won't be available.

For the bulk action, the option will be available though. However, it will fail for those issues due to missing permissions.

---
language: "en"
---
# REST API Endpoints

The app provides several API endpoints to retrieve and manage absences from outside Jira. You can find detailed information on the available REST API endpoints, including methods, required parameters, body content, and endpoint URLs on the API documentation page.

* [API Documentation](https://docs.ij-solutions.com/uap-cloud/api-documentation.md)
* [Use Cases for User Absence Planner for Jira API Integration](https://docs.ij-solutions.com/uap-cloud/use-cases-for-user-absence-planner-for-jira-api-in.md)

---
language: "en"
---
# Syncing Absences with Google Calendar

**Objective:** Automatically create absences in Jira based on events in Google Calendar.

**Steps:**

1. Create a Zapier Account: Sign up for a free account at [Zapier](https://zapier.com/)

2. Set Up a Zap: Create a new Zap in Zapier

3. Trigger:

   1. Choose "Google Calendar" as the trigger app.

   2. Select the event trigger, such as "New Event" or "Event Start".

   3. Connect your Google account to Zapier and set up the trigger details.

4. Action:

   1. Choose "Webhooks by Zapier" as the action app.

   2. Select "POST" for creating a new absence.

5. Configure the Webhook:

   1. Set the URL to the createAbsence endpoint (unique for your instance)

   2. Include parameters in URL with the users email address and the cloud site

   3. Define body:

      JSON

          {
            "title": "{{Google Calendar Event Title}}",
            "type": "Holiday",
            "start": "{{Google Calendar Event Start}}",
            "end": "{{Google Calendar Event End}}",
            "message": "Google Calendar Event"
          }

6. Test and Activate:

   1. Test the Zap to ensure that it correctly creates absences in Jira based on Google Calendar events

   2. Activate the Zap

---
language: "en"
---
# Use Cases for User Absence Planner for Jira API Integration

The User Absence Planner API for Jira Cloud provides powerful functionality for managing user absences programmatically. This can be leveraged to create seamless integrations with external tools such as Outlook, Google Calendar, or HR systems. Below are some use cases demonstrating how to use these APIs in various scenarios, including no-code solutions using tools like Zapier and custom-developed integrations.  
* [Integrating with Outlook via Zapier](https://docs.ij-solutions.com/uap-cloud/integrating-with-outlook-via-zapier.md)
* [Syncing Absences with Google Calendar](https://docs.ij-solutions.com/uap-cloud/syncing-absences-with-google-calendar.md)
* [Custom Integration with HR System](https://docs.ij-solutions.com/uap-cloud/custom-integration-with-hr-system.md)
* [Outlook as Master -- Syncing Absences to Jira](https://docs.ij-solutions.com/uap-cloud/outlook-as-master-syncing-absences-to-jira.md)

---
language: "en"
---
# User Absence Planner Admin Settings

The User Absence Planner admin settings are only accessible by Jira system administrators

## How to access the User Absence Planner admin settings?

As Jira system administrator, you find the app settings via Marketplace Apps → User Absence Planner settings on the left sidebar.  
![Screenshot 2026-09-26 at 16.07.03-20260926-140805.png](https://docs.ij-solutions.com/__attachments/a_5641bb8c8ab41f4ec98c6c2dcbeec1df2a6e74e2398892479c1e1d59be9a336e/Screenshot%202026-09-26%20at%2016.07.03-20260926-140805.png?cb=85b2e2bcdc329b91991a3b2449f75715)
Access to the User Absence Planner settings page

## What can you do in the settings?

The admin settings allow system administrators to modify settings for

* app access, allowing only certain users or groups to access and use the app

* permissions to view or edit absences of other users; access to the User Absence Planner REST APIs

* fields to be displayed by default in the availability overview in Jira items

* absence types that are available in your instance

### App Access

By default, no restrictions are defined which means all Jira users and groups can access and use the app.  
![image-20240419-121527.png](https://docs.ij-solutions.com/__attachments/a_9f02988268145792b6e656abc7e3e650963be44a264bfbebdb4b77c031afd0be/image-20240419-121527.png?cb=95e5d14179c669817aa14c4dcfd3344c)
Default - no app access restrictions defined

By activating the toggle, you can restrict access to the app to certain user groups or individual users. Users without access to the app will see the following message when they try to open the app either on the global page or in the issue view.  
![No_app_access.png](https://docs.ij-solutions.com/__attachments/a_129da8cdf524e22a940792c58907d0638686fceedd5d9382e83ca5ab9706b428/No_app_access.png?cb=40f01941550fd343efde858e1d4b7443)
No access message

#### By Group

You can select a group on top to add it to the list and to grant app access for that groups.  
![image-20240419-142848.png](https://docs.ij-solutions.com/__attachments/a_c6ad4695dabde9a5abd828c36442adff7e4af0d5d625286905fd45c8019833ad/image-20240419-142848.png?cb=a6bc9ee00fd10962df5c1e47845f2a9a)
App access granted for user group

In this example, all users in the group "site-admins" will have access to the app and its features.

#### By User

Same as for groups, the app access can be granted to individual users.  
Please note that the user settings will always overwrite the group settings, which means that a user with granted access to the app but not member of any listed groups, can access and use the app.  
![image-20240419-143136.png](https://docs.ij-solutions.com/__attachments/a_620cad46f5741a19b82c8d887e0d960c707510dcfb8218339e3496ab3d08dcfd/image-20240419-143136.png?cb=10a3d5bcbb53d063ff12c1f55b5798d4)
App access granted to individual users

#### Save settings

You can discard your modifications at any time by clicking on cancel. If you want to save your settings, please press the save button. You modifications will be displayed comprehensively in the appearing dialog.  
![image-20240419-143309.png](https://docs.ij-solutions.com/__attachments/a_88c79913afde07be430094cb3c19ef1d3bfb1bd4af1708133597bfc73dd8f533/image-20240419-143309.png?cb=f562e70d8e3727d9f3d01523dd850e08)
Summary of changed app access settings

When you click on save on this dialog, the settings will be applied. A flag shows up, when it has been saved successfully.  
![Settings_saved.png](https://docs.ij-solutions.com/__attachments/a_5278baa6596641903c2ca852daaf237b65cead9af2311c7b749e77e715221734/Settings_saved.png?cb=5fea8c505c27a231cb352b4de6754bae)

### Permissions

By default, no permissions are defined which means that only Jira system administrators can view and edit absences of other users and use the REST API endpoints.  
![Admin_settings_default.png](https://docs.ij-solutions.com/__attachments/a_0fb1296c071c5eda63752363d938912a8b4eb08cc48eeb102bd45d880aff0a00/Admin_settings_default.png?cb=6b51aa8709674ab31f294ef011d7f30c)
Default - no permissions defined

If you activate the toggle, you can grant permissions to either view, edit, or both to certain user groups or individual users. Furthermore, you can define for which user absences those permissions apply (see [example](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-admin-settings.md#Example) for details). Also, REST API permission can be granted for users or groups.

As soon as a user has the view permission, the [user / group absences](https://docs.ij-solutions.com/uap-cloud/user-group-absences.md) tab will be visible on the [User Absence Planner global page](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-global-page.md).

#### By Group

You can select a group on top to add it to the list. By default, all added groups get the view permission granted. If edit permission is required, you can enable the toggle in the edit column. The same for REST API permission in the API tokens column.

The set permissions apply for all users absences by default.  
![image-20260926-150823.png](https://docs.ij-solutions.com/__attachments/a_4309de2b9ac1e033043dac896586ed61e6c4208337a43e01d63de1b467a6b754/image-20260926-150823.png?cb=f691a644d509352997c358a28871f40a)
Permissions granted to user groups

As an example, every member of the "jira-software-users" group could be granted access to the user/group absences tab, enabling them to view others' absence records. However, their permissions are limited strictly to viewing; they will not have the capability to create, modify, or remove another user's absences.

In the "For groups" column, you can define user groups for which users' absences those permissions apply. The "For users" column allows these settings for individual users.

Beside selecting user group or individual users in those columns, you can also decide that the permission shall apply to all users/groups by don't selecting anything, or to no users/groups by checking the checkbox under the respective select field. If you do so, the user/group selection gets disabled.  
![image-20240420-111149.png](https://docs.ij-solutions.com/__attachments/a_8058afe04b3d7b79f2f419b336595e2188828c65ada1db0962120ac5828fc0dd/image-20240420-111149.png?cb=bf692fc6549ea395c9d824bcde64057f)  
![permission_settings_for_columns.png](https://docs.ij-solutions.com/__attachments/a_dee3685adbc9d336208c54a4d0ea777335965c11f3e853b048abe53e08bfb2bc/permission_settings_for_columns.png?cb=0383a5a7d711b8f83f5e554ff67b62b2)
View and edit permission granted only for certain users absences

In the displayed example, all users in the group "jira-software-users" will see the absences of other users in the group "jira-software-users". So they can only see absences of other members from the same group. Members of the "system-administrators" group can view and edit absences of other users. However, only those absences for group members of "jira-core-users" and the user Anne. Please have a look at this [example](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-admin-settings.md#Example) for a use case for this feature.

#### By User

Same as for groups, the permissions can be granted to individual users.  
Please note that the user settings will always overwrite the group settings, which means that a user with view and edit permission set, will have this permission even if she/he is member of a group that has only view permission.  
![image-20260926-151323.png](https://docs.ij-solutions.com/__attachments/a_38a9866eb5b800f94f79b2e0d07a176485ffac6991010339f7f175b40d32a720/image-20260926-151323.png?cb=801e5aa5fc8670207567a8c737e9b4a9)
View, edit and API permissions granted to individual users

#### Save settings

You can discard your modifications at any time by clicking on cancel. If you want to save your settings, please press the save button. You modifications will be displayed comprehensively in the appearing dialog.  
![Save_settings.png](https://docs.ij-solutions.com/__attachments/a_358c6c0718b2884d2a971b746ae19a6689008db4cada4c1ab62346ca04e10a70/Save_settings.png?cb=21f018316b5033ef1ec3444542ff1f56)
Summary of changed settings

When you click on save on this dialog, the settings will be applied. A flag shows up, when it has been successful.  
![Settings_saved.png](https://docs.ij-solutions.com/__attachments/a_5278baa6596641903c2ca852daaf237b65cead9af2311c7b749e77e715221734/Settings_saved.png?cb=5fea8c505c27a231cb352b4de6754bae)

#### Example

As the team lead of the marketing department, Mia plays a crucial role in managing her team's schedule and availability. It is essential for her to have access to information regarding planned absences of her marketing team members so she can prepare accordingly. Moreover, it's important that she has the capability to record unplanned absences, such as sickness, on behalf of any member of her team. However, Mia's visibility should be limited strictly to her own team; she shouldn't have access to absence details pertaining to individuals outside the marketing group. This delineation ensures privacy and relevance in accessibility.

To configure these requirements within Jira, system administrators are advised to utilize specific permission settings detailed below:

On navigating to the User Absence Planner settings page → permission settings → "By user" tab:

* Assign **view** and **edit** permissions directly to Anne.

* In the **for groups column**, select only the group encapsulating all members of the marketing team.

* Make sure that in **the users column**, 'no users' is checked off; this setting restricts Mia from seeing absence records belonging not just broadly but specifically beyond those involving members of her own squad.

Following these guidelines will successfully update Mia's permissions accordingly. As a result, within [User / Group Absences](https://docs.ij-solutions.com/uap-cloud/user-group-absences.md) section on [User Absence Planner global page](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-global-page.md), Mia will now only be able view selections relevant exclusively either herself or those associated with her designated marketing group configuration---streamlining efficiency while respecting necessary boundaries for operational integrity amongst distinct teams.

### Field settings

On the field settings tab, you can add additional user custom fields to the list. Those fields will be displayed by default in the [availability overview](https://docs.ij-solutions.com/uap-cloud/user-absence-planner-issue-view.md) in every Jira issue.  
![Field_settings.png](https://docs.ij-solutions.com/__attachments/a_5597d7c5e11bbbba365084e582eef47ca3c17778beab6cf02f542217453b2e18/Field_settings.png?cb=e50227fbb22b61dea6656bd54acde828)
Add additional user custom fields to be displayed by default

Use the cross icon to remove fields from the list. Also here, all changes must be confirmed by pressing the save button or can be discarded with cancel.

### Absence types

On the final tab, you can customise the available absence types for your instance. The types defined here will be available for all users when they plan their absences. The following absence types are available by default.  
![Absence_types_settings.png](https://docs.ij-solutions.com/__attachments/a_16c0abce251ea9c29ff86d9fead38329960eec09c07614dd4a19e0475dd31228/Absence_types_settings.png?cb=01bbc3b5d7037e7cf339a11954a5bc6f)
Absence types settings

You can modify them by clicking on the edit icon, remove them from the list, or add new absence types via the field above.  
As the absence type is a required field when creating an absence, it is not allowed to remove all entries from this list here. It won't be possible to save such a setting.

---
language: "en"
---
# User Absence Planner Global Page

## How to access the User Absence Planner global page?

The central page for planning and viewing your planned absences can be accessed form everywhere in Jira by clicking on Apps → User Absence Planner  
![Access_global_page.png](https://docs.ij-solutions.com/__attachments/a_ceeaff8049c32109f42670cd6b5f3ac0f44d326eecf1071aa168debac8efcd4a/Access_global_page.png?cb=80a316ba997199a9e98164a01dc113a4)

## What can you do with User Absence Planner in Jira Cloud?

* [My Absences](https://docs.ij-solutions.com/uap-cloud/my-absences.md)
* [Prepare for Absence](https://docs.ij-solutions.com/uap-cloud/prepare-for-absence.md)
* [User / Group Absences](https://docs.ij-solutions.com/uap-cloud/user-group-absences.md)

---
language: "en"
---
# User Absence Planner Issue View

## How to access the User Absence Planner issue view?

When opening an issue, the user absence planner information is displayed on the right sidebar in a separate section. You can see a summary of user availability for the current issue instantly:

* A means that all users in relevant fields are currently available

* O means that at least one user in relevant fields is currently out of office

* no app access means that a system administrator has defined that you don't have access to the absence planner app. You can ignore the app on issue view in that case.

By clicking on the expand icon on the sidebar, you can open a detailed overview for user availability. You don't have to expand the overview each time you load the issue. After expanding it once, the information is saved for your user and it will be automatically opened on every issue reload until you collapse it.  
![Access_issue_view.png](https://docs.ij-solutions.com/__attachments/a_d6ebb995b999d768479bc119acc3571b407f131b20168b35d23888b6e381e418/Access_issue_view.png?cb=1a16332fe5ddff7e8ce984c3d894a8b8) Availability Overview in Jira issue

## What can you see in the Availability Overview?

### Default view

By default, the overview shows availability information for reporter and assignee field of the issue. That means, it shows whether the users in those fields are currently available or out of office.  
![Availability_overview.png](https://docs.ij-solutions.com/__attachments/a_302b9bc97f3e4310316a25d8a5bfdeeac1e40d5e022a3bdd6b3dcc778f41f2c5/Availability_overview.png?cb=a6d86499f229179bb00a654381d0fd51) Availability overview for reporter and assignee

If a user is out of office, a respective icon is displayed in the availability status column. You can click on that icon to get more information about the absence (start and end dates, as well as absence message)  
![Availability_overview_more_infos.png](https://docs.ij-solutions.com/__attachments/a_7cd38a079ad8a271811b6794af3510d11c796bdebadc4b0273709ecf0bd1543a/Availability_overview_more_infos.png?cb=85ddb31d8f99f5d3b6393ee4a4ededf6) More details on absent user

It might be the case that it has been set in the Jira administration that more fields should be displayed by default. Therefore, the default view might show more information in your instance.

The refresh button reloads the table and absence information in case the field values have been changed recently.  
Please note that when you close this overview and open it again without a reload of the page, the table is **not** updated. Please use the refresh button in that case to get up to date data displayed.

### Display more fields

You might be interested in other user fields as well. For instance, if you have a user custom field called owner in your instance, it might be interesting whether the owner of an issue is currently available or not. For that reason, you can add more user fields to the availability overview. To do so, just expand the field settings at the bottom.

You will see a select field where you can add additional fields to be displayed. By selecting a field and clicking on add, the field shows up in the table above and user absence information is loaded for that field.  
![Availability_overview_field_settings.png](https://docs.ij-solutions.com/__attachments/a_480b274340294ff7c12e6b3881ef7d68dd0a372762c55ad590df620c8369e5db/Availability_overview_field_settings.png?cb=62a5ed4befd5ea51532f7150825f4053) Display of additional user custom fields

You can even save those fields as your personal default. Click on "Save as default" and the added user custom field(s) will display every time you open the availability overview.

[Next Page](https://docs.ij-solutions.com/llms-full.txt/1)
