--- title: Configure ServiceNow Live Agent Message Brokering excerpt: '' deprecated: false hidden: false metadata: title: '' description: '' robots: index next: description: '' --- # Pre-Requisites * Ensure the required ServiceNow Connector has been created with the necessary permissions. Please refer to the [ServiceNow Access Requirements Doc](/docs/servicenow-access-requirements) for details. * Ensure access to your tenant's _MyMoveworks_ portal and the _Agent Studio_ module * Verify that the [ServiceNow Virtual Agent APIs](https://www.servicenow.com/docs/bundle/vancouver-servicenow-platform/page/administer/virtual-agent/task/install-virtual-agent-api.html) are available in the ServiceNow instance * **Note**: If you do not have the Virtual Agent APIs, this integration will not work, and you will need to [follow the steps here](/docs/servicenow-awa) to leverage a Deep Link based approach. ![](https://files.readme.io/77f14fdd47e1b051172c53e95756cc06a77a6834220bb148222329acc53e6456-image_14.png) * Verify that the _Agent Chat plugin_ is installed ![](https://files.readme.io/e920a4f18a9fcca7ed7ae59bd8e7ee703905986923639bef40c5321bbfc819d6-CleanShot_2025-04-06_at_12.44.16.png) * For testing, ensure access to the **Service Operations Workspace** module within ServiceNow or ensure that there are agents available within the queue that is being tested # Configuration Steps Navigate to the **HTTP Connectors** App within your MyMoveworks portal. 1. Click on **Credentials** and click **Create** 2. Enter a **Credential Name** 3. Choose **API Key** ![](https://files.readme.io/a29cd5bfaabea3d78bbbd5e43bfdfae17b438ee00b6a8f458cfd53f12ae6c761-CleanShot_2025-10-16_at_11.24.07.png)
> ❗️ **WARNING**: When you click _Publish_, please save the API Key in a safe location as this key will not appear again 4. Click **Publish** and save the API Key
Through the Virtual Agent API plugin, the service account will need Virtual Agent permission and **permission to view awa_agent_presence_capacity table.** The service account will need to have read access to the following tables to be able to view **awa_agent_presence_capacity**: * awa_agent_presence * awa_agent_capacity The service account needs to have the `virtual_agent_admin` role. Navigate to **Outbound REST APIs** → **VA Bot to Bot** ![](https://files.readme.io/b7c78bdd33004d89eeed687ee1d896961cdd0baae5029768a0cc715a6c7ce9e1-Untitled_3.png) 1. Set the **VA Bot to Bot record’s REST endpoint** to the correct Rest endpoint based on the Moveworks datacenter being used: | Data Center | Rest endpoint | | :----------------------- | :----------------------------------------- | | United States (default) | `https://api.moveworks.ai` | | Canada | `https://api.am-ca-central.moveworks.ai` | | EU | `https://api.am-eu-central.moveworks.ai` | | Australia / Asia Pacific | `https://api.am-ap-southeast.moveworks.ai` | | Government Secure Cloud | `https://api.moveworksgov.ai` |
![](https://files.readme.io/a64ad8e1d58282f2f650621508a3aa634e02445cb34ce2c9dcb22600642d4772-Untitled_4.png) 2. As part of **VA Bot to Bot record you will see a POST record. Edit the associated POST record**, and set the endpoint based on the Moveworks datacenter being used:
| Data Center | Rest endpoint | | :----------------------- | :------------------------------------------------------------------------------------- | | United States (default) | `https://api.moveworks.ai/rest/LiveAgentService/SnowSendMessageToUser` | | Canada | `https://api.am-ca-central.moveworks.ai/rest/LiveAgentService/SnowSendMessageToUser` | | EU | `https://api.am-eu-central.moveworks.ai/rest/LiveAgentService/SnowSendMessageToUser` | | Australia / Asia Pacific | `https://api.am-ap-southeast.moveworks.ai/rest/LiveAgentService/SnowSendMessageToUser` | | Government Secure Cloud | `https://api.moveworksgov.ai/rest/LiveAgentService/SnowSendMessageToUser` | ![](https://files.readme.io/b359e11da680042c79cda62af087cbaad56e45574345697b39db020bf5acebeb-Untitled_5.png) 3. In the **POST Record** you will also need to set the **auth profile to a newly created auth profile for Moveworks** — we will need to create a new auth profile by following the steps below: 1. Set Authentication type to **Basic** 2. Set the `username` to `moveworks` — this can be customized to anything else if required, but you will need this for the Moveworks configuration. 3. Set password to the value of the **API key generated in Agent Studio from Step 1**. ![](https://files.readme.io/cbb60640936a00c669aca58d8719bb6c92822409101d5a7c1ae00305a012bacc-Untitled_6.png)
Next, verify the token. 1. Navigate to `{snow_url}/token_verification_list.do` and create a new record by clicking new on the top right. ![](https://files.readme.io/2ae395ecf4c76e6a4be44d9814291961638f26a8efff4867c027a891666d5b96-Screenshot_2023-04-05_at_7.00.00_PM.png) > ❗️ In the next step, save the generated token in a safe location as it will be needed later in the guide 2. Create a password here and store it safely. This will be needed later in the guide. You can give any name you’d like to the token. We recommend `Moveworks Live Agent Message Brokering - {DOMAIN}` e.g: **Moveworks Live Agent Message Brokering - IT , Moveworks Live Agent Message Brokering - HR**, etc. Next, configure the message auth 3. Navigate to `{snow_url}/message_auth_list.do` and create a new record. ![](https://files.readme.io/00bdc0724d85d138d89e294de8f7ef49edfac17e373c897bb7cda69154391df7-Screenshot_2023-04-05_at_7.04.22_PM.png) 4. Add the token verification you created in the previous step under **Inbound message verification**. 5. Although **Outbound message creation** is not yet supported by VA API, it is recommended that you add the same token verification here as it is required field. 6. **Name** and **Provider** can be named as desired. Finally, add the above message auth to **VA Bot to Bot Provider Application** 7. Navigate to `{snow_url}/sys_cs_provider_application_list.do` . You should see **VA Bot to Bot Provider Application** if the VA API application was successfully installed. 8. Open this record and under message auth, add the message auth you configured in the previous instruction. ![](https://files.readme.io/37417dfcfae4d2078f509618f0cfed00c3cb6e0806d5812f75e37f3a80dfb796-Screenshot_2023-04-05_at_7.08.21_PM.png) To enable file attachments from the user to the agent, we need to allowlist the ServiceNow domain. 1. Navigate to `{snow_url}/sys_cs_provider_application_list.do`, you should be in the VIRTUAL AGENT API application scope to be able to make changes here. 2. Click on the gear icon at the top right and add trusted media domains to the list of selected columns. ![](https://files.readme.io/620ce89e8b7531248af46951f18b56c3efca4bcb93136ee0e3a3e6c939b81a88-Screenshot_2023-07-08_at_10.04.29.png) 3. Double click on **Trusted media domains** and add “service-now.com” as pictured below and save. ![](https://files.readme.io/80b1e48cab6ae60c3251aa59655a4c440932c740ecc3cb397ab3e1a062f008b0-Screenshot_2023-07-08_at_10.07.46.png) Next, update the Service Portal url for KB and Ticket links. 1. Navigate to `sys_properties_list.do` and update the `com.glide.cs.url_redirect.default.portal` system property with the correct service portal name (if using a service portal other than the default `/sp`) ![](https://files.readme.io/f278ccd0ad92ca73ead48c430579a352caace501e15b31f9927cae4f4110c7e4-Screenshot_2024-05-03_at_3.09.37_PM.png) 2. Navigate to `sys_cs_portal_url_mapping_list.do` and update the link for KBs if you use a custom url. ![](https://files.readme.io/4edc649d1e755ef216f540d683075502f081b6aed0d9a764b52fe08e795e6828-Screenshot_2024-05-09_at_10.31.15_AM.png) The ServiceNow configurations are now complete, so navigate to your MyMoveworks portal to complete the rest of the steps within Moveworks Setup. First, set up the **Live Agent Handoff** settings. 1. Create a **Live Agent Handoff** configuration and set **Configuration** to **Agent Broker Handoff** (or equivalent). ![](https://files.readme.io/c6535c8b70fb69b8a22f168695a982879cfcdfd613a47ff152ee6a222d51daad-image_16.png) 2. Click the **Live Agent Handoff** page dropdown: ![](https://files.readme.io/768b1e795c35beb92a7b20d5035b9d0670379bff7211c10b82319a59e68aa2c6-CleanShot_2025-04-06_at_13.42.44.png) 3. Set the **Handoff Identifier** (ex. _agent_broker_instance_1_) ![](https://files.readme.io/61ea1e8af1b3a1e9b0903bd95a39b320711302a69d462fe386335555db672fd2-Untitled_7.png) 4. Set the **Trigger Rule** based on a specific domain (e.g context.domain == "IT_DOMAIN") ![](https://files.readme.io/62d921ac5ed7c2fa60e614aadb8aa678d339f1115fb082cbcf6f51e62f163376-image_17.png) 5. **Snow Handoff Config Context Bender** is how we transform our payload to adhere to what is expected by the customers’ ServiceNow instance. It is suggested to have the following as default: ![](https://files.readme.io/8daacdba29029c70712e1db142b6752f797fbae152cec52898669805ae278de0-image_18.png) ```json json { "language": "language OR null", "liveagent_optional_skills": "domain OR null" } ``` 6. Set the **Integration id** to the connector that will be used as the live agent chat platform. This is needed as some organizations might want to use ServiceNow for IT Live Agent Chat and AWS Connect for HR Live Agent Chat. ![](https://files.readme.io/72bd6ac32cd0c9493324df9e590197821e7d6ff3c8b0083c1760d48c355c56ac-Untitled_8.png) 7. Set **Enable Live Agent** to **TRUE** Next, configure the **Smart Handoff** settings with the Live Agent settings that were configured above. 8. Navigate to to **Handoff** and then **Handoff Settings** and add a new Item display key using the details in the screenshot below ![](https://files.readme.io/878511df66fd92c9060f5b5c7a1cf11f6fba363982f154d6ff33ee5ee035c3c8-CleanShot_2025-04-07_at_10.27.41.png) ```json IF (context.domain_candidates[0].domain == "IT_DOMAIN") THEN 1.0 ELSE 0.5 ``` 9. Make sure that the Handoff Identifier (ex. agent_broker_instance_1) is set in **Display Configurations** > **Handoff**. If this is not set, the Start agent chat button will not appear. This **Value** field is what users will see when selecting this handoff option so ensure that this is user friendly. ![](https://files.readme.io/35374f34056e785a9d3753a36274a112b3c45052dfbdaa45a6c5c3da1c1e6b60-image.png) Finally, update the ServiceNow connector with the token from Step 4. 10. Navigate to **Connectors** and click on **Built-in Connectors** 11. Find the ServiceNow connector in question and click **Edit** 12. Add the token from Step 4 to the **ServiceNow Virtual Agent API Token** 13. Click **Save** ![](https://files.readme.io/c8d1b479b51a1918e3725b62ec82a7e3e9a8691550e93beed8c392ab2a4d5103-image.png) You have completed the configuration :white_check_mark:
# Validation Next, follow the steps below to verify the feature is working. In ServiceNow, search for **Service Operations Workspace** > **Service Operations Workspace** ![](https://files.readme.io/5be22e153f900ff2ed5c5b5f9214e84e6941b9bc2e08a630d7212b54afdc1c50-CleanShot_2025-04-06_at_13.39.53.png) Find your inbox and set yourself to **Available** ![](https://files.readme.io/b645e6dcaadaf9d65ddf0c068ab4db8486606e27e58e0debde3036609fc0e510-CleanShot_2025-04-06_at_13.47.15.png) **Make sure at least one agent is`Available` in Agent Workspace**. The “start agent chat” button will only show up in the Moveworks AI Assistant when there are available agents. ![](https://files.readme.io/88b038011afda5ea66bcc68db1eb0760a94b62317e2c6701b0ed3c8fdf754d10-Untitled_2.png) Now, trigger the Live Agent Message brokering via the Moveworks AI Assistant. 1. Access your AI Assistant within Teams, Slack, service portal, etc. 2. Start a conversation with the AI Assistant and click the **Get Help** link ![](https://files.readme.io/b74806fbd7f47659a0be791bfa4f1be8f1bd11cefa40cdeca8aca26d9c483e24-image.png) 3. Under the **Get Help** tab, choose the correct **Which team is your request for?** that aligns with your Handoff configuration above. In this example, the Handoff aligns with the **IT** team/domain ![](https://files.readme.io/e090e4e779ddccfb272d37e3bb56fff06dc356b22f3fb47368e2ffa92bef5fa6-image.png) 4. Choose **Live Chat** as the **What would you like to do?** since that is the name that was given to the Message Brokering display value within the Display Configurations. ![](https://files.readme.io/1ed28c32862594359797150811b8ff065ab4b65880679ab67942e626e985d512-image.png) 5. Fill out the **Description** or other Rich Ticket Filing fields and click **Submit** to begin the live agent message brokering session. Return back ![](https://files.readme.io/fd1632bca799c1f91c20af7576960b08920dda02041102c4c659f1040b4337b5-image.png) 6. The live agent session will now being in chat if there are any available agents within the queue!
# Appendix ## Configuring Dynamic Queue Routing There are two ways you can setup queues in ServiceNow either simple or dynamic: * If these are simple, they don’t expect any value to be sent by Moveworks and by priority, chat should be routed to that simple queue. * For dynamic / advanced, Moveworks needs to pass that context to route the chat to that specific queue. For example if the live agent platform expects domain and language, then configure to pass this information in the Live Agent Handoff. In this example language and `liveagent_optional_skills` should match with the variables that they expect on their specific queue in SNOW. To learn more about ServiceNOW, read [Exploring Advanced Work Assignment](https://docs.servicenow.com/bundle/washingtondc-servicenow-platform/page/administer/advanced-work-assignment/concept/awa-overview.html) ``` { "language": { "COALESCE()": { "items": [ "hr_language OR null", "\"en\"" ] } }, "liveagent_optional_skills": "domain OR null" } ``` For example, in the example JSON above, there are 2 attributes being passed: 1. `language` takes in the `hr_language` attribute that the user selects, and fallback to `en` if `hr_language` is not selected by the user. 2. `liveagent_optional_skills` takes in the `domain` of the user's issue. ## Other Configuration Options 1. **Agent Always Available**: Activate this option to bypass checking the agent's availability status from their system. 2. **Enable Pre Chat Sys Msg Limit**: Switch this on to set a cap on the number of system messages sent to the user before connecting with an agent. 3. **Pre Chat Sys Msg Limit Value**: Set the maximum number of system messages. For example, "1" means one system message will be sent to the user before the agent takes over the chat. 4. **Agent Language**: Choose the language in which the agent communicates. For example, "EN" stands for English. 5. **On Demand Machine Translation**: This feature translates messages as required, based on the user's locale and the chosen agent's language. 6. **Live Agent Transcript Date Format**: Sets the date format for the live agent chat transcript. Options include the "ISO 8601" format (YYYY/MM/DD), the "US" format (MM/DD/YYYY), and the "European" format (DD/MM/YYYY). 7. **Enable File Attachment Size Limit**: Turn this on to set a maximum size limit for single file attachments. 8. **File Attachment Size Limit**: Define the maximum file size allowed for a single attachment, in MB. 9. **Enable Total File Attachment Allowed Per Session**: Activate this to limit the total number of file attachments per live agent session. 10. **Total File Attachment Allowed Per Session**: Set the cap for the maximum number of attachments allowed per live agent chat session. 11. **Don't Pass Chat History**: Enable this if you prefer not to send the chat history to the agent when the live agent chat session begins. 1. If this configuration is not enabled, then the previous **20** messages between the user and Moveworks AI Assistant will be sent to the agent by default, including both user's and assistant's messages. This number is configurable using the **Max number of messages to pass** field. 12. **Enable Post Session Trigger Agent Studio Event**: Turn this on to set an event ID from Agent Studio to be triggered after the live agent session ends. 13. **Agent Studio Event UUID**: Specify the event ID from Agent Studio to trigger once the live agent chat session concludes. 14. **App Inbound ID**: Under `Handoff -> Live Agent Handoff ` set Configuration: Agent Broker Handoff, and then select `Snow Handoff Config` , scroll down and set the value in : `App Inbound ID`. This corresponds to the Virtual Agent API integration to use, by default Moveworks leverages `VA Bot to Bot`. However, if you need to run both VA and Moveworks in parallel, you will need to specify an ID here. ![](https://files.readme.io/1896d4c96593e8b2d060e3e58e2dde857ef72b82ea0893995093722f86fbbba8-image.png)