Now assist VA translations
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi All,
I have a requirement on the Virtual agent to have the now assist greetings message in multiple languages. In the requirement they do not want to use the automatic translation for greetings. So need to have each language to have it's own greetings message. How do I do this?
Thanks,
Luke
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
Hi Luke,
If the requirement is to have a different predefined greeting for each language, you can handle this through the greeting/message configuration rather than relying on automatic translation.
First, check the Now Assist – Greeting setup topic under the Chat Experience used by Now Assist in Virtual Agent. You can create a custom greeting topic and use localized messages for the required languages.
For the message itself, use the platform's translated message/localization mechanism so the same message key has a separate translation for each language. Virtual Agent supports localized messages through the Messages (sys_ui_message) table.
FYR: https://www.servicenow.com/community/virtual-agent-nlu-articles/virtual-agent-faqs/ta-p/2349558
This gives you:
User language >> Greeting topic >> Localized message >> Greeting displayed in that language
This is preferable when the business wants controlled, human-written greetings for each language instead of an automatically translated greeting.
Also check the Now Assist – Greeting setup topic associated with the active Chat Experience, as this determines which greeting configuration is being used.
If Dynamic Translation is already enabled, keep in mind that it is a different approach: it dynamically translates content, whereas the above approach lets you control the exact wording for each supported language. ServiceNow also supports multilingual capabilities for Now Assist through Native/Dynamic Translation depending on the release and configuration.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Use one custom greeting topic + sys_ui_message translations. Do not create a separate greeting topic for every language. ServiceNow’s localization framework is designed to resolve the correct message from sys_ui_message based on the requester’s language.
Recommended implementation
Duplicate the OOB Now Assist - Greeting topic rather than modifying it directly. ServiceNow explicitly recommends duplicating the default greeting topic when customization is required.
Go to Conversational Interfaces → Assistant Designer → Asset Library, find Now Assist - Greeting, duplicate it, e.g. Company - Now Assist Greeting.
In the custom greeting topic, replace the hard-coded greeting with a scripted/localized response:
(function execute() {
return gs.getMessageLang(
'company.va.greeting',
vaContext.getRequesterLang()
);
})();vaContext.getRequesterLang() gives you the conversation/requester language, while gs.getMessageLang() resolves the corresponding record from sys_ui_message. This is the ServiceNow-documented localization pattern for Virtual Agent.
- Create one sys_ui_message record per language with the same Key:
| company.va.greeting | en | Hello, how can I help you today? |
| company.va.greeting | fr | Bonjour, comment puis-je vous aider aujourd’hui ? |
| company.va.greeting | de | Hallo, wie kann ich Ihnen heute helfen? |
| company.va.greeting | es | Hola, ¿cómo puedo ayudarte hoy? |
Navigate directly to:
sys_ui_message.list
These are expert/manual translations, not machine-generated translations. ServiceNow specifically uses sys_ui_message for Virtual Agent topic messages.
- If you need personalization, use message parameters rather than concatenating translated strings:
(function execute() {
return gs.getMessageLang(
'company.va.greeting',
vaContext.getRequesterLang(),
[vaInputs.first_name]
);
})();Then define:
Key: company.va.greeting
English:
Hello {0}, how can I help you today?
French:
Bonjour {0}, comment puis-je vous aider aujourd’hui ?
German:
Hallo {0}, wie kann ich Ihnen heute helfen?getMessageLang(message, language, args) supports these {0}, {1} placeholders natively.
Publish the custom greeting topic. Translation/localization is expected on published Virtual Agent topics; ServiceNow notes that localization may not appear correctly when previewing an unpublished topic.
Assign it to the assistant under Assistant Designer → your Now Assist assistant → Chat experience → Greeting topic, replacing Now Assist - Greeting with your custom greeting. ServiceNow supports selecting a custom greeting topic here.
Test using users/session languages such as English, French and German. Virtual Agent uses the user's preferred/conversational language to determine which localized content to show.
Important
You do not need Dynamic Translation for the greeting. Because you are explicitly supplying each translation in sys_ui_message, the greeting is deterministic and maintained by you. sys_ui_message is the correct table for professionally/manual localized Virtual Agent messages; Dynamic Translation is intended as the machine-translation mechanism when required.
So the architecture should be:
Now Assist Assistant
↓
Custom Greeting Topic
↓
gs.getMessageLang()
↓
vaContext.getRequesterLang()
↓
sys_ui_message
├── en → English greeting
├── fr → French greeting
├── de → German greeting
└── es → Spanish greetingThis is cleaner and upgrade-safe compared with cloning a separate VA greeting topic for every language.
