Migrate from ScriptRunner for Jira Server/DC to Cloud

Please note that to migrate from ScriptRunner for Jira Server to Cloud, you will likely need to update (or have updated) your Server or DC version. Currently, users moving from ScriptRunner for Jira Server/DC to Cloud need to be on version 6.47.0 or above.

Feature Differences

ScriptRunner for Jira Cloud does not have the same feature set as the Server/Data Center version. You can learn about the parity for each individual ScriptRunner for Server/Data Center feature in our Feature Parity table. We also provide details on workaround script/function alternatives where there is currently no parity with Cloud.

You can migrate from ScriptRunner for Jira Server/DC to Cloud either:

We recommend you use the Cloud Migration Assistant when migrating an instance with ScriptRunner from Server to Cloud. Whether you are using the Cloud Migration Assistant or manually migrating, you must follow the steps outlined in the processes below.

Be aware that any migration from Server to Cloud (manual or through the Atlassian Cloud Migration Assistant) will require rewriting scripts.

Manual Migration Process

  1. Analyse the purpose/functionality of your existing scripts.
    We suggest you clean up your instance as much as possible before migrating. Navigate through each ScriptRunner feature tab, for example listeners, to see a list of all listeners configured on your instance.
  2. Check for feature parity in Cloud and analyse the API if you are migrating manually. 
    Each script you want to migrate should be analyzed to determine if the functionality is desired and possible within the Cloud feature set.

  3. If there is no feature parity, we suggest you analyse the value parity:
    • What is the script doing?
    • Is it required in Cloud?
    • Is there a similar Cloud feature that could cover the requirement (see the feature parity table for possible workarounds)? 

    Need help with this step? Speak to our team of consultants. Or if you want to suggest a feature for ScriptRunner for Jira Cloud, please send an enhancement request

  4. Once you have identified the ScriptRunner configs you want to migrate, write out the script in pseudo-code, making the intention clear.
    As you are not using the Cloud Migration Assistant, you'll need to recreate all your script configurations manually. See rewriting scripts for further help.

  5. Rewrite the new relevant script configurations using ScriptRunner for Jira Cloud.
    Interactions with the API need to be replaced with calls to the appropriate REST APIs and it is possible that alternatives may need to be found for dependencies that are not available for ScriptRunner Cloud. Check the Platform Differences documentation for more information. 

    Need help with this step? Speak to our team of consultants. Or if you want to suggest a feature for ScriptRunner for Jira Cloud, please send an enhancement request

    (lightbulb)If you are using ScriptRunner's Enhanced Search JQL functions and Keywords, you must complete an initial synchronisation after migrating so that all functions and keywords work.

Migrate with the Cloud Migration Assistant

  1. Analyse the purpose/functionality of your existing scripts.
    We suggest you clean up your instance as much as possible before migrating. Navigate through each ScriptRunner feature tab, for example listeners, to see a list of all listeners configured on your instance.
  2. Check for feature parity in Cloud and analyse the API if you are migrating manually. 
    Each script you want to migrate should be analyzed to determine if the functionality is desired and possible within the Cloud feature set.

  3. If there is no feature parity, we suggest you analyse the value parity:
    • What is the script doing?
    • Is it required in Cloud?
    • Is there a similar Cloud feature that could cover the requirement (see the feature parity table for possible workarounds)? 

    Need help with this step? Speak to our team of consultants. Or if you want to suggest a feature for ScriptRunner for Jira Cloud, please send an enhancement request

  4. Once you have identified the ScriptRunner configs you want to migrate, write out the script in pseudo-code, making the intention clear.
    As you are using the Cloud Migration Assistant, the configurations for the following features are recreated on Cloud (for a full list, see Features Supported by Jira Cloud Migration Assistant below):

    • Custom Script Field
    • Custom Script Listener
    • Custom Jobs
    • JQL Functions
    • Custom Workflow Functions (and specific Post Functions see below)

    The code will be "migrated" but commented out, and features will be deactivated. Compatible filters containing JQL functions will be automatically re-created in Enhanced Search. Incompatible filters will not be converted. You can check the migration report in ScriptRunner for Jira Cloud to find the details of any problems during filter migration. All script configurations for other ScriptRunner features will need to be recreated manually. 

    Once any of the following items are migrated, subsequent migrations will not overwrite that migration.

    • Custom Script Field
    • Custom Script Listener
    • Custom Jobs

    This means that if you want to re-migrate these from Server again, you will need to delete them from the Cloud instance beforehand.

    The Enhanced Search version of dateCompare function requires a valid JQL query in the first parameter. dateCompare will be automatically migrated into an ES filter when all parameters are provided. If there is a mismatch between the names in the Cloud/Server issue fields referenced in any parameter of the function, i.e. in the case of custom fields, then the migration will not automatically create an ES filter, and it will need to be created manually in ES.
  5. Rewrite the new relevant script configurations using ScriptRunner for Jira Cloud.
    Interactions with the API need to be replaced with calls to the appropriate REST APIs and it is possible that alternatives may need to be found for dependencies that are not available for ScriptRunner Cloud. Check the Platform Differences documentation for more information. 

    Need help with this step? Speak to our team of consultants. Or if you want to suggest a feature for ScriptRunner for Jira Cloud, please send an enhancement request

    (lightbulb)If you are using ScriptRunner's Enhanced Search JQL functions and Keywords, you must complete an initial synchronisation after migrating so that all functions and keywords work.

Features Supported by Jira Cloud Migration Assistant

The following features are migrated from Jira Server to Jira Cloud when using the Atlassian Cloud Migration Assistant:

Supported Feature

Custom Script Field


Custom Script Listener


Custom Jobs

Escalation Services

JQL Functions
  • epicsOf
  • nextSprint
  • linkedIssuesOfRecursive
  • subtasksOf
  • projectMatch
  • previousSprint
  • parentsOf
  • dateCompare
  • componentMatch
  • linkedIssuesOf
  • issueFieldMatch
  • issuesInEpics
  • linkedIssuesOfRecursiveLimited
  • issueFieldExactMatch
  • versionMatch

Workflow Functions


hasLinks function

Server filters that use the hasLinks function will not work in Cloud; they will need to be manually updated to use the native JQL keyword issueLinkType instead.

JCMA Notes

You should note the following points when using the Atlassian Cloud Migration Assistant:

  • If you have already migrated a project with the assistant and want to re-migrate it again, then you must delete the project and associated workflows/workflow scheme in order for the workflow rules to be migrated. Jira does not delete these when a project is deleted.
  • Any scripts commented out, due to the fact that the APIs are different between Server and Cloud, will need to be rewritten.

  • Conditions and Validators use the Jira Expression language.
  • Built-in script conditions or validators migrated from Jira Server/Data Centre are not supported and will display in ScriptRunner for Jira Cloud as blank validators or conditions. Therefore, once the migration is performed, these will need to be deleted.



On this page