Feature Parity and Script Alternatives
ScriptRunner for Jira Cloud does not have the same feature set as the Server/Data Center version. We have noted below the parity of each ScriptRunner for Server/Data Center feature, along with any script/function alternatives where there is currently no value parity.
ScriptRunner for Server/Data Center features, which are not supported in ScriptRunner for Jira Cloud, are also listed in the parity tables for full transparency to allow an informed decision when migrating from Server/Data Center to Cloud.
The varying parities between Cloud and Server/Data Center exist due to the limitations of the Jira REST API and UI Modifications API, which ScriptRunner relies on to allow certain functionality. Unfortunately, it is likely that some features cannot be part of the Cloud feature set due to restrictions in the Cloud platform. There are also some general limitations within ScriptRunner Cloud, such as script execution timeouts and script storage, which we recommend reviewing.
The ScriptRunner Migration Suite is a suite of tools that helps you plan, analyse, convert and deploy scripts with confidence, significantly reducing the manual migration effort. It supports (not replaces) your expertise. The suite is made up of three tools:
- ScriptRunner Migration Analyse and Assess Tool: Use this tool to review your ScriptRunner Data Center scripts and configurations for risks and cloud readiness.
- The ScriptRunner Migration Agent: Use our specialised AI chat agent to create, convert, and optimise scripts, or you can use it to answer a variety of different questions about ScriptRunner.
- ScriptRunner Dev and Deployment Tool: Use this tool to organise and deploy ScriptRunner Cloud scripts. It is focused on making it easier and faster for consultants and developers to migrate, test, and deploy scripts from ScriptRunner DC to Cloud.
If you have any questions, need help, or would like to request access, the quickest way to get assistance is through our dedicated support portal.
| Key | Definition |
|---|---|
| ✓ | Full value parity. |
| ◐ | Partial value parity. |
| ALT | No value parity, but custom script alternatives are available. |
| ✗ | No value parity or alternatives are available. |
Behaviours
Parity summary
The Behaviours feature allows you to implement various common use cases, such as:
- Restricting issue type based on user role
- Making a field required when a value is selected inside a select list field
- Adding a default description
See our Example Scripts for a complete collection of pre-written scripts that address common use cases.
Parity details
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Behaviours | ◐ | Atlassian created an API called UI Modifications on the Forge platform, which made it possible for ScriptRunner to build Behaviours. As more capabilities become available in the UI Modifications API, more functionality can be built in ScriptRunner's Behaviours feature. Behaviours is a key focus within ScriptRunner's product development roadmap. We are actively enhancing this feature by integrating new capabilities as Atlassian releases them. Notable differences for Behaviours on Cloud: ✗ You can apply Behaviours to the Create, Issue, and Transition views (Create, View/Edit, Transition view types) of a Jira issue. Refer to Behaviours Supported Fields and Products for details. ✗ Behaviours may be applied to certain supported fields only, as not all fields are currently supported in all available views. ✗ Currently, you cannot select all projects and all issue types simultaneously. You may, however, select all projects OR all issue types. Notable parity for Behaviours on Cloud: ✓ Compatible with Jira Software and JSM. ✓ Company and team-managed projects are supported. ✓ Support for over 30 system and custom field types across all three Create, Issue, and Transition views (Create, View/Edit, Transition view types). |
Built-In Scripts
Parity summary
ScriptRunner for Jira Cloud offers a limited selection of built-in scripts compared to the Data Center version. However, alternative scripts that can be executed through the Script Console are available in Cloud. Where applicable, links to these script alternatives are provided in the table below.
See our Example Scripts for a complete collection of pre-written scripts that can be run from the Script Console.
Parity details
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Bulk Copy SLA Configuration | ✗ | This is not applicable in the Jira Cloud environment. SLA configurations are managed through Jira Service Management's native interface in Cloud. The REST API doesn't provide endpoints for bulk SLA configuration operations, and this is considered an administrative setup task rather than a scripting use case. |
| Bulk Fix Resolution | ◐ | The Bulk fix resolutions built-in script is available in ScriptRunner for Jira Cloud. This feature is marked as having partial parity because Jira Cloud does not allow clearing resolutions (selecting None option). |
| Bulk Import Custom Fields | ALT | The same function can be achieved by writing your own script in the Script Console but with all the caveats of time limitations, API availability, etc. We have provided an alternative example script below that works for Select List, Multi Select List, Checkbox and Radio button fields to import in options. It creates new options if they don't exist and emits options that already exist.
The example script below works for bulk import cascading select list field options. It creates new options if they don't exist and omits options that already exist.
|
| Change Dashboard, Filter or Board Ownership | ALT | Similar functionality can be achieved by writing a script in the Script Console to call the Change Filter Owner and the Bulk edit dashboards APIs to update and filter dashboard owners. We have created a Change owner of Filter or Dashboard example script for this. |
| Clean Workflows | ALT | The same function can be achieved by writing a script to call the workflows search API to search for workflows adding a queryString of isActive:false to return inactive worklows, and then for each workflow returned, call the delete inactive workflow API. |
| Clear Groovy Class Loader | ✗ | This is not applicable in the Jira Cloud environment. This is a server-level operation that clears cached Groovy classes from memory. In Cloud, ScriptRunner runs in a separate process managed by Atlassian's infrastructure, and class loading is handled automatically. Users don't have access to server-level memory management. |
| Configuration Exporter | ✗ | This is not possible in Jira Cloud. A third-party tool such as salto.io can provide this. This Data Center tool exports Jira configuration data directly from the server. Cloud instances are managed by Atlassian, and configuration exports are handled through Atlassian's native Cloud migration tools and backup services, not through third-party apps. |
| Copy Custom Field Values | ◐ | The Copy custom field values to another field built-in script is available in ScriptRunner for Jira Cloud. This feature is marked as having partial parity because it does not support the same number of fields as ScriptRunner for Jira Data Center. Jira Cloud currently supports:
|
| Copy Project | ALT | You can achieve the same functionality in Jira Cloud by using the Script Console and a custom script. There is a limit of 240 seconds for script executions. After running for 240 seconds, the logs will be collected, and the code will be terminated. |
| Generate Events | ✗ | This is not possible in Jira Cloud. Cloud's asynchronous execution model doesn't support manually triggering Jira events. Events are fired automatically by Jira when actions occur, and the Connect framework doesn't provide a mechanism to artificially generate events. |
| Guardrails - Maximum number of comments per issue. | ALT | You can use the numberOfComments JQL Keyword to search for issues that exceed a maximum number of comments using a JQL query similar to the one below.
You can then manually review these issues and delete the comments if needed. To automate this, you could run this query in the Script Console calling the Archive Issues by JQL API with this JQL to archive all issues returned that exceed this threshold. |
| Guardrails - Maximum number of unarchived projects | ALT | Similar functionality can be achieved by writing a script in the Script Console to call the Get Projects Paginated API and filter out results where the You can then call the Archive project API for every project returned by this API. We have created a Archive unused projects example script for this, which can be run on the script console. |
| Guardrails - Maximum Number of Issue Links Per Issue | ALT | You can use the numberOfLinks JQL Keyword to search for issues that exceed a maximum number of links using a JQL query similar to the one below.
You can then manually review these issues and delete the links if needed. If you wanted to automate this, you could run this query in the Script Console calling the Archive Issues by JQL API with this JQL to archive all issues returned that exceed this threshold. |
| Guardrails - Maximum Attachment Size | ✗ | This is not possible in Jira Cloud. Attachment size limits in Cloud are controlled at the Atlassian infrastructure level, not through individual instance configuration. The REST API doesn't expose endpoints to query or enforce custom attachment size limits. |
| Guardrails - Maximum Change History Records Per Issue | ✗ | This is not possible in Jira Cloud. Change history is managed by Atlassian's Cloud infrastructure. There's no REST API endpoint to query the number of history records per issue or to enforce limits on history retention. |
| List Scheduled Jobs | ALT | Cloud's Atlassian Connect framework doesn't provide REST API access to query Jira's internal job scheduling system. Cloud does not have the same internal scheduler as Jira Data Center, and in Cloud scheduled tasks are completed using automation rules configured on a scheduled trigger. As an alternative, you could write a script to call the Automation API to search and return all scheduled rules and return them. |
| Re-index Issues | ✗ | This is not applicable in the Jira Cloud environment. Reindexing in Cloud is managed entirely by Atlassian's infrastructure. Unlike Data Center where admins have direct control over indexing, Cloud automatically handles index maintenance. Users cannot and should not manually trigger reindexing operations. |
| Script Registry | ✗ | Update coming soon... |
| Service Desk Template Comments | ✗ | This is not possible in Jira Cloud. This functionality relates to Jira Service Management's internal comment templating system. The Cloud REST API doesn't expose endpoints for managing comment templates in the same way Data Center's Java API does. |
| Split Custom Field Contexts | ALT | Similar functionality can be achieved by writing a script in the Script Console as shown in this example script. |
| Switch to a Different User | ALT | Cloud scripts cannot impersonate users for security reasons. Scripts execute as either:
User impersonation would violate Cloud's security model and Atlassian's multi-tenant architecture. Atlassian does not provide impersonation APIs so this cannot be built in Jira Cloud. However, Jira Cloud organization admins can switch to different users by using the built in feature as documented by Atlassian. |
| Test Runner | ✗ | This is not applicable in the Jira Cloud environment. This Data Center tool runs automated tests against ScriptRunner scripts using server-side testing frameworks. Cloud's execution environment doesn't support the same testing infrastructure. Testing must be done through the Script Console or by running scripts in development environments. |
| View Server Log Files | ✗ | This is not applicable in the Jira Cloud environment. Cloud users don't have access to server log files - Atlassian manages the infrastructure. You can, however, Review logs in ScriptRunner for Jira Cloud. |
HAPI
Parity summary
In ScriptRunner for Jira Cloud, HAPI is available but has a limited scope due to the constraints of the Jira Cloud platform and REST-based architecture. This means that not all the methods available in DC are available in Cloud, as outlined in the table below:
Parity details
Cloud link:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Application links | ✗ | This is not applicable in the Jira Cloud environment. Application Links is a Server/Data Center feature for connecting different Atlassian applications (Jira to Confluence, Bitbucket, etc.). In Jira Cloud, this concept doesn't exist in the same way—Cloud products automatically link when they're in the same Atlassian organization. There's no configurable "Application Links" feature to script against, so HAPI support isn't relevant. |
| Assets | ALT | While Assets/Insight exists in Cloud, ScriptRunner cannot integrate with Asset automation triggers and actions. The feature parity documentation shows all Asset-related automation features (Asset Object Created Trigger, Asset Object Updated Trigger, Create Asset Action, Lookup Asset Object Action) have no parity. As an alternative, you could use the Asset REST API to write scripts. |
| Attachments | ◐ | Cloud includes:
|
| Comments | ✓ | Cloud includes:
See the Cloud Work with Comments page for more details. |
| Entity properties | ✓ | Cloud includes:
For each of the above you can:
See the Cloud Work with Entity Properties page for more details. |
| Fields | ✓ | Cloud includes:
See the Cloud Update Fields page for more details. |
| Filters | ALT | The Jira Cloud REST API does not provide adequate endpoints for programmatically managing filters. While you can execute JQL searches, you cannot script filter management operations like you can in Data Center. As an alternative, you can use the Jira Cloud REST API to create, update, and delete filters. |
| Groups | ◐ | Cloud includes:
See the Cloud Work with Groups page for more details. |
| Issues | ✓ | Cloud includes:
See the Cloud Work with Work Items page for more details. |
| Permission schemes | ALT | The Jira Cloud REST API does not expose endpoints for managing permission schemes. You cannot programmatically create, modify, or assign permission schemes to projects. This is a significant platform limitation—permission scheme management must be done manually through the Jira UI. Alternatively, you can write scripts to assign permission schemes using the REST API. |
| Projects | ✓ | Cloud includes:
See the Cloud Work with Spaces page for more details. |
| Send emails | ALT | While a notification API exists in Cloud, it has critical restrictions:
This makes it unsuitable for many common email automation scenarios that worked in Server/Data Center. Alternatively, as ScriptRunner provides the send notification post function, you can call the Notify API in a script to send a notification. |
| Users | ◐ | Cloud includes:
See the Cloud Work with Users page for more details. |
| Watchers | ✗ | There is no HAPI support for managing watchers. However, the Jira Cloud REST API does provide endpoints for watcher operations:
You can implement watcher management using direct REST API calls with Unirest, but there's no simplified HAPI wrapper for these operations. |
Integrations
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Automation for Jira: Asset Object Created Trigger | ✗ | Automation for Jira offers a range of built-in Asset and Jira actions that are readily available in Jira Cloud. Note that ScriptRunner Automation for Jira triggers and actions are currently unsupported on Cloud. |
| Automation for Jira: Asset Object Updated Trigger | ✗ | |
| Automation for Jira: Create Asset Action | ✗ | |
| Automation for Jira: Execute a ScriptRunner Script Action | ✗ | |
| Automation for Jira: Lookup Asset (Insight) Object Action | ✗ | |
| Automation for Jira: Lookup Asset (Insight) Objects from AQL (IQL) Action | ✗ | |
| Automation for Jira: Update Asset Action | ✗ | |
| Vendors API | ✗ |
Jobs
Parity summary
This feature is known as Scheduled Jobs and Escalation Service in ScriptRunner for Jira Cloud. While this feature has certain limitations in the Cloud environment (detailed in the table below), you can still implement various common use cases.
See our Example Scripts for a complete collection of pre-written scripts that can be used with Scheduled Jobs.
Parity details
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Custom Scheduled Job | ◐ | The Scheduled Jobs feature is available in ScriptRunner for Jira Cloud. Jira Cloud supports:
|
| Escalation Service | ◐ | The Escalation Service feature is available in ScriptRunner for Jira Cloud. Jira Cloud supports:
|
| Issue Archiving Job | ALT | This can be achieved by writing a custom escalation service that calls the Archive issue API to archive any issues returned by the JQL query specified on the schedule specified. You can also run the Archive issues returned by a JQL Search example script to archive issues. |
JQL Functions
Parity summary
Both versions of ScriptRunner use JQL Functions. However, this feature has been implemented as Enhanced Search within ScriptRunner for Jira Cloud.
If you purchase ScriptRunner for Jira Cloud, you will automatically receive ScriptRunner Enhanced Search for free - this is included as part of your license. However, if you find that you're not using any of the other features offered by ScriptRunner for Jira Cloud, and you're only using Enhanced Search functionality, you can purchase Enhanced Search as a standalone product instead.
Please note that both apps are not designed to be used simultaneously as the data is stored separately. Although both products work independently, you will only see filters in the app it was created from and could duplicate work. If you currently have both products installed, or if you would like to switch from one to the other please contact our Support team who can manually transfer your data on your behalf.
See our Enhanced Search documentation for JQL Query Comparisons between ScriptRunner for Jira Server/DC and Cloud.
Parity details
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
addedAfterSprintStart | ✓ |
This JQL function will identify issues that were added to an open sprint after the feature was released (21st December 2020). Historical searches for issues added to open sprints prior to that date are not supported. |
aggregateExpression | ✗ | The DC implementation calculates aggregates (sum, count, etc.) across issue data and displays results in a separate panel. Native Jira doesn't support displaying aggregate summaries in a UI panel in search results. Also, there are performance considerations because aggregate expressions require complex calculations across large datasets. |
archivedVersions | ALT | There is no like-for-like function in Jira Cloud, but depending on what you want to achieve, you could implement a new function in Cloud. Cloud's version API ( |
commented | ALT | There is no like-for-like function in Jira Cloud, but depending on what you want to achieve, you could use some ScriptRunner JQL Keywords to achieve the same: |
completeInSprint | ALT | There is no like-for-like match here, but the inSprint JQL function can be used to search for issues in the sprint that have a completed status to get a similar query. |
componentMatch | ✓ | componentMatch is available in ScriptRunner Enhanced Search. |
dateCompare | ✓ | dateCompare is available in ScriptRunner Enhanced Search. |
earliestUnreleasedVersionByReleaseDate | ALT | The Server/DC implementation finds the earliest unreleased version by release date for a project. For Cloud, it is possible to access the version releaseDate and released status, these fields are available from the Cloud API. |
epicsOf | ◐ |
This function is available for Jira company-managed projects but not for team-managed projects. |
expression | ◐ | The Server/DC implementation allows arbitrary Groovy expressions to be evaluated against issue data and can compare duration, date, number, picker, and user fields, and perform mathematical operations on them. In Cloud, Jira expressions are used and cannot be embedded in JQL functions the same way. The expression function can compare duration, date, number, pickers, and user fields (and perform mathematical operations on them), making it too complex to parse automatically and determine the type of field without querying Jira. For date field types only, there is a potential partial conversion to the
|
fileAttached | ALT | There is no like-for-like function in Jira Cloud, but depending on what you want to achieve, you could use some ScriptRunner JQL Keywords to achieve the same result: |
hasAttachments | ALT | There is no like-for-like function in Cloud, but depending on what you want to achieve, you could use the numberOfAttachments ScriptRunner JQL keyword to achieve the same result. |
hasComments | ALT | There is no like-for-like function in Cloud, but depending on what you want to achieve, you could use the numberOfComments ScriptRunner JQL keyword to achieve the same result. |
hasLinks | ALT | There is no like-for-like function in Jira Cloud, but depending on what you want to achieve, you can use native Jira keywords workItemLink and workItemLinkType. |
hasLinkType | ALT | There is no like-for-like function in Jira Cloud, but depending on what you want to achieve, you can use the native Jira keyword workItemLinkType. |
hasRemoteLinks | ALT | The Server/DC implementation searches for issues with remote links (links to external systems like Confluence and Bitbucket). Cloud has a remote link: Implementing for Cloud would require fetching issues and checking each issue for remote links, although it could be slow/expensive. |
hasSubtasks | ALT | There is no like-for-like function in Cloud, but depending on what you want to achieve, you could use the numberOfSubtasks ScriptRunner JQL keyword to achieve the same result. |
inactiveUsers | ALT | The Server/DC implementation returns all users who have been marked inactive in the system. For Cloud:
|
incompleteInSprint | ALT | There is no like-for-like match here, but the inSprint JQL function can be used to search for issues in the sprint which have an incomplete status to get a similar query. |
issueFieldExactMatch | ✓ | issueFieldExactMatch is available in ScriptRunner Enhanced Search. |
issueFieldMatch | ✓ | issueFieldMatch is available in ScriptRunner Enhanced Search. |
issuePickerField | ✗ | Cloud Status: not possible to migrate
|
issuesInEpics | ✓ |
This function is available for Jira company-managed projects but not for team-managed projects. |
jiraUserPropertyEquals | ◐ | The Server/DC implementation returns users with matching Jira user property values (custom key-value pairs stored on user accounts). Cloud Status: not possible to migrate without limitations
|
lastComment | ALT | There is no like-for-like function in Cloud, but depending on what you want to achieve, you could use the |
lastUpdated | ALT | There is no like-for-like function in Cloud, but depending on what you want to achieve, you could use the updated native Jira keyword to search for issues last updated within a certain time frame. |
linkedIssuesOf | ✓ |
This function can be used in Jira Server/Data Center to search for issues linked with the parent-child hierarchy provided by Advanced Roadmaps/Portfolio but not in Jira Cloud Enhanced Search. |
linkedIssuesOfAll | ALT | There is no like-for-like function in Jira Cloud, but depending on what you want to achieve, you could combine regular issue links, epic links, and subtask links via parent field. |
linkedIssuesOfAllRecursive | ALT | There is no like-for-like function in Jira Cloud, but depending on what you want to achieve, you could combine regular issue links, epic links, and subtask links via parent field. |
linkedIssuesOfAllRecursiveLimited | ALT | There is no like-for-like function in Jira Cloud, but depending on what you want to achieve, you could combine regular issue links, epic links, and subtask links via parent field. |
linkedIssuesOfRecursive | ✓ | linkedIssuesOfRecursive is available in ScriptRunner Enhanced Search. |
linkedIssuesOfRecursiveLimited | ✓ | linkedIssuesOfRecursiveLimited is available in ScriptRunner Enhanced Search. |
linkedIssuesOfRemote | ✗ | The Cloud API doesn't provide indexed access to remote link properties for efficient searching, and the
|
memberofRole | ◐ | Cloud status: possible with significant limitations
|
myProjects | ◐ | Cloud Status: possible to implement, with significant limitations.
|
nextSprint | ✓ | nextSprint is available in ScriptRunner Enhanced Search. |
overdue | ALT | Cloud Status: could be implemented as a new function
|
parentsOf | ALT | parentsOf is available in ScriptRunner Enhanced Search. |
portfolioChildrenof | ◐ |
Second parameter (optional): You can use a second JQL query for childrenOf(Subquery) that acts as a filter on descendant issues. We strongly recommend using this option to avoid filters that require significantly longer processing times because of their recursive nature. For example, you could use: And then narrow the search results: |
portfolioParentOf | ◐ |
|
previousSprint | ✓ | previousSprint is available in ScriptRunner Enhanced Search. |
projectMatch | ✓ |
In Jira Cloud this function uses the |
projectsOfType | ALT | There is no like-for-like match here, but you can use the native Jira keyword of projectType to return all issues from projects of a certain type such as Software. |
recentProjects | ALT | There is no like-for-like match here, but you can use the native Jira keyword of lastViewed to return issues you last viewed in the past x days to see what projects you interacted with in that timeframe. |
releaseDate | ALT | Cloud Status: possible to implement (could be implemented as a separate function, similar to
|
removedAfterSprintStart | ALT | Cloud Status: possible to implement, but with additional complexity, similar to Cloud's
|
startDate | ALT | Cloud Status: possible to implement as a separate function, identical to
|
subtasksOf | ✓ | subtasksOf is available in ScriptRunner Enhanced Search. |
versionMatch | ✓ | versionMatch is available in ScriptRunner Enhanced Search. |
workLogged | ◐ | Cloud Status: partial native support for date queries only;
|
Listeners
Parity summary
This feature is known as Script Listeners in ScriptRunner for Jira Cloud. While built-in script listeners are available in the Data Center version and not currently in Cloud, there are many script alternatives that can be executed using a custom script listener. Where applicable, links to these script alternatives are provided in the table below.
See our Example Scripts for a complete collection of pre-written scripts that can be used with Script Listeners.
Parity details
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Adds the current user as a watcher | ALT | You can achieve the same result by creating a custom script listener and using the Add the current user as a watcher example script. |
| Clone an issue and links | ALT | You can achieve the same result by creating a custom script listener and using the Clone an issue and link to it example script. Please note that this alternative is subject to the constraints of the Cloud environment, such as time limitations and API availability. Check out our page on Scripting in ScriptRunner for Jira Cloud for tips. |
| Create a sub-task | ALT | You can achieve the same result by creating a custom script listener and using and/or adapting the Create sub-tasks when an issue is created example script. |
| Custom Listener | ◐ | The custom script listener feature is available in ScriptRunner for Jira Cloud. Please note that this feature is subject to the constraints of the Cloud environment. There is a limit of 240 seconds for script executions. After running for 240 seconds, the logs will be collected, and the code will be terminated. Currently, a custom event may not be created and used to trigger listener actions. Events supported in Cloud The list below shows the list of events that Jira Cloud supports to trigger listener actions from:Supported Events
|
| Execution failure notifier | ALT | In Jira cloud, the Notifications group setting allows you to specify a group of users who will get an email each time a script fails, but this can't be configured to send to other messaging services such as Slack because the notify API doesn't allow you to email external emails. |
| Fast-track transition an issue | ALT | You can achieve a similar result by creating a custom script listener and using HAPI. |
| Fires an event when a condition is true | ALT | In Data Center this listener enables you to trigger a specific Jira event based on a custom condition. Once fired, the event can be picked up by a notification scheme, determining who gets alerted.It is not possible to fire a custom event in Cloud therefore this built-in script cannot be directly replicated in ScriptRunner for Jira Cloud. However, you could use the Send Notification built-in post function that is available. |
| Post a message to slack | ALT | You can achieve the same result by creating a custom script listener and using and/or adapting the Post a message to Slack example script. |
| Send a custom email (non-issue events) | ALT | You can achieve a similar result by creating a custom script listener and using and/or adapting the Notify on priority change example script. The notify API doesn't allow you to email external emails and only allows you to notify users, groups, or user fields (such as assignee or reporter) on an issue. |
| Send a custom email | ALT | You can achieve a similar result by creating a custom script listener and using and/or adapting the Notify on priority change example script. The notify API doesn't allow you to email external emails and only allows you to notify users, groups, or user fields (such as assignee or reporter) on an issue. |
| Version Synchronizer | ALT | You can achieve a similar result by creating a custom script listener and using and/or adapting the Copy versions from one project to another example script. Please note that this alternative is subject to the constraints of the Cloud environment, such as time limitations and API availability. Check out our page on Scripting in ScriptRunner for Jira Cloud for tips. |
Mail Handler
The Mail Handler Data Center feature is not currently available in ScriptRunner for Jira Cloud.
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Mail Handler | ✗ |
Resources
Parity summary
The Resources feature is not currently available in ScriptRunner for Jira Cloud, however some Resources have script alternatives that can be executed in the Script Console in ScriptRunner for Jira Cloud. Where applicable, links to these script alternatives are provided in the table below.
Parity details
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Database Connection | ALT | You can connect to databases in scripts and link to the examples we have in the Script Console examples. |
| LDAP Connection | ALT | If the LDAP service exposes a REST API, you could connect to this in Scripts by making a REST API call. |
| Local Database Connection | ✗ | This is not possible in Jira Cloud. "Local" databases are on-premises behind your firewall. Cloud runs in Atlassian's AWS infrastructure and cannot access your internal network due to security isolation. ScriptRunner Cloud runs as a separate service with no direct network access to customer infrastructure. |
| Slack Connection | ALT | You can connect to Slack in scripts via the REST API and link to the examples we have in the Script Console examples. |
REST Endpoints
The Rest Endpoints feature is not currently available in ScriptRunner for Jira Cloud.
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Rest Endpoints | ✗ | Unlike Data Center, Jira Cloud does not offer custom endpoints. Instead it uses the Atlassian REST API. However, with ScriptRunner, you can still connect and interact with other systems by calling their external APIs. |
Script Console
The Script Console feature is available in both Data Center and Cloud versions of ScriptRunner. However, there are some limitations applied to scripts on Cloud you should be familiar with.
See our Example Scripts for a complete collection of pre-written scripts that can be ran from the the Script Console in ScriptRunner for Jira Cloud.
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Script Console | ✓ | Execution limitation:
|
Script Editor
The Script Editor feature is available in ScriptRunner for Jira Cloud as the Script Manager.
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Script Editor | ✓ | ScriptRunner for Jira Cloud's Script Manager feature allows you to create and manage saved Coming soon...We are working on creating further Script Manager enhancements, including:
|
UI Fragments
Parity summary
This feature is known as Script Fragments in ScriptRunner for Jira Cloud; however, only Web Panels are available.
Parity details
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Custom web item | ✗ | This is not possible in Jira Cloud. Web Items (buttons, menu items, links) are not supported by the UI Modifications API. You cannot add custom buttons or menu items to Jira's UI through ScriptRunner Cloud. |
| Show a web panel | ◐ | You can create web panels in ScriptRunner for Jira Cloud, however there are limitations, such as:
|
| Create a custom web section | ✗ | This is not possible in Jira Cloud. As Cloud doesn't support web items, it also doesn't support the sections that would contain them. |
| Hide system or plugin UI element | ✗ | This is not possible in Jira Cloud. |
| Constrained create issue dialog | ✗ | This is not possible in Jira Cloud. |
| Planning board context menu item | ✗ | This is not possible in Jira Cloud. We cannot add custom menu items to boards, backlogs, or other agile views. |
| Install web resource | ✗ | This is not possible in Jira Cloud. Web Resources (CSS, JavaScript files bundled with plugins) are a P2 framework concept that doesn't exist in Cloud. Cloud apps cannot install global resources into Jira's UI. Script Fragments must reference external URLs for resources instead. |
| Custom web item provider | ✗ | This is not possible in Jira Cloud. Web Item Providers (dynamic generation of multiple web items) are not supported since basic web items aren't supported. |
| Raw XML module | ✗ | This is not possible in Jira Cloud. Raw XML modules were used in Server/DC's P2 plugin framework to define plugin modules via atlassian-plugin.xml. Cloud uses the Atlassian Connect framework, which uses JSON descriptors instead. There is no XML-based plugin configuration in Cloud. |
Script Fields
Parity summary
This feature is known as Scripted Fields in ScriptRunner for Jira Cloud. While built-in scripted fields are available in the Data Center version and not currently in Cloud, there are many script alternatives that can be executed using a custom scripted field.
See our Example Scripts for a complete collection of pre-written scripts that can be used with Scripted Fields.
Parity details
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Custom Script Fields | ◐ | The Custom Scripted Field feature is available in ScriptRunner for Jira Cloud.Additional details:
The following Scripted Fields template types cannot be migrated and will require a modification: Custom template fields Typically used to render complex objects (tables, lists, linked issues).In Cloud, you could achieve the same result using a Paragraph Scripted Field returning Atlassian Document Format (ADF). ADF supports tables, paragraphs, links, bold text, and more. HTML template fields You could migrate it to a Text Field (for short strings) or a Paragraph Field (for longer content). If the script was generating HTML markup, rewrite it to return ADF instead. Duration template fields Typically returns a number of milliseconds or seconds representing elapsed time.In Cloud, the best approach is to:
|
| Custom Picker | ✗ | This is not possible in Jira Cloud.Jira Cloud's REST API doesn't support creating picker field types through apps. |
| Database Picker | ✗ | You can connect to databases in scripts and link to the examples we have in the Script Console examples. |
| Date of the first transition | ALT | You can achieve the same result by creating a Custom Scripted Field and using the Date of the first transition example script. |
| Issue(s) Picker | ALT | This is not possible in Jira Cloud.Jira Cloud's REST API doesn't support creating picker field types through apps.Alternative: Use native Jira Issue Links or display issue references as read-only text/links in Scripted Fields. You could write a script to search for the issue to return and render a link to an issue in a rich text field using Atlassian Document Format. |
| LDAP Picker Field | ✗ | This is not possible in Jira Cloud.Jira Cloud's REST API doesn't support creating picker field types through apps.Alternative: If LDAP exposes a REST API, you could display LDAP data in read-only Scripted Fields, but not create an interactive picker. |
| No. of times in a status | ALT | You can achieve the same result by writing your own script in the Custom Scripted Field but with all the caveats of time limitations, API availability, etc. You can use the example script outlined below as an alternative: |
| Remote issue(s) picker | ALT | You can link to issues in a remote Jira instance using the Create remote issue link API inside a script. We have an example of using this API here. |
| Show parent issue in a hierarchy | ALT | You can achieve the same result by writing your own script in the Custom Scripted Field but with all the caveats of time limitations, API availability, etc. You can use the example script outlined below as an alternative: |
| Time of Last status Change | ALT | You can achieve the same result by creating a Custom Scripted Field and using the Time of last status change example script. |
Settings
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Script Edit Permissions | ✗ | |
| Hapi Code Helper | ✗ | |
| In-App Communications | ◐ | There is no opt-in for this, but we use in-app banners and popups to communicate information relating to Scriptrunner for Jira Cloud. |
| Switch User Function | ✗ | This is not possible in Jira Cloud.Apps cannot bypass authentication or run as arbitrary users. Scripts can only execute as:
This security restriction is fundamental to Cloud's multi-tenant architecture.Atlassian does not provide the API so this cannot be built in Jira Cloud. However, Jira Cloud organization admins can switch to different users by using the built in feature as documented by Atlassian. |
| Anonymous Analytics | ✗ | |
| User Editor Settings | ✗ |
Workflow Conditions
Parity summary
ScriptRunner Workflow functions are available in ScriptRunner for Jira Cloud as Workflow Rules. ScriptRunner Script Conditions are present in Jira Cloud but rely on Jira expressions rather than Groovy, and it is not possible to use the REST API.
While built-in script conditions aren't directly accessible in ScriptRunner for Jira Cloud, you can replicate their functionality using ScriptRunner Restrict Transitions with Jira expressions.
Parity details
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| All sub-tasks must be resolved | ALT | You can achieve the same result by creating a custom script restrict transitions rule and using the Sub-tasks must be done Jira expression example. |
| Checks the issue has been in a status previously | ALT | You can achieve the same result by creating a custom restrict transitions rule and using the Checks the work item has been in a status previously Jira expression example. |
| Custom script condition | ALT | The ScriptRunner Script Restrict Transitions feature is available in ScriptRunner for Jira Cloud, however this feature relies on Jira Expressions in Cloud. It does not use Groovy and it is not possible to use the REST API.Incompatible fields that should be discarded:
|
| Field(s) required condition | ALT | You can achieve the same result by creating a custom restrict transition rule and using the Field(s) required Jira expression example. |
| Group(s) condition | ALT | You can achieve the same result by creating a custom restrict transition rule and using the Specify the current user must be in a defined list of users Jira expression example. |
| JQL query matches condition | ✗ | This is not possible in Jira Cloud.Cloud workflow conditions are restricted to the Jira Expression Framework only, which cannot execute arbitrary JQL queries like Data Center's Groovy-based conditions could.You can achieve similar functionality using custom script conditions with Jira Expressions, but you must work within the expression language's constraints rather than executing full JQL queries. |
| Linked issues condition | ALT | You can achieve the same result by creating a custom restrict transition rule and using the Linked work item Jira expression example. |
| Project role(s) condition | ALT | You can achieve the same result by creating a custom restrict transition rule and using the Restrict to project role Jira expression example. |
| Regular expression condition | ALT | You can achieve the same result by creating a custom restrict transition rule and using and/or adapting the Regular expression Jira expression example. |
| Simple scripted condition | ◐ | The ScriptRunner Restrict Transition feature is available in ScriptRunner for Jira Cloud, however this feature relies on Jira Expressions in Cloud. It does not use Groovy and it is not possible to use the REST API. |
| User in field(s) condition | ALT | You can achieve the same result by creating a custom restrict transition rule and using and/or adapting the User in field(s) Jira expression example. |
| User(s) condition | ALT | You can achieve the same result by creating a custom restrict transition rule and using and/or adapting the User(s) and user group(s) Jira expression example. |
Workflow Post Functions
Parity summary
ScriptRunner Workflow functions are available in ScriptRunner for Jira Cloud as Workflow Rules. ScriptRunner Post Functions are available in Jira Cloud as Perform Actions.
While some built-in script post functions are not currently available in the ScriptRunner for Jira Cloud environment, many of them have script alternatives that can be executed using a ScriptRunner Script Perform Actions.
See our Example Scripts for a complete collection of pre-written scripts that used with Workflow post functions.
Parity details
Cloud links:
- Cloud Workflow Rules Documentation
- Cloud Perform Actions Documentation
- Cloud Perform Actions Example Scripts
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Add a comment to this issue | ALT | You can achieve the same result by creating a custom perform actions and using and/or adapting the Add comment to this work item script. |
| Add/remove from sprint | ✓ | The Add/remove from sprint built-in action is available in ScriptRunner for Jira Cloud.Incompatible fields that should be discarded:
|
| Adds a comment to linked issues when this issue is transitioned | ALT | You can achieve the same result by using the Run Script action and the Add a comment to linked issues when this work item is transitioned script. |
| Adds the current user as a watcher | ALT | You can achieve the same result by using the Run Script action and the Add the current user as a watcher script. |
| Archive this issue | ALT | You can achieve the same result by using the Run Script post function and writing a script to call the Archive issue API to achieve this.To use this API, you need to be on the Premium or Enterprise tiers of Jira Cloud. |
| Assign to first member of role | ALT | The Assign Work Item built-in action is available in ScriptRunner for Jira Cloud.Incompatible fields that should be discarded:
|
| Assign to last role member | ALT | The Assign Work Item built-in action is available in ScriptRunner for Jira Cloud.Incompatible fields that should be discarded:
|
| Clear field(s) | ALT | You can achieve the same result by using the Run Script action and the Clear field(s) script. |
| Clones an issue, and links | ✓ | The Clone Work Item built-in action is available in ScriptRunner for Jira Cloud.Incompatible fields that should be discarded:
|
| Copy field values | ALT | You can achieve the same result by using the Run Script action but with all the caveats of time limitations, API availability, etc. Check out our page on Scripting in ScriptRunner for Jira Cloud for tips.In Cloud there is already a Copy Value From Other Field post function built in. |
| Create a sub-task | ✓ | The Create Sub-task built-in action is available in ScriptRunner for Jira Cloud.Incompatible fields that should be discarded:
|
| Custom script post-function | ✓ | The Run Script action is available in ScriptRunner for Jira Cloud. |
| Fast-track transition an issue | ✓ | The Fast-Track Transition Work Item built-in action is available in ScriptRunner for Jira Cloud.Incompatible fields that should be discarded:
|
| Fires an event when condition is true | ALT | In Data Center this post function enables you to trigger a specific Jira event based on a custom condition. Once fired, the event can be picked up by a notification scheme, determining who gets alerted.It is not possible to fire a custom event in Cloud therefore this built-in script cannot be directly replicated in ScriptRunner for Jira Cloud. However, you could use the Send Notification built-in action that is available. |
| Post a message to Slack | ALT | You can achieve the same result by using the Run Script post function and the post to Slack script. |
| Send a custom email | ✓ | The Send Notification built-in post function is available in ScriptRunner for Jira Cloud. |
| Set issue security level depending on the provided condition | ALT | You can achieve the same result by using the Run Script post function and writing a script that, if the condition matches, calls the Edit Issue API and updates the issue to set the security field on an issue. You could use and adapt the Set Issue Security Level script example. |
| Transition parent when all subtasks are resolved | ◐ | The Transition Parent Work Item built-in post function is available in ScriptRunner for Jira Cloud. |
Workflow Validators
Parity summary
ScriptRunner Workflow functions are available in ScriptRunner for Jira Cloud as Workflow Rules. ScriptRunner for Server/Data Center Validators are present in Jira Cloud as Validate Details, but rely on Jira expressions rather than Groovy, and it is not possible to use the REST API.
While built-in validators aren't directly accessible in ScriptRunner for Jira Cloud, you can replicate their functionality using Validate Details with Jira expressions.
Parity details
Cloud links:
| Server/DC Feature | Cloud Parity | Parity Notes/Alternatives |
|---|---|---|
| Custom script validator | ALT | The Validate Details feature is available in ScriptRunner for Jira Cloud, however this feature relies on Jira Expressions in Cloud. It does not use Groovy and it is not possible to use the REST API.Incompatible fields that should be discarded:
|
| Field(s) changed validator | ALT | You can achieve the same result by creating a custom validate details and using the Field(s) changed Jira expression example. |
| Field(s) required validator | ALT | You can achieve the same result by creating a custom validate details and using the Field(s) required Jira expression example. |
| Regular expression validator | ALT | You can achieve the same result by creating a custom validate details and Regular expressions. |
| Require a comment on transition | ALT | You can achieve the same result by creating a custom validate details and using the Require a comment on transition Jira expression example. |
| Simple scripted validator | ◐ | The Validate Details feature is available in ScriptRunner for Jira Cloud, however this feature relies on Jira Expressions in Cloud. It does not use Groovy and it is not possible to use the REST API. |
| User in field(s) validator | ALT | You can achieve the same result by creating a custom validate details and using the User in field(s) Jira expression example. |