This guide is for Flex UI 1.x.x and channels that use Programmable Chat and Proxy. If you are using Flex UI 2.x.x or you are starting out, we recommend that you build with Flex Conversations.
Webchat is a common channel that customers use to communicate with a Flex agent. The Flex Webchat UI offers you a way to embed chat on your website and manage messaging orchestration.
Any inbound messages sent with the Webchat widget get passed through to your contact center. The end user using the widget is generally unauthenticated, or anonymous. You can gather information through a pre-engagement form before presenting the chat interface and pass the gathered meta-data to Studio, Flex, or your internal systems for validation and personalization.
In this use case, the Flex Flow and Studio Flow are available by default with standard Flex setup. The Flex Flow will be specified when configuring the Flex Webchat UI.
The event flow detailed below is automatically handled by Twilio Webchat UI and requires no further integration. It is provided to show how the data passed from the Webchat UI is used when creating the Flex ChatChannel.
First, Twilio creates an access token for the guest user.
Flex Webchat UI uses standard Twilio token generation
This doesn't require any coding on your part. Once the access token is created, Twilio orchestrates the relevant Chat engagement and Chat Channel, connects the Integration Type, and places the User into the Chat Channel. Twilio ensures other parts of the defined Message Handler are set.
https://flex-api.twilio.com/v1/WebChannels
If you have configured a pre-engagement with the Webchat UI, Flex will pass the pre-engagement data as a part of this request.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function createWebChannel() {11const webChannel = await client.flexApi.v1.webChannel.create({12chatFriendlyName: "ChatFriendlyName",13customerFriendlyName: "CustomerFriendlyName",14flexFlowSid: "FOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",15identity: "Identity",16});1718console.log(webChannel.accountSid);19}2021createWebChannel();
1{2"flex_flow_sid": "FOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"sid": "CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",5"date_created": "2016-08-01T22:10:40Z",6"date_updated": "2016-08-01T22:10:40Z",7"url": "https://flex-api.twilio.com/v1/WebChannels/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"8}
Subsequent messages exchanged are now being passed using the Chat SDK from the Webchat UI.