Configure and create multilingual copilots

Multilingual copilots are copilots that can communicate with customers in different languages while keeping all the content in a single copilot. In many cases, they can automatically detect the desired language based on the copilot user's web browser setting and respond in the same language, providing a more personalized and engaging experience for customers.

For the list of supported languages, see Language support.

Note

  • Copilot Studio classic chatbots don't support multilingual copilots. For more information about converting a classic chatbot to a copilot, see Upgrade to Copilot Studio unified authoring.

  • Multilingual copilots can only be published to Websites and Dynamics 365 for Customer Service channels.

  • When publishing multilingual copilots to Dynamics 365 for Customer Service, you must incorporate the <lang xml:lang> SSML tag. For more information, see Format speech synthesis with SSML.

Configuring a multilingual copilot

When a copilot is initially created, a primary language is defined. For more information on how to select the copilot's primary language, see Language support.

To enable a multilingual copilot:

  1. With a copilot open, select Settings at the top of the page, and then select Languages.

  2. Select Add Languages on the Settings page.

    Setting up a multilingual copilot.

  3. Choose the languages you want to add to the copilot in the Add Languages pane and select Add Languages at the bottom.

  4. Confirm the list of languages is correct on the Languages page.

    Screen showing all languages added to the copilot.

Note

You can add as many secondary languages as desired to the copilot, as long as they're in the list of supported languages.

Managing localization in a multilingual copilot

Note

All copilot topic and content editing must be done in the copilot's primary language. To edit the copilot's secondary language to localize the strings, you must use the steps in this section.

Once the copilot strings are localized and uploaded to the copilot as described here, you can see the localized content in the authoring canvas by switching the language in the test copilot.

To add the localization strings to your multilingual copilot:

  1. With a copilot open, select Settings at the top of the page, and then select Languages.

  2. On the Languages page, in the table of added secondary languages, select Upload in the Localization column for the language you want to update.

  3. On the Update localizations page for the selected secondary language, select either the JSON or ResX format to download the current localization file for that language.

    Screen showing pane to download and upload localization files.

    Note

    The downloaded file contains the latest localization content for the copilot. If you need to download previous versions of the localization file, open the copilot's solution in Power Apps to download previous versions.

  4. Open the downloaded file and replace the primary language strings with the appropriate translated text.

  5. Return to the Update localizations page, select Browse, and upload the translated file.

  6. Close the Update localizations page.

Authoring considerations for multilingual copilots

When authoring, you can configure the copilot to change the current spoken language in the middle of a conversation. That logic can reside in any topic in the copilot. However, the best practice is to switch the language right after a Question node, which ensures that all the following messages until the next Question node are in the same language.

To change the copilot's current language, you can set the User.Language variable value to one of your copilot's secondary languages. This selection changes the language spoken by your copilot immediately.

Screen showing a Set variable node defining the value of the User.Language variable.

Testing a multilingual copilot

To test a multilingual copilot:

  1. Open the Test your copilot pane.

  2. Open the menu at the top of the test copilot, and select one of the secondary languages.

    Screen showing the secondary language selection on test copilot.

  3. The test copilot reloads itself, this time using the selected secondary language. The authoring canvas shows the secondary language.

  4. To test the copilot, enter a message in the secondary language.

You can also set your browser language to the secondary language supported by your copilot, and open the Demo copilot website. The demo website opens in the secondary language, and the copilot chats using the secondary language strings.

Multilingual copilot behavior for languages that are not configured

If a copilot user has their browser configured for a language the copilot wasn't configured for, the copilot always falls back to its primary language.

Important

The copilot's primary language can't be changed after copilot creation.

Multilingual copilot behavior for missing translations

If the copilot author makes a change to the copilot in the primary language and doesn't upload the translations, the copilot shows the untranslated changes in the copilot's primary language. This configuration leads to a confusing dual-language experience. Always make sure the translations are up-to-date after making changes to the copilot in the primary language.