Skip to main content
is the path for every real-time channel — web chat, SMS, WhatsApp, and phone. Conversations land in the Salesforce console as live messaging threads your reps pick up with the full AI transcript attached. For email, use Email Cases instead.
Setup takes about 20 minutes. You need a Salesforce admin who has configured an with Omni-Channel routing, and admin access in OpenCX.

Before you start

Service Cloud with Messaging for In-App and Web enabled. Contact your Salesforce admin if the Embedded Service Deployments section is missing from Setup.
An Embedded Service Deployment must already exist in Salesforce with Omni-Channel routing configured. OpenCX connects to this deployment — it does not create one for you.
OpenCX signs identity tokens with an RSA private key. You register the matching public key in Salesforce. Generate the pair before starting setup.
Required to save integration settings in Settings → Integrations.

Setup

1

Gather your Salesforce identifiers

You need three values from Salesforce Setup:
IdentifierWhere to find it
Instance URLYour Salesforce domain (e.g. https://yourcompany.my.salesforce.com).
ES Developer NameSetup → Embedded Service Deployments → select your deployment → copy the API Name.
Salesforce Org IDSetup → Company Information → Organization ID.
2

Generate and register JWT keys

  1. Generate an RSA key pair (2048-bit or higher).
  2. In Salesforce, open your Embedded Service Deployment’s Auth Key settings and register the public key (PEM format).
  3. Note the Auth Key ID Salesforce assigns after registration — you need it in the next step.
Keep the private key secure. Anyone with the private key can sign identity tokens on behalf of your organization.
3

Enter credentials in OpenCX

In your OpenCX dashboard, open Salesforce and select the MIAW tab.
FieldValue
Instance URLYour Salesforce domain (include https://).
ES Developer NameThe API name from your Embedded Service Deployment.
Salesforce Org IDThe Organization ID from Company Information.
Auth Public KeyThe public key in PEM format (include -----BEGIN PUBLIC KEY----- headers).
Auth Private KeyThe private key in PEM format (include -----BEGIN PRIVATE KEY----- headers).
Auth Key IDThe Key ID Salesforce assigned when you registered the public key.
Click Save.
The private key is stored encrypted. After saving, the dashboard displays only a redacted preview — the full key is never shown again.
4

Verify end to end

Send a test message on a connected channel (web widget, WhatsApp, or SMS). Escalate the conversation.
  1. A messaging thread appears in the Salesforce console with the AI transcript.
  2. Reply from the Salesforce console.
  3. The reply lands back on the original channel within a couple of seconds.
If any step fails, jump to Troubleshooting.

How handoff lands in Salesforce

When triggers, OpenCX:
  1. Generates a JWT identity token for the contact, signed with your private key.
  2. Obtains a messaging access token from Salesforce.
  3. Builds a transcript with the AI summary and conversation history.
  4. Extracts routing attributes from the session — channel, language, priority, and session ID.
  5. Creates a conversation in Salesforce with routing attributes attached.
  6. Sends the transcript as the opening message so your rep has full context.
  7. Rep replies sync back to the OpenCX session in real time.
OpenCX retries handoff up to 3 times with increasing delays if Salesforce is temporarily unreachable.

Routing attributes

OpenCX attaches these attributes to every messaging conversation. Your flow can read them for routing decisions.
AttributeValuePurpose
OpencxSessionIdSession UUIDTrace back to the OpenCX session.
Chat_Consumer_TypeAuthenticated or Non-AuthenticatedDifferentiate identified vs anonymous contacts.
OriginMIABOTIdentifies conversations that came from OpenCX.
PriorityLow (default)Baseline routing priority.
Chat_languageDetected language codeRoute to language-specific queues.
Additional attributes may populate from session and contact data depending on your organization’s configuration. Your Omni-Channel flow must reference the attribute names to use them for routing.

Disconnecting

In OpenCX, open the Salesforce integration, select the MIAW tab, and click Delete. Active conversations finish on their current channel; no data is deleted from Salesforce.

Channels

Per-channel implementation details for Widget, WhatsApp, SMS, Phone, and Email.

Email Cases

The companion path for email handoff.

Troubleshooting

Access token errors, missing conversations, routing issues.

Handoff settings

Global handoff rules and office hours.