How to manage plugin/application updates

Kevin Rol1
Tera Contributor

Dear Community

We are struggling to find a proper way to manage plugin/applications updates. As you are aware plugin/applications are receiving outside upgrades and patches new versions that you can install. Frist of all when you look for updates for the plugins we see a difference in the new application manager:

 

Screenshot 2025-02-24 at 15.05.55.png

 

And the old application manager:

Screenshot 2025-02-24 at 15.05.03.png

 

Not sure why that is but therefore we stick to the old application manager. We really struggle how to manage this because of the following:

- We are not sure which of these plugins will be updated during a upgrade, during our last upgrade to Xanadu we could see 138 plugins where updated in the logs but it unclear in this overview which ones.

- It is nearly impossible to combine this with an upgrade, we received that request because during an upgrade all processes are being tested so it would be ideal to include these plugin upgrades there. Downside of this is that your upgrade time will be huge because you would need to manually upgrade all these plugins first so that why we don't really want to combine that with an upgrade.

- We have not found a way to easily export this overview so that you see the plugin name and the release notes, we now perform this as a manual action. We need this overview with the release notes to inform product owners about this so that they can use this information after installation to test it.

- We performed an update of all plugins a couple of months before an upgrade but after the upgrade we already have a new list of more than 100 plugins so it feels impossible to keep track of this.

 

So this a bit of braindump on this topic, I would really love to hear feedback from the community how you are managing this process.

 

UPDATE:

Best Approach: CI/CD Batch Install API via Background Script

This is the community-accepted solution and avoids manual clicking entirely. Here's how it works:

Step 1 — Run this background script in your instance after the family release upgrade. It queries the sys_store_apptable for all installed apps/plugins where the installed version differs from the latest version, builds a JSON payload, and hands you a URL + body to trigger a batch install:

 

var loadDemoData = false;
var prevName;
var appsArray = [];
var grSSA = new GlideRecord('sys_store_app');
grSSA.addEncodedQuery('install_dateISNOTEMPTY^hide_on_ui=false');
grSSA.orderBy('name');
grSSA.orderBy('version');
grSSA.query();
while (grSSA.next()) {
    var curName = grSSA.getValue('name');
    if (curName == prevName) { continue; }
    var installedVersion = grSSA.getValue('version');
    var latestVersion = grSSA.getValue('latest_version');
    if (latestVersion != installedVersion) {
        prevName = curName;
        appsArray.push({
            displayName: curName,
            id: grSSA.getUniqueValue(),
            load_demo_data: loadDemoData,
            type: "application",
            requested_version: latestVersion
        });
    }
}
var appsPackages = { packages: appsArray, name: 'Update Apps' };
var data = new global.JSON().encode(appsPackages);
var url = 'https://' + gs.getProperty('instance_name') + '.service-now.com/$restapi.do?ns=sn_cicd&service=CICD%20Batch%20Install%20API&version=latest';
gs.info('Open the following URL:\n\n' + url + '\n\nPaste this JSON as the Raw Request body:\n\n' + data);

 

Step 2 — The script outputs a URL and JSON payload. Open the URL in a browser tab and paste the payload into the raw request body to trigger the batch install.

Step 3 — Let it run overnight. It queues all updates and processes them sequentially without any further manual interaction.

Step 3 — To monitor it you can check sys_progress_worker.list and filter on name “CICDBatchInstallService$CICDBatchInstallWorker”


Important things to know

About the family upgrade itself: When you do a family upgrade (e.g. moving from Xanadu to Yokohama), apps and plugins will "true-up" to a compatible version but this doesn't mean the latest version. Individual product teams determine which version is aligned to a given family release. So you'll likely still have a batch of updates to run afterward, which is exactly what the script above handles. ServiceNow Community

Parent/child plugins: If you update a parent plugin, child plugins get updated automatically. So your amount of plugins may actually be fewer independent operations than you think prioritize parent plugins first and watch the count drop. ServiceNow Community

Timing matters: Plan the batch update to run overnight or over a weekend. It works, but it's not fast the system queues jobs one by one.

13 REPLIES 13

Be aware that with a recent update to Store, ServiceNow's Application Manager in the instance started showing updates for apps where the version is NOT compatible with your current version (example, you are on Yokohama and still App Manager shows update which is compatible with Zurich). This creates a mess in the Application Manager "Updates" section.

 

What I have noticed just today is that it changed again and it might be fixed, as today I stopped seeing there the "Zurich" only versions. SN Support told me that this is fixed in Zurich release already, but it might rather be that the fix comes also from the Store itself.

Ann43
Tera Contributor

Yes, same here.  Following the conversation to see what options are available because I was asked to start tracking SPM plug-ins every quarter.

RodHill11
Tera Contributor

@Kevin Rol1 Hi Kevin.  I came across your post.  I too, am having a difficult time managing plugin updates and have some of the same concerns as you initially stated.  I'm curious to know if found a solution?

mhutton
Tera Expert

 I am also facing the same headache with the plugins and trying to work out the best way forward to manage these in and outside a family upgrade. Following this post in the hope that someone may have a great idea or a future update on this. Really feels like ServiceNow hasn't thought about the poor individuals managing the platforms.