Servicenow nlu movement to other environment
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-17-2023 03:54 AM
Hello All,
I have my intent and entity defined in servicenow dev environment. Now i want to move entire nlu model to uat, but when it tried exporting to csv from dev and importing that in uat, i got only intents and did not get associated entities to uat. Can someone let me know how can i do that.
I have update sets created, but it has lot of entries, which includes testing of virtual agent chats as well. It is leading to confusion and hence i tried using exporting and importing. Please advise.
Thanks,
Satish
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-18-2023 09:07 AM
Good day!
Exporting and importing NLU components can be very challenging. Generally, Leading Practice is to have your Virtual Agent configuration in one scoped application, and your NLU in another scoped application. This ensures that you are able to cleanly migrate both, as well as any updates that you may want to do.
These can also be tracked within Update Sets, but as you have discovered they have a bit more overhead.
If I were you, I would build a Scoped Application for your NLU model, clone your current NLU Model into that scoped application, and complete necessary config within your Topics as well. This will set you up for success in the future!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-18-2023 11:06 AM
While I have found it quite annoying to have our NLU model in a separate scope as VA topics, that is what we do because it is indeed ServiceNow's best practice.
That said, as long as you don't accidentally capture utterances in the wrong app scope, we don't have any issues capturing our VA and NLU in update sets and moving them between environments. The only extra step required is that we need to train and publish the NLU model in each environment after the update sets are moved. Definitely no need to be manually exporting and importing VA/NLU records between environments.
When you say "it has lot of entries, which includes testing of virtual agent chats as well", I presume you mean the PRVW updates that it captures every time you hit the Test button in VA Designer... I agree they're annoying and clutter update sets - I used to manually remove em myself but there's no need for that - just ignore them and the system automatically deletes the records. There's no harm to capturing them in your update set and moving them to other environments.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-22-2023 01:41 AM
Hello Will/Chris,
I have duplicated the model and moved to other environment via update set(In Global Application Scope and not other scope). However when I am trying to train the model, it is throwing Error Message - The system encountered an unexpected error and couldn't complete your request. Please contact your system administrator for help or try again.
Could you please help on this if there is any setting that needs to be enabled? I did spoke to our internal ITSM team, but no luck.
Thanks,
Satish

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-26-2023 10:19 AM
Have you trained the NLU model in your other environment before? There is a not abnormal issue which we've run into with the current model version being higher than the (attempted) newly trained model. As a best practice, you can train your NLU model all you want in your lowest environment, but avoid overtraining it in all other environments; train it (and publish it) just once after you move the latest updates, no more.
Here's the details on the issue: NLU Model training creates a new record in table [ml_solution] for the trained NLU Model solution th...
tl;dr solution: go to the ml_solution table, look for your NLU Model (wildcard search the Solution Name field - there may be many records), sort by Created descending, find the newest record, note the version number (it may be equal to or lower than* the previous one), and delete that newest record (which likely shows to be inactive and not 100% progress). Then retrain again.
*if lower, you may need to repeat this as many times as it takes to "catch up" to the latest version