Virtual Agent Learning Path<!-- .SOKMKBArticle div.margin { padding: 10px 40px 40px 30px; color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; } .SOKMKBArticle div.fed{ background-color: #f5f8fa; border: 1px solid; border-color: #bfbfbf; padding: 10px; } .SOKMKBArticle .FedRestricted{ background-color: #c00000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .CustRestricted{ background-color: #ff0000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNRestricted{ background-color: #ea700d; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNConfidential{ background-color: #ffc000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .Public{ background-color: #00b050; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle table.tocTable { border: 1px solid; border-color: #f2f2f2; background-color: #f2f2f2; padding-top: .6em; padding-bottom: .6em; padding-left: .9em; padding-right: .6em; } .SOKMKBArticle table.noteTable { align: left; border: none; border-color: #81b5a1; background-color: #f2f2f2; width: 100%; border-spacing: 2; font-size: 11px; } .SOKMKBArticle table.internalTable { border-top: 1px solid; border-left: 1px solid; border-color: #81b5a1; width: 100%; border-spacing: 1px; } .SOKMKBArticle .sp td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle .sphr td { border-right: 1px solid; border-bottom: 1px solid; border-color: #81b5a1; background-color: rgb(245, 245, 245); padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; height: 20px; } .SOKMKBArticle .sh td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #81b5a1; color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle th { padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: #ffffff; height: 20px; } .SOKMKBArticle td { border-color: #81b5a1; margin: 5px 5px 5px 5px; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: #283d40; } .SOKMKBArticle p { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle li { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; line-height: 1.5; } .SOKMKBArticle pre { font-family: Courier New; } .SOKMKBArticle div { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle hr { border-top-width: 1px; border-top-style: solid; border-top-color: #81b5a1; } .SOKMKBArticle a { color: #81b5a1; } .SOKMKBArticle a.two:link { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:visited { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:hover { color: #ffffff; background-color: #259b8a; } .SOKMKBArticle .button { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle .title { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #81b5a1; font-size: 30pt; } .SOKMKBArticle .hd1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle h1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; font-weight: normal; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle .hd2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; text-decoration: none; } .SOKMKBArticle h2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; font-weight: normal; text-decoration: none; } .SOKMKBArticle .hd3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle h3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle .hd4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle h4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle .hd5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle h5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle .hd6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle h6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle details { font-size: 10pt; } .SOKMKBArticle details[open] summary ~ * { animation: sweep .5s; margin-top: 0; padding-top: 10px; } @keyframes sweep { 0% {opacity: 0; margin-top: -10px} 100% {opacity: 1; margin-top: 0px} } .SOKMKBArticle summary { cursor: pointer; outline: none; margin-bottom: 3px; } .SOKMKBArticle .summary { background-color: #81b5a1; font-size: 10px; color: white; cursor: pointer; padding: 5px; width: 100%; border: none; text-align: left; outline: none; vertical-align: top; } --> Contents Standalone VA (Designer, Web Client)Portal VA (Config + SSO)VA NLUVA AI SearchVA w/ IntegrationHubVA APIConversational Custom Chat Integration Framework (CCCIF)VA Messaging Apps Integration (CCCIF with Microsoft Teams)VA Messaging Apps Integration (CCCIF with Slack)VA Messaging Apps Integration (CCCIF Workplace by Facebook) 1. Standalone VA (Designer, Web Client) Quick overview: ServiceNow Virtual Agent is an end-to-end, intelligent conversational experience that enables instant resolution to common requests, increases employee and customer satisfaction, and keep agents focused on more pressing issues. With guided setup and pre-built components, Virtual Agent is quick to deploy and makes it easier for everyone to resolve routine requests for IT, HR, customer service and more. It’s also natively available on your Service Portal and in your ServiceNow mobile apps, so help is always a few clicks or taps away. Why Customers Need It Virtual Agent helps solve ordinary issues and delivers results for common requests. When Virtual Agent handles the general, everyday tasks and requests, your agents and technicians are free to focus on more complex user issues. Virtual Agent converts the time your agents and technicians spend handling low-impact user requests, such as password reset, request for leave of absence, or information about a recent order, into an impressive, intelligently managed interaction. Turn your high-volume ordinary interactions into an elevated user experience. Conversational Interface Admin Experience: Starting from San Diego, There is Conversation Interface admin experience is launched for our customers to easily adopt Virtual agent and its related functionalities. This can help anyone to onboard Virtual agent very easily. Plugins Virtual Agent Lite Documentation Glide Virtual Agent Any user with the admin role can activate the Glide Virtual Agent [com.glide.cs.chatbot] plugin by navigating to System Definition > Plugins. This will automatically activate other necessary plugins There are pre-built conversation plugins available too. Please check Now learning video - Virtual Agent Fundamentals -> Section - Plugins Virtual Agent Designer Please check Now learning video - Virtual Agent Fundamentals -> Section - VA Designer Overview Please check Now learning video - Virtual Agent Fundamentals -> Section - High Level architecture High Level Architecture Understand Virtual Agent Topics Please check Now learning video - Virtual Agent Fundamentals -> Section - Topics Scripting in Virtual AgentTest Virtual Agent TopicsDebug a virtual agent topic Personalize Your Experience with Custom Greetings [Official Doc]Anonymous Chat [Official Doc]Configure Chat Branding and the Chat Menu [Official Doc]Configure Virtual Agent Notifications [Official Doc]Domain Separation and VA [Official Doc] Domain separation is supported in the Virtual Agent application. Domain separation enables you to separate data, processes, and administrative tasks into logical groupings called domains. You can control several aspects of this separation, including which users can see and access data. Conversational Analytics Dashboard [Official Doc] 2. Portal VA (Config + SSO) Quick overview: Your end users can initiate and maintain an Agent Chat conversation in any portal page. Write a script to pass portal-specific data to Agent Chat. For example, pass the name of your knowledge base to a Virtual Agent conversation. Configure Agent Chat in Service Portal [Official Doc]Configure Live Agent Chat [Official Doc]Web Client [Official Doc]Configure Context Topic IntentCreate Cross-Scope Access Privileges for Topic Blocks and Custom ControlsSetting-up Chat Experiences for Virtual Agent UsersCreate or Modify Custom Categories VA and Mobile Configure Virtual Agent for ServiceNow Mobile Applications [Official Doc]Useful Resources [Public KB Article] 3. VA NLU Quick overview: Apply Natural Language Understanding (NLU) models that enable your virtual agent to understand user statements in automated conversations. An NLU model provides information that your virtual agent uses to determine what users want to do and to extract relevant values from their input. With NLU, your virtual agent can offer a more natural and engaging conversational experience. Natural Language Understanding (NLU) Overview [Course]Configure Natural Language Understanding in Virtual Agent [Official Doc]Optimize Conversations with Expanded NLU Vocabulary [0:00-39:03 from Now Community | 39 mins]Multi-Language NLU [0:00-25:21 from Now Community | 25 mins] [Official Doc]Keywords to NLU [Course]Troubleshooting Virtual Agent + NLU [Public KB] 4. VA AI Search Quick overview: Virtual Agent uses the Now Platform® AI Search application to return search results in bot conversations as a fallback when there are no relevant topics to display to end users. Virtual Agent also provides an AI Search topic block that topic authors can use to generate search results in a topic. AI Search Overview [Official Doc] Virtual Agent and AI Search [Official Doc]Useful Knowledge on AI Search AI Search FAQ [Public KB]AIS | AI Search General Troubleshooting and Debugging [Public KB] 5. VA w/ IntegrationHub Released in Version: Quebec Quick Overview: Combines the conversational support in VA with the workflow power in Flow Designer. Flow Designer + IntegrationHub + Virtual Agent = conversational workflow! Data Flow Diagram: Videos: Virtual Agent Academy: Add more flow to your Virtual Agent with IntegrationHub [2:40-14:57 from Now Community] Configuration: Embedding an FDIH (Flow Designer IntegrationHub) Subflow/Action [15:04-18:13 from Community] New Action component under Utilities on the paletteDiscover and select Spoke (scoped app), then subflow or action Configuring Inputs Once a subflow/action is selected, inputs and outputs are discovered and displayed (similar to topic blocks experience)Input Types supported include String, reference, Boolean, date/time; data pill picker and script options are also availableAdditional advanced options: Wait for response: Wait for response or fire/forget and proceed with the conversationRun as (for actions only): Setting for callers of actions; set based on whether elevated privileges are needed to execute the action Testing: Testing the FDIH subflow/action as part of the conversation Preview-only message when testing from Preview/test experience [20:20-20:55 from Community] Controlled by System Property com.snc.process_flow.reporting.level (defaults: enabled on sub-production instance, disabled on production instances)Contains link to Flow Designer End user experience from Service Portal: Seamless with typing indicator providing feedback [30:57-32:23 from Community] Component, Architecture, and Design: Application/Feature Plugin Structure com.glide.cs - standard VA plugin "Wait for Response" mode interactive flowNon-blocking operation, the VA thread releasesVA conversation suspends, later resumes upon FDIH responsesys_cs_fdih_invocation.execution_mode = WAIT_FOR_RESPONSE "Fire and Forget" mode Non-blocking operation, the VA thread releasesVA conversation does NOT suspend itselfsys_cs_fdih_invocation.execution_mode = FIRE_AND_FORGET Troubleshooting & Debugging / Failure Points / Best Practices: A "wait for response" FDIH invocation times out if any outbound/external endpoint is slow check the sys_cs_fdih_invocation table for call details and errors sent by by FDIH (if any) sys_cs_fdih_invocation.response_state = COMPLETE | CANCELLED | ERROR | TIMED_OUT check the "Timeout for FDIH Interactive Chats and Atlas Search" sys_script for timeout logic When it times out, the flow of control is delegated to either the Error Topic or the Fallback Topic create a sys_flow_execution_setting record for your action or subflow (to turn on execution details per object)NOTE: the amount of seconds before the FDIH action times out can be configured with property com.glide.cs.fdih.interactive.timeout (default is 120 seconds) [Official Doc] Risks associated with this feature Slow performing external callsErrored and timed out FDIH invocations are not cancelledComplex parameter serializationBest Practice: Action "Run As" should be set to "Session User" TIP: Cut your troubleshooting in half by testing the Action/Subflow outside of VA (using Flow Designer only) If issue is reproducible outside of VA (inside Flow Designer) then this is no longer a VA issue, but a Flow Designer issue 6. VA w/ VA API Released in Version: Paris Quick overview: The Virtual Agent API is a REST API that enables ServiceNow developers, advanced users, and admins to use Virtual Agent as a: Standalone ServiceNow bot, integrated with enterprise or any other third-party chat interface. Not supported, yet (latest: Quebec) Secondary bot in a bot ecosystem that has multiple, specialized bots managed by a primary bot [00:00-02:12 from Community] Data Flow Diagram: Videos: Virtual Agent Academy: Augment your experiences with the Virtual Agent API [1:27-4:29 from Community | 3 mins] Standalone ServiceNow Bot: Not supported, yet ServiceNow Bot as Secondary Bot (Bot to Bot): How does it work? [4:32-6:13 from Community | 2 mins] User sends input to Primary BotPrimary Bot sends POST REST request to ServiceNow inbound REST endpointAuthentication and Request processing done by REST web service in ServiceNow platform (Optional) request is sent to a Live Agent ServiceNow outbound REST web service returns results as a POST to Primary BotPrimary Bot returns output to User Bot to Bot Demo 1 (connect to ServiceNow Live Agent via VA API) [14:12-19:02 from Community | 5 mins]Bot to Bot Demo 2 (connect to ServiceNow Virtual Agent via VA API) [19:20-24:41 from Community 5 mins]VA API w/ NLU [Community Article] Use Case 1: NLU in Secondary Bot. The Primary bot sends user's utterance to all the secondary bots in the ecosystem and based on the boolean score returned by secondary bots, it decides where to route subsequent requests.Use Case 2: NLU in Primary Bot. The Primary bot has the same NLU engine for all secondary bots to decide which secondary bot to route the request. Installation & Configuration: Install the Virtual Agent API via the ServiceNow Store [9:35-10:14 from Community | 1 min]Review the Inbound REST endpoint (Scripted REST Resource) and configure inbound authentication [12:28-13:13 from Community | 1 min]Configure Message Authentication for inbound communicationConfigure the output response REST endpoint (VA Bot to Bot REST Message record) and outbound authentication for the Virtual Agent API [13:13-14:09 from Community | 1 min]User linking [26:11-29:12 from Community | 3 mins] Component, Architecture, and Design: New system properties va.bot.to.bot.take.control_times: number of times VA attempts to get a response after which control will be passed back to primary botva.bot.to.bot.auto.link.account.enabled: link user account to their ServiceNow account if email id is present in requestva.bot.to.bot.score.normalization_factor: score normalization Troubleshooting & Debugging / Failure Points / Best Practices: Scenarios Scripted End Point is not working Make sure com.glide.cs.plugin is installed before installing VaaS pluginAbove plugin will install com.glide.cs.custom.adapter pluginNew, VA API plugin should be installed which will result in a new record in sys_cs_provider table Requests are failing with 4xx or 5xx error This means that the scripted REST endpoint errored outCustomer needs to validate the endpoint is correctly establishedIn case of Basic Auth and OAuth, passwords or tokens are set up correctly Customer got 200 status while posting a request but never got a response back There could be multiple reasons for these failures Requests are failing in Static, JWT or Hash Based Token validation which generally happens in worker thread of VARequest format was not correct hence conversation was faultedRequest was missing some mandatory params which will result in exception and conversation will be faulted. Exception/Error could be traced in logsCustomer hasn't set up the REST Message to post the response backCustomer's REST message authentication is failingCAF and Bot to Bot works in async which means we will post the response back to customer URL but the customer's end point is down or not available. This can be seen in the logs. Debug property va.bot.to.bot.logging_enabledTest Bot-to-Bot using 3rd-party REST client (send Request to inbound VA API) New Features in Quebec Force close idle conversations after 1 Hr. for B2B integrations (new System Property: com.glide.cs.b2b_conversation_idle_timeout)Notify primary bot when conversations has ended Completed: conversation is over for VA or LATake Control: VA cannot determine intent for 2-3 consecutive times Share confidence score from NLU Confidence score from NLU is enabled Captures user's response when they explicitly want to end the conversation User initiated (Click on 'X' button, close chat window, Type "End conversation")Primary bot initiated Provide the ability to jump directly in a topic based on an intent skipping global topic 7. Conversational Custom Chat Integration Framework (CCCIF) Released in Version: Paris Quick overview: Conversational Custom Chat Integrations is a framework of scripts and configurations that enable customers to plug into ServiceNow VA through any chat interface of their choice. The feature enables ServiceNow customers to gain access to SN solution capabilities in any channel that supports conversational interface e.g. Web Portal, Mobile App, Slack, Teams, WhatsApp, SMS, etc. The framework provides a way to manage and control end-user experience. It transforms messages from a chat client to Virtual Agent Chat Servers (VACS), and from Virtual Agent Chat Server (VACS) back to the chat client in a format that your end users can understand. Data Flow Diagram: - official documentation: Conversational custom chat integrations How Does This Feature Work This framework is available with Pro License of ServiceNow solutionsFramework is packaged in a platform plugin - Conversational Custom Chat IntegrationAny new customers installing "Glide Virtual Agent" will get it by defaultCustomers will also require IHUB subscription Use Case Make it convenient for customers to avail ServiceNow platform capabilities on any channel via Conversational ExperiencesEnable a robust integration of Enterprise & 3rd-party chat interfaces with ServiceNow VA/LA leveraging the CCCIF Access to a vast set of VA and LA features and capabilities via CCCIFDrive consistency of user experience across multiple channels through a common underlying framework Demo [2:00-19:23 from Developer Site | 17 mins] Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.This POC application provides step-by-step guide to develop a simple Telegram Bot and integrate it with ServiceNow Virtual Agent using custom adapter framework.This is NOT a full-blown production-ready solution. It merely offers boilerplate application and guidance to integrate third-party messaging applications using Custom Chat integrations framework. Outline: Inbound Architecture [2:40-3:30 from Developer Portal | 1 min]Outbound Architecture [3:30-3:58 from Developer Portal | 1 min]Installation download update set for Telegram Messenger from developer portal [4:01-4:29 from Developer Portal | 1 min] signup for Telegram and create a new Telegram bot. Note: you will receive an authorization token. [4:29-5:10 from Developer Portal | 1 min] ServiceNow configuration [5:10-6:45 from Developer Portal | 2 mins] activate plugin create a messaging channel for Telegram define verification tokens and message auth define messaging provider capturing Flow Designer actions. Also define inbound and outbound transformation actions for control types. define a new messaging provider Application for "Telegram". Message provider application combines messaging provider and authorization details. ServiceNow development [6:45-7:40 from Developer Portal | 1 min] REST Endpoint. Telegram will send an HTTPS POST request to this endpoint, containing a JSON-serialized message Attribute Action. Provider Attribute Actions Script is invoked by the "Adapter Processor" to process the newly received message Transformer. The transformer scripts convert messages in a format that the Virtual Agent recognizes. Sender. Sender action script asynchronously sends outbound message to Telegram. Webhook Configuration [7:40-8:37 from Developer Portal | 1 min] System Property. Update system property "x_snc_messenger.telegram.key" with the Telegram access token, Telegram generates this token during the bot creation. Configure Webhook. A Webhook is a way for a web app to communicate real-time information. Use "setWebhook" method to specify ServiceNow endpoint url and receive incoming updates via an outgoing webhook. Troubleshooting Account Auto-Linking Check if auto link users ServiceNow Profiles is checked and automatic link action is returning proper sys_user id.Check in sys_cs_provider if link_account_enabled flag is enabled and link_account_action is provided, for auto-linking, basic link account is must.On successful linking new record will get created for sys_user id in "provider_user_map" tableError logs to look for: Unable to retrieve outbound tokenResult of auto link status Success/Failure Outbound Token Check if message auth is configured for Provider channel identityMessage Auth should have proper outbound message creation which is required by Provider Channel IdentityError logs to look for: "Unable to find provider channel identity for provider channel""Invalid verification record" Debugging Sender sub flow Table "sys_flow_context" has details recording execution time of any Sub FlowBy enabling debugging properties of IHUB in "Process Automation" > "Properties", we can troubleshoot any IHUB Flow executionBy using "Process Automation" > "Settings", we can enable trace on any specific Sub Flow to capture details Flow Execution information. 8. VA Messaging Apps Integration (CCCIF with Microsoft Teams) Released in Version: London (as an app in the ServiceNow store in Quebec) Quick overview: In addition to accessing Virtual Agent from service portal on a ServiceNow instance, users can also access it from external messaging applications such as MS (Microsoft) Teams, Slack, Facebook Workplace etc. Enable end users to create and follow up on ServiceNow requests, receive notifications, and engage with Virtual Agent and live agents directly within the Microsoft Teams messaging app. Data Flow Diagram Install Approximate time: 15 minutes Create a Microsoft Admin Developer account [00:00-11:43 from Microsoft] [3:33-4:13 from Community] [KB0958547] You first need an Office 365 account (either personal or corporate account)Join the Microsoft 365 Developer ProgramSetup a Microsoft 365 E5 Developer Sandbox/Tenant/SubscriptionAdd at least one user (if you don't already have any) to your MS Teams test environment (note: you get 25 user accounts under this sandbox/tenant/subscription) [8:18-9:04 from Community] Install Microsoft Teams in ServiceNow Instance [Installation Steps from KB0993612] Install necessary plugins Conversational Integration with Microsoft Teams (ServiceNow Store App): sn_va_teams, which requires: Glide Virtual Agent (com.glide.cs.chatbot) -or- Glide Virtual Agent Lite (com.glide.cs.chatbot.lite)Microsoft Teams Graph Spoke (ServiceNow Store App): sn_msteams_ahv2MS Teams - App Core (com.snc.msteams.app.core) Click Install under MS Teams under (module: Messaging Apps Integration) [official Doc] [8:13-10:43 from Community] Note: you must be admin in the ServiceNow instance and in Microsoft 365Note: the Install button will not be enabled until you install the Conversational Integration with Microsoft Teams plugin (see previous step)Note: you can have several Microsoft tenants per instance, but you need San Diego release in order to configure more than one ServiceNow instances per Microsoft Tenant. Install Now Virtual Agent application in MS Teams [step 7 of official Doc] [10:43-11:35 from Community]Link Microsoft Tenant user account with ServiceNow user account [official Doc] [11:39-12:56 from Community] Configure Topic Design in Virtual Agent for use in Microsoft Teams [7:18-22:30 from Community]Best Practices [23:00-24:05 from Community] User inputs: file picker only supports copy/paste (no uploads)carousel images may not scale equally with VA portal chat client experience Bot responses: image output may not scale equally with VA portal chat client experienceHTML renders in different, larger font Utilities: custom controls have not been tested Branding [13:02-16:29 of Community Video]Filtering Topics (I want to show some topics in MS Teams but hide others) [16:30-18:37 of Community Video]Skipping "Hi" (I want users to go straight to a topic and bypass "Hi") [20:54-24:46 of Community Video]Live Transfer Wait Time (new in Paris) The client layer of MS Teams will check if the flag is enabled when Live Agent handover is done. If enabled, it will display the wait time fetched via an API call from VA server. Skippable Input Control (new in Paris) The adapter layer will check the skip flag if it needs to add skip button on the control to be sent. ITSM/HRSD integration with MS Teams [20:05-26:00 of Community Video] Employees can respond to comments on tickets/requests without leaving teamsAgents can initiate Teams chat with employee directly from ticketEmployees see pending tasks, status of open tickets via "Your Hub" tab Troubleshooting & Debugging / Failure Points [KB0993612] Troubleshooting Path (start here) Verify conversation record is created in sys_cs_conversation table and check: Device Type: TeamsConversation State: Open (conversation is in progress)Conversation State: Completed (conversation completed successfully)Conversation State: Faulted If faulted, then check for any errors in system logif faulted, then open the corresponding conversation record in sys_cs_conversationif faulted, verify the status of individual tasks or conversation messages and identify errors Check for errors in system logIf you suspect that the request is not getting to the instance, then check transaction logs (System Log > Transactions) created (URL: /api/now/v1/proxy/cs/adapter/va/teams) If inbound is not an issue, then check outbound traffic. Check for errors in outbound HTTP logs Other Check for errors created while installing the pluginIf bot is not responding, try the "restart" commandIf instance was cloned, then authentication records may not have been clonedIf Bot name was updated, then there will be a dummy Bot created at Microsoft's end and it will take a few hours to synchronize. There may be issues If a user wants to install/start the conversation before the synchronization completes. Enable glide.cs.debug system property VA w/ MS Teams Diagnostic Script: ms_teams_script.js [see Automation To Validate The Installation in KB0993612] Basic Operations Checklist [KB0993612] Verify the basic command “Hi” worksGet the response with Link to ServiceNow, Continue as GuestLink to ServiceNowTopics got discoveredTopics got executed without any error. 9. VA Messaging Apps Integration (CCCIF with Slack) Released in Version: London (as an App in the ServiceNow store in Quebec) Quick Overview: In addition to accessing Virtual Agent from service portal on a ServiceNow instance, users can also access it from external messaging applications such as MS (Microsoft) Teams, Slack, Facebook Workplace etc. Video: Virtual Agent & Slack - Improve employee self-service [0:00-2:53 from Community] (note: video has no audio) Use Cases [3:02-5:52 from Community | 3 mins.] Use Case 1 - Conversational Integration with Slack: Interact with Virtual Agent directly within Slack, no need to log into the instance. Use Case 2 - Virtual Agent posts notifications to a Slack channel Demos: Use Case 1 Demo [3:06-4:20 from Community | 1 min]Use Case 2 Demo. Send survey feedback to Slack channel [13:53-15:36 from Community | 2 mins]Use Case 2 Demo. Send fallback notification to Slack channel [19:53-23:06 from Community | 3 mins] Use Case 1 Configuration / Conversational Integration with Slack [0:00-4:24 from Community | 4 mins.] [KB0864603, How to integrate ServiceNow Virtual Agent with Slack] Prerequisite: create your own Slack workspace Install the Conversational Integration with Slack [sn_va_slack] (from store app or plugin page) Install the Slack Conversational Integration application in the Messaging Apps Integration. From the instance's left navigation menu, go to Conversational Interfaces > Messaging Apps Integration. Click the 'Install' button for Slack. note: a warning window asks to give Virtual Agent permission to access the Slack workspacenote: verify that the following for the Slack application in the 'Messaging Apps Integration' window: Checkbox 'Enable notifications for all users' is checkedCheckbox 'Automatically link ServiceNow user profiles' is checkedThe Slack workspace appears installed note: you can install multiple Slack workspaces to one instance, but you cannot install the same Slack workspace to multiple instances. Add the ServiceNow Now Virtual App to Slack Use Case 2 Configuration / How Does It Work [23:32-38:07 from Community | 15 mins.] Slack Get webhook from your IT Department Create Slack appActivate incoming webhookAdd new Webhook Flow Designer Create Flow Designer Trigger Trigger condition (table record creation) Create Flow Designer Action Action: Post a message (Slack)Webhook URLMessage Selected New Features & Feature Updates for Use Case 1, Conversational Integration with Slack: Madrid Full support for Slack Enterprise Grid, Slack's premium offering for big enterprises Selected New Features & Feature Updates for Use Case 2, Notifications to Slack Channel: Madrid Prior to Madrid Slack spoke had actions that used web hooks. Web hooks have their security implications and need to be protected and kept safe. In Madrid, all the slack based actions use OAuth and we added new actions to facilitate Major incident use cases that involve channel management. 10. VA Messaging Apps Integration (CCCIF with Workplace by Facebook) Released in Version: Madrid (as an App in the ServiceNow Store in Quebec) Quick Overview: In addition to accessing Virtual Agent from service portal on a ServiceNow instance, users can also access it from external messaging applications such as MS (Microsoft) Teams, Slack, Facebook Workplace etc. Video: ServiceNow and Workplace from Facebook Integration [1:04-1:54 from Support | 1 min] Install & Configure Admin installs 'Conversational Integration with Workplace from Facebook' application on ServiceNow instance [Store App] [Official Doc]Install 'Now Virtual Agent' bot in FB Workplace [Official Doc]First-time users link their FB Workplace user account with their ServiceNow user account via Virtual Agent conversationsTest by typing "Hi" to start a conversation Optional: Design virtual agent topics to capture information from a Facebook Messenger chat conversationClose idle Facebook Messenger chat conversationsTransfer Facebook Messenger chat conversations to live agentsUsers can type "Help" to get help informationUsers can restart the conversation if the conversation runs into unexpected issues .