Skip to main content

Jira

Connect ZEP with Jira and automatically import projects, epics, and issues as ZEP customers, projects, tasks, or tickets.

Written by Gideon Weller

The Jira integration imports structures from Jira into ZEP – from Spaces to Epics to Issues. Jira remains the leading system for the transferred structures. Depending on your needs, Jira Spaces can be mapped to ZEP customers (typical for consulting firms) or to ZEP projects (typical for internal IT teams).

Data direction: Jira → ZEP

Product line availability

Note: The Jira integration is available in ZEP Compact and ZEP Professional. It is not included in ZEP Clock. The integration can be booked via the Self-Service Tool.

Setup and configuration are reserved for administrators.

Prerequisites

For the setup, you will need:

  • Access to the Interface Marketplace in ZEP

  • A Jira email address with administrator rights on the Atlassian domain

  • A Jira API token – created in Atlassian at id.atlassian.com/manage-profile/security/api-tokens (Create API token → copy)

  • Your company's Atlassian domain (e.g. company.atlassian.net)

Note: The integration is exclusively compatible with Jira Software (Jira Project Management) from Atlassian – not with other Jira products such as Jira Service Management.

Setting up the integration

In ZEP, open Administration > Interfaces > Interface Marketplace. Select Jira and click Add. You will then be guided through the booking process in the self-service tool. After booking, the Jira integration appears in your interface overview and can be configured.

Enter the following credentials in the settings:

  • Jira Host: Your company's Atlassian domain (e.g. company.atlassian.net)

  • Username: The email address of the Jira administrator

  • Password: The Jira API token

Then click Test Connection to verify the connection. The status only switches from “inactive” to “active” when the test is successful.

Configuring data mapping

The core of the integration: using dropdowns in the settings, you define how Jira elements are mapped to ZEP structures. The following table provides an overview:

Jira element

Possible mapping in ZEP

Space (Jira project)

ZEP project, ZEP customer, or no mapping

Epic

ZEP project, ZEP task, or no mapping

Issue (with parent Epic)

ZEP task or ZEP ticket (follows the Epic mapping)

Issue (without parent Epic)

ZEP task, ZEP ticket (fallback), or no mapping

Note: Spaces and Epics cannot both be mapped to ZEP projects at the same time. If you import Spaces as projects, Epics can only be imported as tasks or with “no mapping”.

Spaces

Jira Spaces correspond to Jira projects. You can have each Space created as a ZEP project or a ZEP customer. When mapped as a customer, the customer number is automatically composed from the configured prefix and the Jira key (e.g. jira_knr_PROJ-1). Spaces that should not be imported can be left on “no mapping”.

Epics

Epics are nested under the result of their parent Space. They can be created as a ZEP project or a ZEP task. Since Spaces and Epics cannot both be mapped to ZEP projects at the same time, mapping an Epic to a project is only possible when the parent Space is not also imported as a project.

Issues

Issues automatically follow the mapping of their parent Epic: if the Epic was imported as a ZEP project, the Issue is created as a ZEP task. If the Epic was imported as a ZEP task, the Issue is created as a ZEP ticket.

Issues without a parent Epic

Issues that are not assigned to an Epic in Jira cannot be imported without special configuration. To prevent these from being lost, you can define a default target: a default ZEP project (Issues are created as tasks) or a default ZEP task (Issues are created as tickets). All issues without an Epic — even from different Jira Spaces — then end up in this single default target and may need to be reassigned manually there. Alternatively, issues without an Epic can be skipped.

If issues without an Epic should land in different ZEP projects depending on the Jira Space — for example, helpdesk tickets in a dedicated ZEP project and other issues in another — the following workaround is recommended: Create an Epic in Jira for each desired parent project (for example an Epic named Helpdesk) and attach the respective issues to it. The Epic is then imported as a ZEP project and the subordinate issues are assigned to this project as tasks.

Parent Epic not yet imported

If the parent Epic is not yet present in ZEP at the time of the sync – for example because it was deleted, archived, or falls outside the 12-week lookback window – the Issue is safely skipped and logged as a warning. It is never attached to the wrong parent and the sync continues. ZEP retries the Issue in the next run as soon as the Epic is available – no user action needed.

Information per Jira issue

When importing an issue, the following information is mapped from Jira into ZEP fields. These fields are updated with every synchronization — status, priority, start date, and due date always reflect the current state in Jira. The assignment of creator and assignee is done automatically based on the email address.

ZEP field

Source in Jira

Short form

Issue summary (title of the Jira issue)

Name

first content block of the issue description

Status

Issue status

Priority

Issue priority

Creation date

Issue field Created

Last modified date

Issue field Updated

Start date

custom field Start Date (exact Jira field name)

Due date

Issue field Due Date, if set

Creator

Issue reporter, matched via email address with ZEP employees

Assignee

Issue assignee, matched via email address with ZEP employees

Parent project / Epic

parent relation of the issue

For the start date to be transferred cleanly, a custom field with the exact name Start Date must exist in Jira — the integration specifically looks for this field name. If the field does not exist in your Jira configuration or is named differently, the start date is not transferred, and projects, tasks, and tickets receive the date of the synchronization as their start date instead.

Importing Worklogs as time entries

When importing an Issue, the integration automatically transfers the associated Jira Worklogs and converts them into attendance entries in ZEP. The activity to which the time entries are posted is configured once in the settings.

ZEP applies the following rules:

  • Employee assignment is done first by email address; if no match is found, by first and last name.

  • If a Worklog exceeds the employee's daily capacity (standard working hours), the remaining time is transferred to the next working day – so even long bookings are not lost.

  • ZEP searches for free time slots between 08:00 and 23:59 per day and skips already occupied slots – no duplicate entries are created.

  • Weekends, public holidays, and absence days are automatically skipped.

  • Employees who were not employed on the relevant day are skipped.

  • Closed months are not used for bookings.

  • If no free slot can be found, the reason is logged and the rest of the import continues.

Tip: Make sure the email addresses of Jira users match those stored for employees in ZEP – this is the most reliable method for automatic assignment.

Synchronization and log

The integration synchronizes automatically every hour. The import is incremental: ZEP only fetches data that has changed since the last successful sync — the reference time is the last successful sync minus one week as a safety buffer. A manual synchronization can be triggered at any time via Sync now.

During the initial setup of the integration, a lookback of up to 12 weeks applies: ZEP imports only Epics and issues that were created or updated in Jira within the last 12 weeks. Older structures are not automatically transferred and must, if needed, be updated in Jira (so they fall into the 12-week window) or manually replicated in ZEP. If, after the first sync, fewer Epics or issues appear in ZEP than expected, the 12-week window is usually the reason.

The synchronization runs in a fixed, chained order: Spaces are imported first, then Epics, and finally Issues. Each stage only starts when the previous one has completed successfully. If a stage fails, the dependent steps are aborted – ensuring no partially imported records are created.

Each sync run creates a log entry with the following counters:

  • processed: Total number of processed elements

  • created: Newly created ZEP entries

  • updated: Updated ZEP entries

  • skipped: Unchanged elements – no update needed

  • failed: Failed elements – the reason is noted in the log; the rest of the sync continues

A single failed record does not stop the rest of the batch. Missing parent Epics are logged as warnings and retried in the next sync run. There are no automatic retries – the hourly scheduler handles this.

Settings overview

All configurable parameters of the Jira integration at a glance:

Setting

Description

Jira Host

Company's Atlassian domain (e.g. company.atlassian.net)

Username

Email address of the Jira administrator

Password

Jira API token (created in Atlassian account management)

Spaces → ZEP entity

Project / Customer / No mapping

Epics → ZEP entity

Project / Task / No mapping

Issues without Epic → ZEP entity

Task / Ticket / No mapping

Default project / task (fallback)

Target for Issues without a parent Epic; enter the name of the ZEP project or task

Customer number prefix

Prepended to the Jira key when creating ZEP customers

Default department

Department to which newly created ZEP projects are assigned

Default activity

Activity to which Worklog time entries are posted

Activate / deactivate entities

Spaces, Epics, and Issues can be switched on or off individually

Did this answer your question?