Before you begin
- Salesforce Service Cloud with Enhanced Chat (formerly Messaging for In-App and Web) and the required Digital Engagement entitlements
- Salesforce admin access
- Omni-Channel set up for the agents who take messaging sessions
- An IrisGPT chatbot on your website, and access to the IrisAgent dashboard
1. Prepare Salesforce routing
Skip to step 2 if Enhanced Chat sessions already route to your agents. Otherwise, in Salesforce Setup:- Enable Omni-Channel.
- Create a service channel for the Messaging Session object.
- Create a queue and add the agents who should get IrisGPT handoffs.
- Create presence statuses for messaging.
- Create and activate an Omni-Channel flow that routes the
recordIdinput to your queue, agent, or skills. - Add Enhanced Chat to the Service Console.
2. Create a custom client deployment
- In Setup, open Messaging Settings and create or open an Enhanced Chat channel.
- Select the Omni-Channel flow and fallback queue for IrisGPT handoffs.
- Turn off Use reCAPTCHA (or reCAPTCHA Verification) and save the channel.
- In Setup, open Embedded Service Deployments and click New Deployment.
- Select Enhanced Chat → Next → Custom Client → Next.
- Name the deployment. Its API Name is the deployment name IrisAgent uses.
- Select the channel from step 1 and save.
- Publish the deployment. Stay on the page until it finishes.
- Enable the Enhanced Chat REST API for the org if it is not already on.
3. Connect the deployment in IrisAgent
Copy these values from the published deployment’s configuration (all from the same org and deployment):
The Service URL must start with exactly one
https://, have no Markdown brackets, and have no path after the hostname.
- In the IrisAgent dashboard, go to Deploy → Chat channels.
- On the Salesforce Messaging card, click Configure.
- Turn on Enable Salesforce Messaging.
- Enter Service URL, Organization ID, and Deployment Name.
- Optional: enter a No-agent reply to show when no agent is available.
- Click Save. The card shows Connected.
Connected only means the values are saved. It does not confirm the deployment is published or is a Custom Client. Run the test in step 5.
4. Turn on live chat handoff
- Go to AI Products → Chatbot and click Configure and deploy.
- Open the chatbot configuration your website uses.
- Under Agent Handoff, select Start a live chat and save.
data-token in your website’s embed snippet must belong to this configuration. See Chatbot on Website.
5. Test the handoff
- Have an agent open the Service Console and set the Omni-Channel presence used by the queue.
- On your website, ask IrisGPT for a human.
- Check that IrisGPT shows a waiting or queue status.
- Accept the Messaging Session in Salesforce and send a reply. It should appear in the widget.
- Reply from the widget. It should appear in the same Salesforce session.
- Reload the website. The conversation and agent connection should be restored.
Troubleshooting
“No agents are available”- At least one agent in the queue must be online with the right presence status and have capacity.
- The channel’s flow and fallback queue must be active.
- The Omni-Channel flow must route the Messaging Session service channel.
- The flow’s input variable must be named exactly
recordId, be text, and be available for input. - The deployment must be published and the Enhanced Chat REST API enabled.
- Wait up to 10 minutes after publishing, then retry.
- Confirm the deployment type is Custom Client, not Web.
- Use the exact DeveloperName (API name), not the display label or a Web deployment’s name.
- Confirm all three values come from the same org and deployment.
- If Salesforce says the deployment type is unsupported or must be
api, create and publish a new Custom Client deployment. - If you see
Verification requires a valid reCAPTCHA token, turn off Use reCAPTCHA, save the channel, republish, and wait up to 10 minutes.
- The Salesforce deployment must include the exact top-level domain where the widget runs.
- The values on the Salesforce Messaging card must match the published deployment. Update them if the deployment was replaced or renamed.