Documentation and Knowledge Base
Functional Overview
Issue AI Analytics for Jira introduces new analytics functionality for Jira issues. It exposes an Enable AI Analytics button in the Issue View screen. Once button is pressed, the issue summary and description are sent for analysis to an external AI engine. The analysis results are displayed as tabs, through a new panel in the Issue View screen.
Example:
The tabs that are displayed and the analysis that is done by the AI engine is configurable, depending on the needs of your organization (reference Configuration section).
The following analytics tabs are available by default:
The following AI engines are supported:
Issue AI Analytics integrates Jira with an external AI provider for analytics through a Heroku server. This can be visualized as follows:
The Deview Studios app server is hosted on the Heroku platform and is the entry point for the integration.
Integration process triggers whenever the Enable AI Analytics button is pressed in the Issue View screen. Only the issue summary and description are sent for analysis.
First time analytics generation for an issue can take between 20-60 seconds. This is primarily due to the processing time needed by the AI provider. Once generated, analytics are cached in an analytics database and every subsequent display of analytics results in the Issue View screen is immediate. Analytics results will be re-generated, if issue summary or description is changed.
The analytics database only caches analytics results and never stores issue summary or description. Analytics results are stored fully encrypted in the database. Caching is required to provide better user experience, by not mandating the user to wait 20-60 seconds every time.
The following conditions must be met in order to use Issue AI Analytics for Jira:
Issue AI Analytics for Jira is installed as a standard application through the Universal Plugin Manager (UPM).
Follow these steps:
There is a separate configuration page available, with all configuration options. To navigate it, go to to the Manage Apps screen, open Issue AI Analytics for Jira and select the Configure button.
The following configuration settings are available:
A system administrator may change what tabs are displayed and how analytics are generated (at the analytics tab level). This allows support for various different use cases, specific to your organization. To change the default behaviour, you may override the settings of the existing tabs by modifying the following parameters:
A project administrator may change what tabs are displayed and how analytics are generated (at the analytics tab level), for a particular project. The configuration functionality is accessible through:
The following settings are available and are applicable only for the current project:
A system administrator may bulk enable analytics for multiple issues at once. This functionality is accessible through a separate menu item. To navigate it, go to to the Manage Apps screen, under Issue AI Analytics section and select the Bulk Enable Analytics Wizard menu. You may use this menu if Advanced Features is enabled.
Select a project and optionally add additional JQL filters. Once ready, press the Bulk Enable button. It’s recommended to narrow down the number of issues as much as possible for faster processing.
You must not close your browser, or navigate away from this page while the wizard is running.
Note that enabling analytics for a big amount of issues, can take a significant amount of time. Always make sure to test the functionality on a smaller project.
Once analytics for an issue are generated, they will be available immediately whenever the Issue View page is re-opened. Analytics will be re-generated automatically, when issue summary or description changes.
Issue AI Analytics for Jira has the following limitations:
Issue AI Analytics for Jira has the following known issues:
Issue AI Analytics for Jira introduces new analytics functionality for Jira issues. This is presented to users as follows:
An Enable AI Analytics button is made available in the Issue View screen. Once button is pressed, the issue summary and description are sent for analysis to an external AI engine. The analysis results are displayed as tabs, through a new panel in the Issue View screen.
Example:
The tabs that are displayed and the analysis that is done by the AI engine is configurable, depending on the needs of your organization (reference Configuration section).
The following analytics tabs are available by default:
The following AI models are supported for the AI Analytics:
A chat-like AI assistant directly into your workflow, allowing you to interact with AI in real-time for issue management. It can help with the following tasks:
Example:
The following AI models are supported for the AI Assistant:
Issue AI Analytics integrates Jira with an external AI provider for analytics through a Heroku server. This can be visualized as follows:
The Deview Studios app server is hosted on the Heroku platform and is the entry point for the integration.
Issue AI Analytics for Jira Data Center also supports Private AI Mode. If enabled, the Heroku cloud server is not used and no data is sent to the Internet, with the expectation that there is a Private AI model hosted within the same datacenter:
Integration process triggers whenever the Enable AI Analytics button is pressed in the Issue View screen. Only the issue summary and description are sent for analysis.
First time analytics generation for an issue can take between 10-30 seconds. This is primarily due to the processing time needed by the AI provider. Once generated, analytics are cached in an analytics database and every subsequent display of analytics results in the Issue View screen is immediate. Analytics results will be re-generated, if issue summary or description is changed.
The integration process for Jira Data Center can be visualized as follows. There’s a difference in how analytics are generated, depending if Cloud AI mode or Private AI mode is enabled.
In this case the analytics database is the local Jira database. Caching is required to provide better user experience, by not mandating the user to wait 10-30 seconds every time.
If Private AI mode is enabled, Heroku cloud server is not used and no data is sent to the Internet.
The following conditions must be met in order to use Issue AI Analytics for Jira:
Issue AI Analytics for Jira is installed as a standard application through the Universal Plugin Manager (UPM).
Follow these steps:
Issue AI Analytics for Jira Data Center requires that you select the app Integration mode, before you can use it.
There is a separate configuration page available, with all configuration options. To navigate it, go to to the Manage Apps screen, open Issue AI Analytics for Jira and select the Configure button.
The following configuration settings are available:
A system administrator may change what tabs are displayed and how analytics are generated (at the analytics tab level). This allows support for various different use cases, specific to your organization. To change the default behaviour, you may override the settings of the existing tabs by modifying the following parameters:
A project administrator may change what tabs are displayed and how analytics are generated (at the analytics tab level), for a particular project. The configuration functionality is accessible through:
The following settings are available and are applicable only for the current project:
With Private AI mode enabled, you can bring your own AI model as an analytics engine, used by the application. You will need to configure a simple Groovy integration script, that defines the communication protocol with the AI engine. Without configuring the script, the app will not function properly and will not be able to generate analytics. By default, a sample script is available that serves as example – it can be modified or adapted.
Private AI mode also enables the use of AI Assistant.
The script will be invoked every time when new analytics have to be generated (separately per analytics tab) or a user interacts with the AI assistant. In the case of analytics generation, if you have 4 analytics tabs enabled, the script will be invoked sequentially 4 times.
Script invocation lifecycle is as follows:
For proper execution the following best practises must be followed:
The following variables are available for use within the script:
Variable | Description |
---|---|
type |
Request type. Identifies if this request comes from an interaction with the AI Assistant or when the Enable AI Analytics button is pressed. Possible values: chat , analytics . |
tabId |
ID of the tab storing the generated analytics of this run (available only for analytics requests). |
tabName |
Name of the tab storing the generated analytics of this run (available only for analytics requests). |
query |
Query configured for the current tab. Should be sent for AI analysis (available only for analytics requests). |
messages |
All chat messages from a conversation with the AI assistant. An ArrayList of Message objects, identified by role (message.getRole() ) and message (message.getMessage() ). The role can be user or assistant . (available only for chat requests) |
issueContext |
The entire context of an issue, as string, to be sent as chat context (available only for chat requests). |
latestMessage |
The latest user message from a conversation with the AI assistant. Available as a Message object. (available only for chat requests) |
analyticsLanguage |
Selected analytics language. |
issue |
Complete Issue object. See Issue API Documentation. |
issueSummary |
Summary field for the issue. |
issueDescription |
Description field for the issue. |
httpClient |
Used to send HTTP requests. |
logger |
May be used for logging. Example:logger.info("message") | logger.debug("message") | logger.error("message") . |
/* MODIFY THIS SCRIPT TO INTEGRATE YOUR AI MODEL. THIS IS JUST AN EXAMPLE. */ import com.atlassian.jira.util.json.* import org.apache.http.entity.StringEntity def messagesArray = new JSONArray(); if(type.equals("chat")) { // This is an AI Assistant request messagesArray.put(new JSONObject().put("role", "system").put("content", issueContext)) // Set issue context messages.each { messageObj -> messagesArray.put(new JSONObject().put("role", messageObj.getRole()).put("content", messageObj.getMessage())) // Put all chat messages } } else if(type.equals("analytics")) { // This is an AI Analytics request def aiQuery = issueSummary + "\r\n" + issueDescription + "\r\n---\r\n" + query // Build the query that will be sent for analysis messagesArray.put(new JSONObject().put("role", "user").put("content", aiQuery)) } def payload = new JSONObject() // Prepare body as per API specification .put("model", "gpt-4o") .put("messages", messagesArray) .put("temperature", 1.0) .toString(); def post = httpClient.newPost("https://api.openai.com/v1/chat/completions") // Create a new request to specified URL post.setEntity(new StringEntity(payload, java.nio.charset.StandardCharsets.UTF_8)); // Set HTTP payload post.addHeader("Content-Type", "application/json"); // Set HTTP header post.addHeader("Authorization", "Bearer REPLACE_ME"); // Set HTTP header JSONObject json = new JSONObject(httpClient.sendRequest(post)) // Parse response as JSON def result = json.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content") // Traverse JSON tree return result // This script must always return the produced analytics
Once analytics for an issue are generated, they will be available immediately whenever the Issue View page is re-opened.
If enabled by an administrator, analytics will be re-generated automatically, when issue summary or description changes. Otherwise, analytics will be re-generated, when the Re-generate button is pressed in the analytics panel (new analytics will be displayed, only if the issue summary or description have been changed).
To use the app for the AI Assistant, navigate to an already created issue and interact with the AI Assistant panel. The AI Assistant is a chat-like functionality where you can ask a question or instruct the AI model with a specific task.
Issue AI Analytics for Jira has the following limitations:
To enable logging for Issue AI Analytics, go to Jira Adminsitration -> System -> Logging and Profiling and click on Configure under Default loggers. Add the following entry: com.deview_studios.atlassian.jira.dc.issue_ai_analytics and set the logging level to DEBUG.
Issue AI Analytics for Jira has the following known issues: