---
sourceDocument: Xanadu ServiceNow AI Platform Administration
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/platform-administration

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu ServiceNow AI Platform Administration

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# Integrate with a translation service provider

# Integrate with a translation service provider {#ariaid-title1}

* Release version: Xanadu
* 
* Updated May 6, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read

Integrate with a third-party translation provider of your choice for machine translation of user-generated text.

## Before you begin

Create an account with your third-party translation service provider, and obtain the connection and credentials needed for integration.

Role required: admin

## Procedure

1. Navigate to AllProcess AutomationWorkflow Studio, then select New to create subflows to detect the language of the input text and translate the input text, as well as actions, using the following guidance.  
   For information, see [Workflow Studio](https://www.servicenow.com/docs/access?context=workflow-studio&version=xanadu&pubname=xanadu-build-workflows&ft:locale=en-US).
   1. Map error codes from your machine translation provider to the error codes and standardized error messages supported by ServiceNow.  
      {#integrate-translation-service-provider__table_h11_vkk_33b__entry__2}

      | Error code | Error message |
      |-|-|
      | 40050 | Error code to populate error messages from the machine translation provider instead of standardized error messages. |
      | 40051 | Unknown error occurred. |
      | 40052 | Text ('text' field) has exceeded its maximum length. |
      | 40053 | Source language is invalid. |
      | 40054 | Target language is invalid. |
      | 40055 | Request is not authorized because credentials are missing or invalid. |
      | 40056 | Text cannot be translated to target languages. |
      [Table 1. Standard error codes and message]

      {#integrate-translation-service-provider__table_h11_vkk_33b}
   2. Ensure that the inputs and output fields are in the following format for subflows.  
      Note:  
      When creating subflows, you can refer to the subflows that are available by default if required. For example: Detect Language \[detect_language_v4\] and Translate Text \[translate_text_v3\]. For more information, see [Migrate customized Translator Configurations to v4 flows](https://servicenow-prod.fluidtopics.net/BJhi1P24zI7qdlGIhzoGAw "Migrate your customized translator configurations to v4 flows. Version 4 flows for Dynamic Translation are available from the Xanadu Patch 3 release.").
      {#integrate-translation-service-provider__table_z5q_q5t_23b__entry__3}

      | Field name | Description | Type |
      |-|-|-|
      | Inputs |||
      | texts | Input texts whose language should be detected. Version v3 supports bulk detection (detection of multiple texts input in a single string). With the Xanadu Patch 3 release, version v4 supports [Exclusion Framework](https://servicenow-prod.fluidtopics.net/CY1zM5SDFxlWbqfMNMRPNw "Preserve text such as product names or technical terms during machine translation. With Exclusion Framework in Dynamic Translation, you can specify words and patterns that should not be translated.") as well as bulk detection. | Array.String |
      | Outputs |||
      | detections | Information about the code and confidence of the languages detected by the translator and their respective alternatives, error codes, and error messages. * Code: Language code of the detected language as specified by the translation service provider. * Confidence: Value that indicates the confidence in the result. The value is between zero and one. A low value indicates a low confidence. {#integrate-translation-service-provider__ul_glg_kh3_h3b} For example, French text with confidence of 0.93 { 'code' : 'fr',  'confidence' : '0.93'  } For more information refer to the getDetectedLanguages section of [DynamicTranslation - Scoped](https://www.servicenow.com/docs/access?context=DynamicTranslation&version=xanadu&pubname=xanadu-api-reference&ft:locale=en-US). | Array.Object. Each element of the Object is a String value. |
      | status | Status of the request. | Choice |
      [Table 2. Detect subflow]

      {#integrate-translation-service-provider__table_z5q_q5t_23b}  
      {#integrate-translation-service-provider__table_cgx_ntt_23b__entry__3}

      | Field name | Description | Type |
      |-|-|-|
      | Inputs |||
      | texts | Texts to be translated. Version v3 and above support bulk translation (translation of multiple texts input in a single string). | Array.String |
      | target_languages | Array of language codes to which the text needs to be translated. For example, ['fr','it'] | Array String. Each element of the array is a String value. |
      | source_language | Language code of the source text. For example, en | String |
      | additional_parameters | Array of additional parameters. For example, [{'parameter_name': 'textType', 'parameter_value': 'html'}] | Array.Object. Each element of the array is an Object with String values. |
      | Outputs |||
      | translations | Translated texts in the specified target languages. Each element of the array is an Object containing target language and the translated text. For example, [ {'target_language':'fr', 'translated_text':'Bonjour'}, {'target_language':'it', 'translated_text':'ciao'} ] For more information refer to the getTranslations section of [DynamicTranslation - Scoped](https://www.servicenow.com/docs/access?context=DynamicTranslation&version=xanadu&pubname=xanadu-api-reference&ft:locale=en-US). | Array.Object. Each element of the array is an Object with String values. |
      | status | Status of the request. | Choice |
      [Table 3. Translate subflow]

      {#integrate-translation-service-provider__table_cgx_ntt_23b}  
      Note:  
      Ensure that the Run As field is set to User who initiates session in the flow properties.
   {#integrate-translation-service-provider__substeps_fpk_1lk_33b}
2. [Create a custom translator configuration](https://servicenow-prod.fluidtopics.net/17raQaayY4eSiXV4NCr0Ag "Configure Dynamic Translation for a third-party machine translation provider of your choice.") for your service provider in the Translator Configurations table, and set the record to active.  
   When you create the record in the Translator Configurations table, search for the subflows you created in the previous step..
3. **Optional:** If your instance is on Xanadu Patch 3 or higher, and you intend to use Exclusion Framework, enter your translation provider's exclusion tags in the Exclusion Provider Pattern table.  
   Refer to your provider's documentation to obtain these tags. For more information about entering the tags, see [Add an Exclusion Provider Pattern](https://servicenow-prod.fluidtopics.net/0ak26OnVXOmVM0j2bV0cig "As part of the configuration of Exclusion Framework in Dynamic Translation, enter the tags used by your translation provider to mark text that should not be machine translated.").
4. **Optional:** Create a language code mapping to associate your provider's language codes to ServiceNow language codes.  
   For more information, see [Create a language code mapping](https://servicenow-prod.fluidtopics.net/OPV0pLGgmCjGib3rTE3weg "Create a language code mapping to map the ServiceNow language codes with the language codes of the translation service providers.").

## What to do next

For information about APIs, see [DynamicTranslation API](https://servicenow-prod.fluidtopics.net/q~7lXc5lQnTIR5FCvpI9fg "You can use the DynamicTranslation API to translate text in real time into multiple languages using translation service providers.").
* **[Create a custom translator configuration](https://servicenow-prod.fluidtopics.net/17raQaayY4eSiXV4NCr0Ag)**   
  Configure Dynamic Translation for a third-party machine translation provider of your choice.

*[\>]: and then


