- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-14-2022 05:28 AM
Hello all,
We're still getting ready for our production release of Virtual Agent.
As I'm learning and developing topics, I've come across a scenario where a duplicated OOB topic (Troubleshoot Slow Computer) doesn't work because the scope of the original topic is "ITSM Virtual Agent Conversations" and the duplicated topic is global. When I change the scope of the topic from global to ITSM Virtual Agent Conversations, it works, but doesn't find its NLU (because the NLU scope is also global).
This brings me to several questions (best practices for topic scope):
- Should I create all my topics and NLU models in the ITSM Virtual Agent Conversations scope?
- Should I only create topics that require ITSM Virtual Agent Conversations scope within that scope and the rest global? This would require me to split my NLU models and possibly duplicating intents into two models, one for each scope.
- Would update sets capture the scope of the topic? Or is there another way of deploying the topics if I choose option #1 above?
Thanks.
Solved! Go to Solution.
- 3,417 Views

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-18-2022 09:26 AM
As with everything, it depends.
Admittedly not the best practice, I'll tell you what we do - not for advice, but for awareness - is create every topic in Global and every NLU update in one custom NLU Model scope. The former is largely carryover from older development practices and done out of convenience while the latter is based on ServiceNow's best practice when we implemented NLU (which you can still see in Aman's KB link). For context, we only have a few folks that manage VA and it's used exclusively for IT.
Context is important, so to answer your questions:
- Who does VA development and what is it for? If just one team (i.e. your ServiceNow team) for one area (i.e. IT), it's a safe bet to do all your VA development in one scope - and yes, the ITSM Virtual Agent Conversations scope is a great one.
- If there's multiple teams doing VA development, segregate them by scope so they only have access to create/modify topics in their own scope.
- If there's only one team but multiple areas (i.e. IT and HR), it's probably still a good idea to have different scopes as a good practice - this will allow you to easily transition to delegated development in the future if needed (see point above). ServiceNow does this ootb in fact I believe.
- Better modern development practice is to avoid Global scope altogether. See point above. If you want, you can do everything in one scope, that's fine, but ideally, not Global. For NLU, see Aman's linked article for official ServiceNow guidance.
- tl;dr Guidance is basically the same as I explained in #1's subbullets.
- There should be no need to duplicate intents.
- Yes, update sets capture the scope and are a good way to deploy all VA and NLU updates across instances. You need a separate update set for each scope you're modifying.
- For the simplest example - one VA scope and one NLU scope and you need to create a topic - here's a rough outline of the process:
- Create update set in NLU scope and set it
- Create your intent
- (Optionally, at this point) Create your utterances
- Create update set in VA scope and set it
- Create your topic
- Link topic to scope and create topic flow
- (As needed) Modify topic flow and/or intent in the appropriate scope
- Close update sets and move them to your next environment
- For the simplest example - one VA scope and one NLU scope and you need to create a topic - here's a rough outline of the process:

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-14-2022 05:55 AM
Hey,
You can refer to below SN support article for more details:
Feel free to mark correct, If I answered your query.
Will be helpful for future visitors looking for similar questions 🙂
Aman Kumar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-14-2022 06:01 AM
Thanks, but that article doesn't really answer my questions. It speaks mainly to the limits of models and doesn't recommend when to use non-global scopes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-18-2022 09:07 AM
We have all our Topics in Global Scope and NLU model in the ITSM NLU Model for Virtual Agent Conversations scope.
When making modifications, we ensure the update set was created on the correct Scope.
When I need to make changes to the NLU, I ensure the Update Set was created on the ITSM NLU Model for Virtual Agent Conversations Scope. When working on Topics, I make sure the update set was created on the Global scope.
Basically need two update sets when creating a new Topic, One for the new Intent and one for the Topic due to the two different scopes.
You want to pick a scope for each and ensure to always use that Scope.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-18-2022 09:26 AM
As with everything, it depends.
Admittedly not the best practice, I'll tell you what we do - not for advice, but for awareness - is create every topic in Global and every NLU update in one custom NLU Model scope. The former is largely carryover from older development practices and done out of convenience while the latter is based on ServiceNow's best practice when we implemented NLU (which you can still see in Aman's KB link). For context, we only have a few folks that manage VA and it's used exclusively for IT.
Context is important, so to answer your questions:
- Who does VA development and what is it for? If just one team (i.e. your ServiceNow team) for one area (i.e. IT), it's a safe bet to do all your VA development in one scope - and yes, the ITSM Virtual Agent Conversations scope is a great one.
- If there's multiple teams doing VA development, segregate them by scope so they only have access to create/modify topics in their own scope.
- If there's only one team but multiple areas (i.e. IT and HR), it's probably still a good idea to have different scopes as a good practice - this will allow you to easily transition to delegated development in the future if needed (see point above). ServiceNow does this ootb in fact I believe.
- Better modern development practice is to avoid Global scope altogether. See point above. If you want, you can do everything in one scope, that's fine, but ideally, not Global. For NLU, see Aman's linked article for official ServiceNow guidance.
- tl;dr Guidance is basically the same as I explained in #1's subbullets.
- There should be no need to duplicate intents.
- Yes, update sets capture the scope and are a good way to deploy all VA and NLU updates across instances. You need a separate update set for each scope you're modifying.
- For the simplest example - one VA scope and one NLU scope and you need to create a topic - here's a rough outline of the process:
- Create update set in NLU scope and set it
- Create your intent
- (Optionally, at this point) Create your utterances
- Create update set in VA scope and set it
- Create your topic
- Link topic to scope and create topic flow
- (As needed) Modify topic flow and/or intent in the appropriate scope
- Close update sets and move them to your next environment
- For the simplest example - one VA scope and one NLU scope and you need to create a topic - here's a rough outline of the process: