Inbound Messages with Flex WebChat UI
Info
This guide is for Flex UI 1.x.x and channels that use Programmable Chat and Proxy. Programmable Chat for Flex will reach end of life on June 1, 2026. If you're new to Flex or currently using Programmable Chat, build with Flex Conversations or migrate.
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.
Info
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
- Auto-generated token expires after one hour
- The Flex Webchat UI will automatically renew this token before it expires
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.
- Channels are generated via the following endpoint:
https://flex-api.twilio.com/v1/WebChannels
- This request uses the Access Token that the Webchat UI generated in the first step
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();
Response
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.