Instance Audit
Instance Audit Compatibility
This built-in script is currently compatible with ScriptRunner 8.54+, 9.25+ and 10.1+.
Use Instance Audit to get an overview of your Jira Instance's health. Instance Audit provides you with a numerical summary of key components, including:
- Users
- Projects
- Issues
- Custom fields
- Workflows
- Workflow Functions
- Attachments
- Installed apps
This feature enables you to quickly assess the current state of your Jira environment for easy cleanup, instance optimization, and migration preparation. For a more comprehensive analysis, use Export report to download CSV files containing more information on users, projects, custom fields, and workflow functions.
Dashboard summary
The following categories are summarized in the dashboard:
| Name | Description |
|---|---|
| Users | Monitor user statistics with a breakdown of total, active, and disabled users in your instance. A disabled user refers to an account that has been deactivated through one of the following methods:
|
| Projects | Get a clear snapshot of project metrics, including the total number of projects, active projects, and archived projects within your instance. |
| Issues | Track issue statistics with an overview of total issues, active issues, and inactive issues in your instance. Issue activity status is determined by a 30-day window. Issues that have been updated or interacted with within this period are classified as active, while those that haven't are considered inactive. |
| Custom Fields | Monitor custom field usage across your instance with a breakdown of total custom fields, distinguishing between Jira-native custom fields and those created by apps. |
| Workflows | Access workflow statistics, including the total number of workflows, active workflows, and inactive workflows. A workflow is active when it is associated with at least one project. |
| Workflow Functions (from Plugins) | Analyze the distribution of workflow functions created by plugins. This feature provides insights into the number of plugin-generated functions associated with both active and inactive workflows |
| Attachments | Monitor attachment usage by viewing the total number of attachments and their cumulative size. |
| User-installed Apps | Track app utilization by viewing the number of user-installed apps, categorized as enabled or disabled. |
View your instance audit dashboard
- From ScriptRunner, navigate to Built-in Scripts > Instance Audit.
- Select Run. The instance audit dashboard displays below.
Download a report
You can export a comprehensive zip report containing multiple CSV files. These files provide detailed information on users, projects, custom fields, and workflow functions (from plugins) within your instance.
- From ScriptRunner, navigate to Built-in Scripts > Instance Audit.
- Select Export report.
Understand report data
The exported zip report contains several CSV files with detailed information about your instance. The following tables explain what each column in these CSV files represents, helping you interpret and analyze the exported data effectively.
Projects report data
The Projects report provides the following analyses:
| Column | Description |
|---|---|
| Key | Unique identifier of your project. |
| Name | Name of the project. |
| Lead | User assigned as the lead of the project. |
| Category | Category assigned to the project (if specified). |
| Type | Jira project type (for example, software). |
| Archived | Details of whether the project is archived or active. |
| Number of issues | Total number of issues in a project. |
| Date of first issue creation | The date the first issue was created in the project. |
Issues recently created (last 30d) | Number of issues created in the project in the last 30 days. |
Issues recently updated (last 30d) | Number of issues updated in the project in the last 30 days. |
Users report data
The Users report provides the following analyses:
| Column | Description |
|---|---|
| User Key | Key which distinguishes the user as unique. |
| User Name | The username (login). |
| Display Name | User displayed name (full name). |
| Email Address | User email address. |
| Directory | The name of the directory from which the user comes. For example, Jira Internal Directory. |
| Status | If the user is currently Active or Inactive. |
| Group Names | The names of the groups in which the user is included (for example, Admin group). |
| Number of Logins | The number of times the user has logged in. |
| Last Login Time | The time of the last successful login. |
Workflow function report data
The Workflow functions report provides the following analyses of workflow functions created by plugins:
| Column | Description |
|---|---|
| Workflow | The name of the workflow the workflow function is associated with. |
| Workflow Status | If the workflow is currently active, inactive, or in draft. |
| Transition | The transition on which the workflow function is configured. |
| Index | The position of the workflow function for the specific transition. |
| Module | The specific component within a plugin that provides the workflow function. For example, if ScriptRunner supplies a validator, this field will show the exact type, such as Custom script validator, Field(s) required validator, etc. This information helps identify the origin and purpose of each workflow function |
| Plugin | Name of the app providing the function. Plugins showing as Missing Plugin includes disabled plugins as well as uninstalled plugins. |
| URL | URL pointing to the workflow function location in your instance. |
| Type | The workflow function type, for example, validator, post function, or condition. |
Custom Fields report data
The Custom fields report provides the following analyses:
| Column | Description |
|---|---|
| Name | Name of the custom field. |
| Type | Custom field type (for example, Text Field). |
| Source | The app from which the custom field type originated, such as ScriptRunner. Or "JIRA" in the case of Jira's built-in custom field types. |
Auditing examples
The following tables detail some common use cases. Greater analysis is possible with the use of advanced statistical tools in spreadsheets such as the use of pivot tables.
Workflow function audit examples
| Migrating | Merging | Inheriting | Cost saving | Health checking | Step-by-step | Notes | |
|---|---|---|---|---|---|---|---|
| Identify most/least used workflow functions by plugins |
You might choose to filter by workflow status or plugin. | The number of uses won't be a perfect indicator of how much value these workflow functions bring to your business, this exercise will simply give you a broad view to get you started with assessing your usage and requirements. | |||||
| Identify apps with crossover functionality |
| These apps may be delivering more than just workflow functionality, so be sure to look into each one fully before making your final decisions! | |||||
| Identify totally unused workflow apps |
| These apps may be delivering more than just workflow functionality, so be sure to look into each one fully before making your final decisions! | |||||
| Identify missing workflow apps |
| ||||||
| Create list of must have workflow functions |
You might choose to filter by workflow status so that you only look at Active workflows. | The number of uses won't be a perfect indicator of how much value these workflows bring to your business, this exercise will simply give you a broad view to get you started with assessing your usage and requirements. | |||||
| Identify most cost inefficient apps |
| Remember these apps may be delivering much more than just workflow functionality and the number of uses may not be a reflection of the value that is provided to your business in terms of time saved or processes protected. Be sure to look into each fully before making your final decisions! |
Project audit examples
| Migrating | Merging | Inheriting | Cost saving | Health checking | Step-by-step | Notes | |
|---|---|---|---|---|---|---|---|
| Identify most/least used projects |
You might choose to filter by Archived so that you only look at active projects. | The number of issues won't be a perfect indicator of how valuable the project is as it may leave out new relevant projects, this exercise will simply give you a broad view to get you started with assessing your usage and requirements. To get a better view of the usage in recent days you can add an extra column that calculates the value of Issues Created in the Past 30 days/Number of Issues. This will identify recently created projects compared to old established projects. | |||||
| Identify totally unused projects |
You may also want to filter further to also only show projects with a value of 0 in Issues updated in the past 30 days. You might choose to filter by Archived so that you only look at active projects. | These projects might still be required, so be sure to look into each one fully before making your final decisions! | |||||
| Identify archived projects |
| ||||||
| Identify projects nearing their end-of-life |
You may also want to sort by two columns including the Issues updated in the past 30 days. | Run this scan periodically and compare the number for a project to see which are winding down towards end-of-life. You can use your spreadsheet to combine the created/edited entries to see the least active projects. |
User audit examples
| Migrating | Merging | Inheriting | Cost saving | Health checking | Step-by-step | Notes | |
|---|---|---|---|---|---|---|---|
| Identify users whose email addresses are not unique within your instance |
| On Jira Cloud, it is not possible to have an email address shared between two users. There is a one-to-one relationship between Users and Email Addresses. | |||||
| Identify user groups |
| ||||||
| Identify the directories with the most users |
| ||||||
| Identify users that have not accessed the application for a long period |
| ||||||
| Identify users that have never logged in |
|
Custom field audit examples
| Migrating | Merging | Inheriting | Cost saving | Health checking | Step-by-step | Notes | |
|---|---|---|---|---|---|---|---|
| Identify the most common custom field types |
| ||||||
| Identify most/least used apps for custom fields |
| This can help you identify dispensable apps. | |||||
| Identify which custom fields have been created with a particular app |
| If you are thinking about uninstalling an app, this will allow you to quickly identify which custom fields are dependent on it. | |||||
| Identify duplicated custom fields |
|

