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 enhances Jira by seamlessly integrating advanced AI capabilities. The following key features are available to users:
An Enable AI Analytics button appears on the Issue View screen. When this button is clicked, the issue details are sent to an external AI engine for analysis. The results of the analysis are then presented as tabs within a new panel on the Issue View screen.
Example:
The tabs that are displayed and the analysis that is done by the AI engine is fully configurable, depending on the needs of your organization (reference Configuration section).
The following analytics tabs are available by default:
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 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, to be used by the app. 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 scripts are available that serves as examples – they can be modified or adapted.
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 AI 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
messagesArray.put(new JSONObject().put("role", "system").put("content", issueContext)); // Set AI context
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-4.1")
.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 " + crypto.decrypt("HOTqnMRPU6KDhM=")); // 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 result
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: