Set up a new Messaging for Web (enhanced Chat) deployment so a chat widget can appear on your website. This assumes Omni-Channel and a messaging channel are already enabled.
- Open the Embedded Service Deployments page
From Setup, type Embedded Service in Quick Find and select Embedded Service. Click New Deployment to start.
- Pick the conversation type and name it
Choose the enhanced messaging option, give the deployment a clear name, and confirm the auto-generated API name. Select the Site Endpoint (an Experience Builder or Salesforce site) that hosts the widget assets.
- Wire up routing and pre-chat
Connect the messaging channel to an Omni-Channel flow that routes conversations to the correct queue or skill. Configure pre-chat fields and map them into the flow so agents see context on arrival.
- Brand the widget and set business hours
Set colors, logo, header text, labels, and widget position. Configure business hours and an away message so off-hours visitors get a clear response.
- Get the code snippet and publish
Use Get Code to copy the JavaScript snippet, paste it into your web page or Experience Builder head markup, then publish or republish the deployment so the live widget uses your settings.
Choose enhanced Messaging for In-App and Web; legacy Chat was retired on February 14, 2026 and should not be used for new builds.
The Experience Builder or Salesforce site that serves the widget assets the snippet loads. Required for the deployment to function.
The routing logic that reads pre-chat data and assigns each conversation to a queue, skill, or agent.
The information collected before the conversation opens, mapped into the routing flow for agent context.
Colors, logo, position, and localized text that make the widget match the host site. Snippet-level overrides can supersede these.
- You need the Customize Application and Modify Metadata permissions to create or edit a deployment.
- Republish the deployment after every change; the live snippet keeps serving old settings until you do.
- Call JavaScript APIs only after the onEmbeddedMessagingReady event fires, or the calls will not execute.
- Settings in the code snippet can override what you chose in Setup, so check both layers when the widget looks wrong.