JIRA Service Desk

Welcome to JIRA Service Desk Server development! This overview will cover everything you need to know to integrate with JIRA Service Desk Server. This includes the P2 framework for building add-ons, as well as JIRA Service Desk features and services that you can use when integrating with JIRA Service Desk.

Hello world

If you already know the theory and want to jump straight into development, read our Getting started guide to build your first JIRA Server add-on.

What is JIRA Service Desk?

JIRA Service Desk is primarily used as a service solution, from asset management to DevOps. A diverse range of IT teams use JIRA Service Desk, including support desk teams, operations teams, and more. With over 15,000 of these teams using JIRA Service Desk, there’s plenty of potential to extend it. Jump in and get started!

If you haven’t used JIRA Service Desk before, check out the product overview for more information.

Building add-ons for JIRA Service Desk Server

If you want to build an add-on for JIRA Service Desk Server, you should use the Atlassian development platform, which includes the Plugins2 framework. Add-ons are used to extend the functionality of JIRA Service Desk, which could be an an integration with another existing service, new features for JIRA Service Desk, or even a new product that runs within JIRA Service Desk.

The basic development flow for building a JIRA Service Desk add-on using the Atlassian SDK is:

  1. Create your add-on project as you would any other JIRA add-on, for instance, by using the atlas-create-jira-plugin SDK command. This command creates the add-on project files and skeleton code.

  2. When ready to build and test your add-on, run the atlas-package command from the project root directory. This command creates a packaged JAR file that you can install into JIRA (in the target sub-directory)

  3. Configure AMPS to run JIRA with JIRA Service Desk installed. If you haven't done this before, see Configure AMPS to run JIRA Core with additional applications installed.
  4. Start up JIRA. For early development and testing, you can use the development instance that the SDK gives you when you run the following command (set the version to 7.0.0 or later)atlas-run-standalone --product jira --version 7.0.0. 
  5. Log in to JIRA as an administrator, using the default username and password combination of admin/admin.  
  6. Install the add-on you built in step #2 with the atlas-package command. There are two ways that you can do this:
    1. Go to the Administration Console and open the "Manage Add-ons" page. On the page, click Upload add-on and choose the JAR file that the atlas-package command generated for you. You'll find the JAR file in the target directory of your project home after running atlas-package.
    2. Using the SDK command line tools: using you terminal, step into your project home directory and simply run atlas-install-plugin (after having packaged your add-on JAR using the atlas-package SDK command). This command will simply upload your add-on to UPM (and can considerably shorten your development flow).

  7. You should now be able to see your add-on in the JIRA "Manage Add-ons" page as an installed plugin. Every time you change your add-on code or resources, reload your add-on repeating step #6 above.

If you haven’t built an add-on before, check out the Getting started guide. This guide will help you learn how to set up a development environment and build a JIRA Server add-on.

Developing with Plugins2

If you are building an add-on with Plugins2, you'll also need to understand a number of key development processes:

  • Implementing security: Implementing security is a crucial part of integrating with JIRA. To learn more about authentication and authorization for JIRA Server, see the Security overview.
  • Listing your add-on on the Atlassian Marketplace and implementing licensing: Listing your add-on on the Atlassian Marketplaces and licensing it are necessary, if you want to make your add-on available to the public. See the Marketplace documentation for more instructions.
  • Designing your add-on: Since Plugins2 add-ons can insert content directly into the Atlassian host application, it is critical that add-ons are visually compatible with the Atlassian application’s design. Our designers and developers have created a number of resources to help you with this:

Building blocks for integrating with JIRA Service Desk Server

The three building blocks of integrating with JIRA Service Desk are the APIs, webhooks, and modules.

JIRA Service Desk Server APIs

The JIRA Service Desk Server APIs lets your integration communicate with JIRA Service Desk Server. For example, using the REST API, you can retrieve a queue’s requests to display in your add-on or create requests from phone calls. For most other integrations, you should use the REST API. The Java API should only be used if you are building a Plugins2 add-on.

Note, JIRA Service Desk is built on the JIRA platform, so you can also use the JIRA Server Platform REST API and JIRA Server Platform Java API to interact with JIRA Service Desk Server.

Webhooks and automation rules

Add-ons and applications can react to conditions/events in JIRA Service Desk via automation rules. You can implement an “automation action” that performs actions in a remote system as part of an automation rule. An automation rule can also be configured to fire a webhooks that notifies your add-on or application. For more information, see JIRA Service Desk webhooks.

JIRA Service Desk modules

A module is simply a UI element, like a tab or a menu. JIRA Service Desk UI modules allow add-ons to interact with the JIRA Service Desk UI. For example, your add-on can use a JIRA Service Desk UI module to add a panel to the top of customer portals. For more information, see About JIRA modules.

JIRA Service Desk Server and the JIRA platform

JIRA Service Desk is an application built on the JIRA platform. The JIRA platform provides a set of base functionality that is shared across all JIRA applications, like issues, workflows, search, email, and more. A JIRA application is an extension of the JIRA platform that provides specific functionality. For example, JIRA Service Desk adds customer request portals, support queues, SLAs, a knowledge base, and automation.

This means that when you develop for JIRA Service Desk, you are actually integrating with the JIRA Service Desk application as well as the JIRA platform. The JIRA Service Desk application and JIRA platform each have their own REST APIs, webhook events, and web fragments.

Read the JIRA Server platform documentation for more information.

Looking for inspiration? 

If you are looking for ideas on building the next JIRA Service Desk Server integration, the following use cases and examples may help.

Here are some common JIRA Service Desk use cases:

  • Support helpdesk: An easy way to provide support to anyone in the organization with IT requests such as hardware (laptop) requests, or software requests.
  • ITSM/ITIL: More advanced IT teams want to use a service solution to support ITSM and ITIL processes, including incident, problem, and change management.
  • Asset management: IT teams want to discover, control, monitor, and track key IT assets such as hardware and servers.
  • DevOps: Developer, Operations, and IT teams can use JIRA Service Desk to collaborate together and solve problems faster.
  • Business teams: Finance and HR teams may want to use JIRA Service Desk to collect requests from anyone in the organization.

Here are a few examples of what you can build on top of JIRA Service Desk:

  • Customer portal customization: JIRA Service Desk provides an intuitive customer portal that makes it easy for non-technical end users to interact with service teams like IT and support. By extending this, you can build a completely tailored interface for the customer portal that matches your company’s branding.
  • Collect requests outside of JIRA Service Desk: Build functionality to create requests on behalf of customers in any number of ways. For example, integrate it into the support section of your website, or have a get help menu on your mobile app, or hook up alerts from a system monitoring tool to create incidents in JIRA Service Desk.
  • SLA integration: JIRA Service Desk introduces the notion of service level agreements (SLAs) by letting teams accurately measure and set goals based on time metrics, e.g. time to assign, time to respond, time to resolution. With the JIRA Service Desk REST API, you can now get detailed SLA information and create your own reports.
  • Telephony integration: Create requests based on incoming voice calls by integrating your telephony system with JIRA Service Desk, via the REST API.
  • Supplement request information: Add information about assets, the customer, or other relevant information to requests to make it easier for agents to solve problems and close requests.

More information

Was this page helpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport