# Core Concepts: Chat and Messaging

> \[!NOTE]
>
> 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](/docs/flex/conversations) or [migrate](/docs/flex/developer/conversations/programmable-chat-to-flex-conversations).

Twilio Flex includes messaging capabilities that allow your contact center agents to chat with customers through:

* SMS
* A chat widget on your website
* Digital messaging channels

Flex currently supports **inbound messaging** (initiated by a customer). You can initiate messaging conversations as they arrive or append incoming messages to existing conversations, [depending on your Chat channel configuration](/docs/flex/developer/messaging/chat-channel).

[Learn more about messaging in Flex](/docs/flex/developer/messaging).

## Chat Channels

Flex stores and manages all messaging interactions in **Chat Channels**. Flex creates Chat Channels as private by default. Messages are sent, received, and archived for later viewing by offline clients in the Chat Channels.

By default, Flex ships with `sms` and `web` channels integrated with Studio. To enable additional messaging flows in Flex, you can [programmatically create Chat Channels](/docs/flex/developer/messaging/chat-channel) (such as Facebook or WhatsApp).

## Flex Flows

A **Flex Flow** is the logic linking a messaging channel to Flex. It also describes how Flex should handle messages on a particular channel. You can configure a Flex Flow via [Twilio Console](https://console.twilio.com/us1/develop/flex/channels/messaging/conversations) or via the [REST API](/docs/flex/developer/messaging/flow).

![flex-messaging.](https://docs-resources.prod.twilio.com/8a9186275e38da121d7ee485c33430e317f9764f59964f4efae1dfc87ae14c2e.png)

To learn more about different integration types and managing messaging channels, see [Managing Flex Flows](/docs/flex/developer/messaging/manage-flows).

To preserve a customer's message history between multiple interactions (even if the subsequent interactions are handled by different agents), you can set up [long-lived channels](/docs/flex/developer/messaging/manage-flows#long-lived-channels).

Use the [Channel Janitor](/docs/flex/developer/messaging/manage-flows#channel-janitor) to clean up inactive chat channels. This will ensure new messages from customers don't get lost by being routed to inactive channels. Channel Janitor is now enabled for Flex Flows by default and we recommend you leave it on.

## Webchat Widget

Flex Webchat is a chat widget that you can embed on your website. The widget helps your customers chat with an agent without having to leave your website. It is natively integrated with Flex.

After deploying your Flex instance, you can test the [chat widget](/docs/flex/developer/messaging/webchat/setup) that comes out of the box and is integrated with Studio by default (via the **Webchat Flow**). You can launch the demo chat widget from the Admin panel of the Flex UI and test your agents' default interaction experience.

![phone-number-admin-panel.](https://docs-resources.prod.twilio.com/24a3f1446e94e3932ca467d041f15545928f847a2482bd71fb7799d0bd0aea7b.png)

Webchat widget is fully customizable with code. Refer to the [Webchat developer documentation](/docs/flex/developer/messaging/webchat/setup) for details.

### Chat Encryption

Twilio takes data security seriously. All customer assets—including text, media, and most metadata—are encrypted at rest. We also encrypt all data at the volume level.

Twilio's servers and Flex, including the customer Webchat widget, communicate using secure [WebSockets](/docs/glossary/what-are-websockets). These connections are authenticated using the same [JWT token security](/docs/iam/access-tokens) as the rest of Flex, meaning they are governed by the same Single Sign On (SSO).

For guidance on frequently asked questions, see [Flex Messaging FAQ and Troubleshooting](/docs/flex/developer/messaging/faq-and-troubleshooting).
