Issue AI Analytics for Jira

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 details 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:

  • Instructions – Instructions with proposals and/or concrete solutions on how to solve tasks. It might contain steps to follow, general advise on how to approach the problem or in some cases, a direct solution. This section will become more accurate, as more detailed issue description is provided.
  • Description Improvements – Suggestions on how to improve clarity of an issue description. In some cases, the issue author might not provide a description that is detailed or clear enough – this section will help improve the quality and make it more understandable.
  • Definition of Done (DoD) – Most teams don’t spend enough time to write Definition of Done (DoD) for issues. This section will automatically generate the DoD. It will help the author to properly define, when an issue can be considered done.
  • Test Strategy – Complete strategy on how to test your issues are successfully completed. In most cases, a comprehensive suite of tests will be provided. This might include tests for non-functional requirements or corner cases, which are easily forgotten.

The following AI engines are supported:

  • OpenAI GPT-4.1
  • OpenAI GPT-4o
  • OpenAI GPT-3.5-Turbo
  • Azure OpenAI Service

Architectural Overview

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. All issue details 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 integration process can be visualized as follows

The analytics database only caches analytics results and never stores issue details. 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.

 

Requirements

The following conditions must be met in order to use Issue AI Analytics for Jira:

  • N/A

Installation

Issue AI Analytics for Jira is installed as a standard application through the Universal Plugin Manager (UPM).

Follow these steps:

  1. Login as a system administrator
  2. Navigate to Apps -> Explore More Apps
  3. In the Search for apps field type Issue AI Analytics for Jira
  4. The app will be filtered In the results panel. Click on the app icon
  5. Click Try it for free and wait for the app to install
Note that Issue AI Analytics for Jira uses standard Atlassian licensing model. Trial period is available.
 

Configuration

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:

  • Project analytics customization – Enable project administrators to customize analytics on a per-project basis. If enabled, an additional “Issue AI Analytics” page will become available under “Project Settings”, that allows creating unique analytics tabs, specific for the particular project.
  • Analytics language – language in which analytics should be displayed. This setting will attempt to instruct the AI model to respond in a particular language, however, it is not always guaranteed that this will be considered.
  • Analytics customization – allows customization of what analytics are produced, by modifying what queries are sent for analysis (additional details available below)
  • Enable advanced features – enable a set of advanced app features. Advanced features are only available if you provide your AI API token. This means that you will be responsible for AI charges when issue analytics are generated. Advanced features also enables you to use Azure OpenAI Service.
  • [Advanced feature] OpenAI API Token – Obtain an API token from your OpenAI account, to use advanced features with OpenAI models. Not needed if you haven’t selected an OpenAI model from the Analytics Customization section.
  • [Advanced feature] Automatically enable analytics on issue creation – All issues will have AI Analytics enabled by default when they’re created.
  • [Advanced feature] Enable Azure OpenAI Service – Enables Azure OpenAI Service integration. When enabled, by default all analytics tabs utilize Azure OpenAI Service.
  • [Azure OpenAI Service] API Key – Your Azure API token
  • [Azure OpenAI Service] Resource Name – The name of your Azure OpenAI Resource
  • [Azure OpenAI Service] Deployment ID – The deployment name you chose when you deployed the model
Analytics Customization

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:

  • Enabled – if the tab should be displayed
  • AI Provider – external AI provider and model to be used. Note that this field will not be visible, if you select to use Azure OpenAI Service.
  • Tab Name – name of the tab to be shown in the issue view screen
  • AI Query – you may change the default AI query with your own, using this field
  • Copy analytics to Jira field – Use a Jira field to store analytics results, in addition to the analytics panel
  • Field Name – Specify the field name. Don’t use summary or description fields. If this is a custom field, use the ID, such as: customfield_10042
  • Field Type – Type of the field. Available options are Paragraph or Short text. Short text is limited to 255 characters – if the analytics block is bigger than 255 characters, the field will not be updated. If an incorrect field type is selected, assignment will fail.
Analysis is always done based on all issue details, through an AI query. The AI query is a question that is sent for analysis and represents a single tab in the AI Analytics issue view.
For example, if you want to get analytics for time estimations you may input the following:
 
   Tab name: Time estimation
   AI Query: Provide a time estimation needed to complete the task
 
The above will result in the following example query being sent for analysis:
 
   Password reset <– This is the Issue Summary
   Please reset my Active Directory password as it has expired <– This is the Issue Description
   —
   Provide a time estimation needed to complete the task <– This is the AI Query configured for one analytics tab
 
The results will be displayed in a tab called Time estimation
 
Project Analytics Customization

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:

  • Project Settings menu, under Issue AI Analytics

The following settings are available and are applicable only for the current project:

  • Analytics language – language in which analytics should be displayed. This setting will attempt to instruct the AI model to respond in a particular language, however, it is not always guaranteed that this will be considered.
Additionally, each analytics tab can be customized through the following settings:
  • Enabled – if the tab should be displayed
  • Tab Name – name of the tab to be shown in the issue view screen
  • AI Query – you may change the default AI query with your own, using this field
The AI Provider can’t be selected at the project level – it can only be changed by a system administrator globally. 
Analysis is always done based on all issue details, through an AI query. The AI query is a question that is sent for analysis and represents a single tab in the AI Analytics issue view.
For example, if you want to get analytics for time estimations you may input the following:
 
   Tab name: Time estimation
   AI Query: Provide a time estimation needed to complete the task
 
The above will result in the following example query being sent for analysis:
 
   Password reset <– This is the Issue Summary
   Please reset my Active Directory password as it has expired <– This is the Issue Description
   —
   Provide a time estimation needed to complete the task <– This is the AI Query configured for one analytics tab
 
The results will be displayed in a tab called Time estimation
 
Bulk Enable Analytics Wizard

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.

Usage

To use Issue AI Analytics for Jira, navigate to an already created issue and click the Enable AI Analytics button. Wait for the analytics to be displayed (can take 20-60 seconds the first time). The analysis results are displayed as tabs, through a new panel in the Issue View screen.

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.

Limitations

Issue AI Analytics for Jira has the following limitations:

  • AI analytics will be generated with a maximum of 4096 tokens per tab
  • Maximum of 4 analytics tabs can be configured
 

Known Issues

Issue AI Analytics for Jira has the following known issues:

  • The following error message is displayed when Enable AI Analytics is clicked – “License for this feature is not set or has expired. Please contact your system administrator”. Please ensure your app is licensed.
  • The following error message is displayed when Enable AI Analytics is clicked – “Unable to generate AI Analytics – this could be caused by slower analysis or busy AI servers. Please try again in a bit”.  Sometimes the AI provider can be overloaded and analytics generation takes more time. The request will eventually be processed in the background, so try refreshing the page in some time.

Functional Overview

Issue AI Analytics enhances Jira by seamlessly integrating advanced AI capabilities. The following key features are available to users:

AI Analytics

AI Analytics enhances the Jira issue view with automated, AI-powered insights. When a user presses the Enable AI Analytics button, the app gathers the issue’s details — including key fields, descriptions, and other configured context — and sends them to the connected AI service.
The AI processes this information and returns results, which are presented in a set of configurable tabs (for example: Instructions, Description Improvements, Definition of Done, Test Strategy).

These analytics tabs can be customized at both the global and project levels, allowing administrators to define:

  • Which tabs are shown

  • How they are labelled

  • The AI queries (prompts) used to generate their content

AI Assistant

The AI Assistant provides an interactive, conversational interface embedded directly within the Jira Issue View screen. It enables users to:

  • Ask natural-language questions about the issue’s context

  • Receive summaries, suggestions, or guidance generated by AI

  • Get tailored recommendations for issue refinement or next steps

The Assistant operates in real time, sending the current issue context and the user’s query to the AI service, then displaying the AI’s response directly in the conversation panel.

Project administrators can control access to the AI Assistant at the project level and configure which context sources are included, ensuring responses are relevant and aligned with project requirements.

Jira AI Chat Assistant

AI Agents
AI Agents are a powerful feature in Issue AI Analytics for Jira that bring the flexibility and efficiency of AI-powered automations directly into your Jira workflows. With AI Agents, your teams can automate repetitive tasks, accelerate decision-making, and maintain more accurate projects – all with just a few clicks.
 
Configuring and using an AI Agent is a simple three-step process:
  1. Creation – a Jira system administrator creates an AI Agent, defining its capabilities and automation settings.
  2. Project assignment – a project administrator assigns the created AI Agent to the relevant Jira project(s), making it available to project users.
  3. Usage – project users can leverage the AI Agent in two ways:
    • Automatic: The AI Agent is triggered automatically by project events (such as issue creation or status change), and performs its configured actions without user intervention.
    • Semi-Automatic: Users can manually activate the AI Agent from a button on the Issue View screen, if enabled, review the AI’s suggested actions, and choose whether to apply them.
The following AI Agent types are currently supported:
  • Issue Configurator: Automatically configures and updates Jira issue fields based on flexible AI instructions.
Context Sources

Context Sources allow administrators to configure additional information that can be included in AI interactions. A context source is a defined construct that represents relevant data — either static or retrieved dynamically from an external system — which can be used to enrich the AI’s understanding and improve the quality of its outputs.

By supplying AI features with supplemental knowledge, context sources enable the system to:

  • Better understand issue details and their surrounding context
  • Generate more accurate and targeted content
  • Perform complex or domain-specific operations more effectively
The following Context Source types are currently supported:
Jira – Fetches related issues from the local Jira instance, relevant to the user’s AI query.
Custom – Allows creation of bespoke connectors to retrieve context from other systems or repositories. Examples include:
  • Knowledge base integrations (e.g., Confluence, internal wikis, document repositories)
  • External API connections (REST, GraphQL, or other service endpoints)
  • MCP endpoints for real-time model context retrieval
  • Any organization-specific data source required for enhanced AI decision-making

Once a context source is defined at the global level, project administrators can assign and configure it within their project settings. This enables each project to tailor AI interactions to the most relevant and valuable information available.

Architectural Overview

Issue AI Analytics enhances Jira by integrating with an external AI provider to deliver advanced analytics, conversational and agentic AI capabilities. The app operates in two modes, configurable by a system administrator: Cloud AI Mode and Private AI Mode. Only one mode can be active.
  • Cloud AI Mode: Connects your Jira instance to an AI model hosted on the internet.
  • Private AI Mode: Enables integration with any AI model, public or private, accessible within your organization.
AI Analytics Architecture
The AI analytics integration is triggered by the Enable AI Analytics button in the Issue View screen. When pressed, issue details are sent for analysis, and the process runs asynchronously—allowing users to continue their work without waiting for completion. The initial analytics generation for an issue typically takes 10–30 seconds, depending on the external AI provider’s processing time. Results are cached in the local Jira database for immediate retrieval in future views. If the issue summary or description changes, analytics are automatically regenerated to ensure up-to-date insights.
 
Note:
Caching in the Jira database is used exclusively for analytics results to enhance user experience by minimizing processing delays.
 
AI Assistant Architecture
Issue AI Analytics provides an AI Assistant—a real-time AI chat feature embedded directly in the Issue View screen. This chat operates synchronously, delivering instant responses and leveraging the full context of the issue under review. Users can engage in natural language conversations with the AI Assistant to get immediate answers and recommendations relevant to the current issue.
 
AI Agents Architecture

AI Agents operate as an automated extension of the Issue AI Analytics engine, performing actions on issues based on AI-generated recommendations and project-specific rules.

  • When triggered — either manually by a user or automatically by an issue event — each agent is first evaluated against its configured policy to determine whether it is permitted to execute. Policy validation occurs at the following levels:
  • Project scope – Confirm the agent is enabled for the current project.
    JQL scope – Verify the issue matches the configured JQL criteria.
  • Event scope – For event-based triggers, ensure the triggering event type is allowed.

If execution is permitted, the agent gathers the relevant issue context — including all issue properties and any configured context sources — and submits this, along with its defined instructions, to the AI service. The AI processes the input and returns a recommended action set.

  • Manual execution – The AI’s recommendation is displayed to the user, who must confirm before any changes are applied.
  • Event-based execution – The recommendation is applied automatically, subject to policy rules and Jira permissions.

Agent actions may include updating fields, adding comments, linking issues, or changing workflow statuses.

In Jira Data Center deployments, AI Agent tasks are coordinated across all nodes to ensure each job is processed only once, maintaining consistency and preventing duplicate execution.

Context Sources Architecture

Context Sources operate as a shared enhancement layer for all AI-powered features – AI Analytics, AI Assistant, and AI Agents. Their purpose is to enrich the AI’s understanding of an issue by providing additional, relevant information before any AI model interaction takes place.

When a feature interaction is triggered, the following sequence occurs:

  1. Context Source Execution – If one or more context sources are configured for the project, they are executed first.

  2. Context Expansion – Each context source gathers and compiles its data (from Jira or external systems) and, if configured, can use AI to refine or summarize that data.

  3. Context Injection – The expanded context is combined with the issue’s native data to form a richer, more complete prompt for the AI model.

  4. AI Interaction – The enriched context is then sent to the AI service for processing, enabling more accurate, relevant, and actionable outputs.

Context sources are reusable, meaning a single configuration can be leveraged by multiple AI features across different projects.

By integrating context sources into the pre-processing phase, all AI-driven features benefit from a broader and deeper understanding of the issue domain — improving both the quality and reliability of AI-generated insights and actions.

 

Requirements

The following conditions must be met in order to use Issue AI Analytics for Jira:

  • Connectivity to the desired AI model (HTTP proxy is supported). Firewall access must be enabled from all Jira cluster nodes.
  • For Private AI mode – a Private AI server must be available and reachable from Jira

Installation

Issue AI Analytics for Jira is installed as a standard application through the Universal Plugin Manager (UPM).

Follow these steps:

  1. Login as a system administrator
  2. Navigate to Jira Administration -> Manage Apps
  3. In the Search the Marketplace field type Issue AI Analytics for Jira
  4. The app will be filtered In the results panel. Click the Free Trial or Buy Now buttons
  5. Accept the terms and conditions
  6. Once app is installed, click on Get license and follow the instructions
  7. You will need to choose the application integration mode as Cloud AI or Private AI. To do that, navigate to the Manage Apps screen, open Issue AI Analytics for Jira and select the Configure button. Reference the Configuration section on this page for more information on which mode to choose. 
Note that Issue AI Analytics for Jira uses standard Atlassian licensing model. Trial period is available.
 

Configuration

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:

  • Integration mode – specifies how the application integrates with the selected AI provider. This setting is not selected by default and must be configured by a system administrator for the app to function. There’s two options to choose from: Cloud AI mode allows you to utilize cloud-hosted models, such as public OpenAI models. Internet connectivity is required. Private AI mode allows you to use any public or private AI model, for maximum privacy. No Internet connectivity is required.
  • Integration script (only available in Private AI mode) – defines the connection protocol with the Private AI mode (additional details available below)
  • AI Model (only available in Cloud AI mode) – the AI model you want to use for all features of the app.
  • API Token (only available in Cloud AI mode) – your OpenAI API token
  • Proxy settings (only available in Cloud AI mode) – HTTP proxy configuration settings required for Jira Data Center instances that don’t have direct Internet connectivity
  • Enable project-level settings – Enable project administrators to customize AI Analytics and AI Assistant settings on a per-project basis. If enabled, an additional “AI Settings” page will become available under “Project Administration”.
  • Fine-tuning settings – Additional parameters. Please reach out to support@deview-studios.com before modifying this field.
  • Automatic analytics re-generation – Enable automatic re-generation of analytics. If enabled, analytics will be automatically re-generated when the issue summary or description changes. If disabled, analytics can be manually re-generated through the Re-generate button in the analytics panel.
  • Dynamic context injection for AI Assistant – Attempt to automatically expand the AI context for AI Assistant interactions, using one or more context sources. Please note that enabling this option will lead to higher AI token consumption and slower output processing. 
  • AI Assistant context sources – Select context sources to use for the AI Assistant, to add additional context for AI interactions. You may select multiple values
  • Issue analytics policy – Enable or disable issue analytics button and panel for issues. Exceptions can be applied through the Issue analytics policy exceptions field.
  • Issue analytics policy exceptions – apply project exceptions to the “Issue analytics policy”. This value must be a list of project keys, separated by comma (no whitespaces). If “Issue analytics policy” is set to Enable, all projects specified in this field will have issue analytics disabled. If “Issue analytics policy” is set to Disable, all projects specified in this field will have issue analytics enabled.
  • AI assistant policy – Enable or disable AI Assistant panel for issues. Exceptions can be applied through the AI assistant policy exceptions field.
  • AI assistant policy exceptions – apply project exceptions to the “AI assistant policy”. This value must be a list of project keys, separated by comma (no whitespaces). If “AI assistant policy” is set to Enable, all projects specified in this field will have AI Assistant disabled. If “AI assistant policy” is set to Disable, all projects specified in this field will have AI assistant enabled.
Analytics Customization

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. These settings can be overwritten at the project level, by a project administrator if the Enable project-level settings toggle is enabled.

You may change the settings of the existing tabs by modifying the following parameters:

  • Enabled – if the tab should be displayed
  • Dynamic context injection – Attempt to automatically expand the AI context for this tab, using one or more context sources. Please note that enabling this option will lead to higher AI token consumption and slower output processing. 
  • Context Sources for this tab – Select context sources to use for this tab, to add additional context for AI interactions. You may select multiple values.
  • Tab Name – name of the tab to be shown in the issue view screen
  • AI Query – you may change the default AI query with your own, using this field
Analysis is always done based on issue summary and issue description, through an AI query. The AI query is a question that is sent for analysis and represents a single tab in the AI Analytics issue view.
For example, if you want to get analytics for time estimations you may input the following:
   Tab name: Time estimation
   AI Query: Provide a time estimation needed to complete the task
 
The above will result in the following example query being sent for analysis:
 
   Password reset <– This is the Issue Summary
   Please reset my Active Directory password as it has expired <– This is the Issue Description
   —
   Provide a time estimation needed to complete the task <– This is the AI Query configured for one analytics tab
 
The results will be displayed in a tab called Time estimation
 
Project-level AI Settings

A project administrator may change some project-level settings if enabled by a system administrator. The configuration functionality is accessible through:

  • Project Administration menu, under AI Settings

The following settings are available and are applicable only for the current project:

  • Dynamic context injection for AI Assistant – Attempt to automatically expand the AI context for AI Assistant interactions, using one or more context sources. This toggle can only be enabled by a system administrator from the Issue AI Analytics – Control Panel.
  • AI Assistant context sources – Select context sources to use for the AI Assistant, to add additional context for AI interactions. You may select multiple values.
Additionally, each AI analytics tab can be customized through the following settings:
  • Enabled – if the tab should be displayed
  • Dynamic context injection – Attempt to automatically expand the AI context for this tab, using one or more context sources. This toggle can only be enabled by a system administrator from the Issue AI Analytics – Control Panel. 
  • Context Sources for this tab – Select context sources to use for this tab, to add additional context for AI interactions. You may select multiple values.
  • Tab Name – name of the tab to be shown in the issue view screen
  • AI Query – you may change the default AI query with your own, using this field
Analysis is always done based on issue properties, through an AI query. The AI query is a question that is sent for analysis and represents a single tab in the AI Analytics issue view.
For example, if you want to get analytics for time estimations you may input the following:
   Tab name: Time estimation
   AI Query: Provide a time estimation needed to complete the task
 
The above will result in the following example query being sent for analysis:
 
   Password reset <– This is the Issue Summary
   Please reset my Active Directory password as it has expired <– This is the Issue Description
   —
   Provide a time estimation needed to complete the task <– This is the AI Query configured for one analytics tab
 
The results will be displayed in a tab called Time estimation
 
Private AI Mode Integration Script

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 or an AI Agent is executed. In the case of analytics generation, if you have 4 analytics tabs enabled, the script will be invoked 4 times.

Script invocation lifecycle is as follows:

  1. User interacts with an AI feature
  2. Groovy script execution is triggered
  3. Groovy script integrates with a Private AI model over HTTP or other means
  4. Groovy script returns a single String result, which contains the generated result
  5. [If this is an AI Analytics interaction] Resulting analytics are persisted in the Jira database as cache

For proper execution the following best practises must be followed:

  • The script must always return the AI output as a String result.

The following variables are available for use within the script:

VariableDescription
typeRequest type. Identifies if this request comes from an interaction with the AI Assistant or when the Enable AI Analytics button is pressed. Possible values: chatanalytics.
tabIdID of the tab storing the generated analytics of this run (available only for analytics requests).
tabNameName of the tab storing the generated analytics of this run (available only for analytics requests).
queryQuery configured for the current tab. Should be sent for AI analysis (available only for analytics requests).
messagesAll 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)
issueContextThe entire context of an issue, as string, to be sent as chat context (available only for chat requests).
latestMessageThe latest user message from a conversation with the AI assistant. Available as a Message object. (available only for chat requests)
analyticsLanguageSelected analytics language.
issueComplete Issue object. See Issue API Documentation.
issueSummarySummary field for the issue.
issueDescriptionDescription field for the issue.
httpClientUsed to send HTTP requests.
loggerMay be used for logging. Example:
logger.info("message") | logger.debug("message") | logger.error("message").
It’s recommended to enable DEBUG logging while developing the script to see if you’re receiving errors. Please see section Logging. 
If you need help developing the script, don’t hesitate to reach to a Deview Studios representative through our standard channels.
The following is an example integration with OpenAI GPT-4.1 through the Groovy script:
/* 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
AI Agents
Creating and using AI agents is a 3-step process:
  1. As a system administrator, creating the agent and enforcing security and compliance policies
  2. As a project administrator, assigning the agent to your project and fine-tuning available settings
  3. As a user, using the AI agent
Step 1: Admin Configuration — Creating an AI Agent
To manage AI agents, navigate to Manage Apps and select the Issue AI Analytics – AI Agents menu. To create a new agent, select the Create New Agent button. This configuration defines the agent’s name, scope, permitted actions, and AI behavior. Each field in the admin setup screen is described below.
 
General Settings
 
Agent Name (required) – A unique name for the AI Agent. This name will be visible to project administrators when configuring agents for their projects.
Example: Issue Field Updater, Priority Suggester, Auto Labeler
Description – An optional summary describing the purpose and functionality of this AI Agent. This is visible to project administrators during assignment.
Example: Automatically sets labels based on issue description and comments.
Agent Policy – Controls whether this agent is active and can be configured by project administrators.
Possible values:
  • Enable for project admins to configure: Project administrators can assign and configure this agent for their projects.
  • Disable for project admins to configure: The agent cannot be assigned or configured in projects.
Agent Policy Exceptions – Specify exceptions to the above policy. Enter a comma-separated list of project keys to include or exclude from the agent policy.
Example: PROJ1,PROJ2,PROJ3
Enable Dynamic Context Injection – Attempt to automatically expand the AI context for this agent, using one or more context sources. Please note that enabling this option will lead to higher AI token consumption and slower output processing.
Context Sources – Select context sources to use for this agent, to add additional context. You may select multiple values.
Allowed Agent Triggers (required) – Choose one or more events that will trigger the AI Agent.
  • Manual: Adds a button to the Issue View screen for user-initiated (reviewable) actions.
  • Automatic: Runs when the selected Jira event occurs, with no user intervention.
Possible values (multi-select):
  • Manual – Button Clicked [Issue View Screen]
  • Issue Event – Created
  • Issue Event – Updated
  • Issue Event – Assigned
  • Issue Event – Resolved
  • Issue Event – Closed
  • Issue Event – Commented
  • Issue Event – Reopened
  • Issue Event – Work Started
  • Issue Event – Work Stopped
  • Issue Event – Generic Event
Agent Settings – these are settings specific to the type of AI agent selected. Note: Agent Settings cannot be modified as long as any project is using this agent.
 
Issue Configurator Agent
 
The following fields are available for AI agents of type “Issue Configurator”
Use a Custom Field – Enable this to configure the agent for a custom Jira field rather than a standard field.
Values:
  • Enabled: You must specify the Custom Field ID.
  • Disabled: Use standard field selection.
Field (required) – Select the Jira field to be updated by this AI Agent. If using a custom field: specify the Custom Field ID
Custom Field ID (required if “Use a Custom Field” is enabled) – Enter the custom field ID, for example, customfield_10100. This ID can be found in Jira’s field configuration or by inspecting the field in the admin interface.
AI Query (required) – Provide clear instructions for the AI Agent on how to generate the field value. The agent will use this prompt, along with the context of each issue, to update the field.
Examples:
  • Based on the issue description and comments, suggest appropriate labels.
  • Analyze the issue description and comments and suggest a priority level.
Overwrite Policy – Controls which aspects of this agent’s configuration can be modified by project administrators when assigning the agent to a project.
Possible values:
  • Configuration Locked: No modifications allowed to field and AI query
  • Field Editable: Field can be changed.
  • AI Query Editable: AI instructions can be changed.
  • Fully Editable: field and AI query can be modified by project admins.
Next Step: Once the agent is created, a project administrator can assign it to their project (see Step 2: Project Assignment).
 
Step 2: Project Assignment — Configuring an AI Agent for a Project
Once an AI Agent has been created by a Jira system administrator, a project administrator can assign and configure that agent for their specific project. To assign a new AI agent, navigate to your project, select Project Settings and select the AI Agents menu. This step allows you to enable or disable the agent for your project, adjust its configuration (if permitted), and control when and how it operates. The configuration is different depending on the type of agent being used.
 
Issue Configurator Agent
 
Enabled – Toggle to enable or disable the AI Agent for this project.
Agent Name (required) – Name of the AI Agent as it will appear for this project.
Description – A description of what this AI Agent does in the context of this project. This can help document your specific use case or configuration. The description will be shown to users if a Button Clicked trigger is selected
Agent Priority (required) – Priority level from 1 to 100. Higher priority agents (closer to 1) will run before lower priority agents (closer to 100) if multiple agents are triggered for the same event. This allows you to control the order in which agents execute. Agent priority is not applciable for Button Clicked triggers.
Agent Conditions – JQL conditions that determine whether this agent should run for an issue. For example: issuetype = Bug AND status = Open. Leave this field empty to run the agent for all issues. Multiple conditions can be combined with AND/OR operators. JQL conditions are not applicable for Button Clicked triggers.
Enabled Triggers (required) – Select which triggers should activate this agent for the project. Multiple triggers can be selected. Only the authorized triggers by a system administrator will be displayed.
Possible options:
  • Manual – Button Clicked [Issue View Screen]: Adds a button to the Issue view screen so users can manually review and apply the agent’s action.
  • Issue Event – Created: Runs automatically when an issue is created.
  • Issue Event – Updated: Runs automatically when an issue is updated.
  • Issue Event – Assigned: Runs automatically when an issue is assigned.
  • Issue Event – Resolved: Runs automatically when an issue is resolved.
  • Issue Event – Closed: Runs automatically when an issue is closed.
  • Issue Event – Commented: Runs automatically when an issue is commented on.
  • Issue Event – Reopened: Runs automatically when an issue is reopened.
  • Issue Event – Work Started: Runs automatically when work is started on an issue.
  • Issue Event – Work Stopped: Runs automatically when work is stopped on an issue.
  • Issue Event – Generic Event: Runs automatically on a generic issue event.
Use a custom field – Enable this option if you want the agent to update a custom Jira field instead of a standard field. This field is only editable if authorized by a system administrator
Field (required) – Select the Jira field that this AI Agent will update. This field is only editable if authorized by a system administrator
Custom Field ID (required if “Use a custom field” is enabled) – Enter the custom field ID, for example: customfield_10100. Custom field IDs can be found in the field configuration or by inspecting the field in Jira’s administration interface. This field is only editable if authorized by a system administrator
Instructions – Provide detailed instructions for the AI Agent on how to generate the field value. This field is only editable if authorized by a system administrator
Examples:
  • Based on the issue description and comments, suggest appropriate labels.
  • Analyze the issue description and suggest a priority level.
After saving, the AI Agent will be active (if enabled) in your project and will operate based on your chosen configuration and triggers.
 
Context Sources

Context sources are defined at the global level by Jira system administrators and can be assigned to AI Analytics, AI Assistant, or AI Agents features. Once configured, system administrators can utilize context sources in the following ways:

  • Context sources can be globally assigned to AI Assistant interactions from the app’s Control Panel
  • Context sources can be globally assigned to AI Analytics tabs (separately per tab) from the app’s Control Panel
  • Context sources can be globally assigned to AI Agents from the AI Agent configuration page

Additionally, project administrators can override context source settings for AI Assistant and AI Analytics for their own projects, if project-level settings customisation is enabled. Context sources can be assigned to AI Agents only by a system administrator.

To create a context source, navigate to Manage Apps -> Issue AI Analytics – Context Sources and click Create New Context Source. Select the desired context source type from the dropdown and click Continue.

General Settings

Name (required) – Unique identifier for the context source, visible to project administrators.

Description – Optional explanation of the context source’s purpose and function.

Policy (required) – Choose:

  • Enabled – Available for use and can be assigned to features/projects.
  • Disabled – Inactive; cannot be assigned.
  • Global – Always enabled for the selected features without explicit assignment.

Policy Exceptions – Comma-separated list of project keys where the policy does not apply.

Available Features (required) – Select which features can use this context source (AI Agents, AI Analytics, AI Assistant).

Priority (required) – Defines execution order when multiple context sources are configured (1 = highest priority).

Jira Context Source Settings

The Jira context source dynamically fetches context locally from Jira issues, providing relevant issue data and metadata to enhance AI-powered interactions and decision-making processes

Authorization User – (Optional) Specify the Jira user to use when retrieving data; defaults to the current user if left blank.

JQL Filter – (Optional) Apply an additional JQL filter to limit which issues are included in the output.

Show Referenced Issues in Output – Toggle whether related issues are hyperlinked in AI output (not applicable to AI Agents).

Custom Context Source Settings

A Custom context source allows you to define a Groovy script that can fetch context from an external system using an MCP server or directly through API. Use this to integrate data from outside Jira and make it available for AI-powered features. The script you provide will be executed to retrieve and format the context as needed.

Use a Template – Optionally start from a predefined Groovy script template.

Context Script – Provide a Groovy script to fetch context from an external system, MCP endpoint, or API, and append it to the AI interaction.

  • Use contextSource.appendContext(moreContext) to add content.
  • Must return true if successful, or throw an exception on error.
  • Sensitive values can be stored securely using the provided secret encryption tool.

Usage

AI Analytics
To use the app for analytics generation, open an existing issue and click the Enable AI Analytics button. The app will generate analytics for the issue, which typically takes 10–30 seconds the first time. The analytics are displayed as tabs in a new panel within the Issue View screen.
Once generated, analytics results are stored and will appear instantly when you revisit the Issue View page for that issue.
If automatic analytics is enabled by an administrator, the app will re-generate analytics automatically whenever the issue summary or description changes. Otherwise, you can manually update analytics by clicking the Re-generate button in the analytics panel.
 
AI Assistant
To use the AI Assistant, open an existing issue and interact with the AI Assistant panel. The AI Assistant provides a chat interface where you can ask questions or instruct the AI model to perform specific tasks related to the issue.
This allows you to get quick, AI-powered support and insights right inside your Jira issues.
 
AI Agents
Once an AI Agent is configured and enabled for your project, it will run automatically or manually based on the triggers set by your project admin.
For Issue Configurator Agents:
  • If the “Manual – Button Clicked” trigger is enabled, you will see a button on the Issue View screen. Click this button to run the agent, review and refine the AI’s suggestions, and choose whether or not to apply the changes.
  • If any automatic triggers are enabled (such as issue created, updated, assigned, etc.), the agent will process the issue in the background when those events occur, updating the configured fields according to your setup.
  • If JQL conditions are set, the agent will only run for issues that match those criteria.
  • If a custom field is configured, the agent will update that custom field.
  • No additional user action is needed for automated triggers. For manual triggers, simply review and approve the changes as needed.

Limitations

Issue AI Analytics for Jira has the following limitations:

  • Maximum of 4 analytics tabs can be configured

Logging

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.

Known Issues

Issue AI Analytics for Jira has the following known issues:

  • The following error message is displayed when a user interacts with the app’s features – “License for this feature is not set or has expired. Please contact your system administrator”. Please ensure your app is licensed.
Deview Studios Logo

 

Contact Us

Copyright © 2022 Deview Studios