Migrate Custom UI Integration: Voice Extensions, Voice Toolkit, LMS Bridge
In Open CTI, custom UI lived inside the adapter iframe and pushed data to the page via opencti.* calls or window.postMessage. In Salesforce Voice with Partner Telephony, four dedicated mechanisms replace this: Voice Extensions, Voice Toolkit, LMS bridge, and custom Lightning events.
A Voice Extension is a Lightning page (FlexiPage of type VoiceExtension) that Salesforce renders inside the softphone panel alongside the standard call controls. It is visible pre-call (when the rep is signed in but not on a call), during the call, and during ACW (post-call). Use it for custom IVR data display, call notes, knowledge prompts, after-call disposition forms, anything the rep needs at any phase of the call lifecycle.
Voice Extensions are assigned to a Contact Center. See Customize Call Controls and Voice Extensions.
The LWC must declare in .js-meta.xml:
- Target:
lightning__VoiceExtension - Capability:
lightning__ServiceCloudVoiceToolkitApi
The Voice Toolkit, the lightning-service-cloud-voice-toolkit-api base component, gives a Voice Extension LWC access to live telephony events. It’s a Lightning base component that you embed in the template and query via this.template.querySelector('lightning-service-cloud-voice-toolkit-api').
The Voice Extension FlexiPage is the primary context, but the Voice Toolkit API can also be invoked from components on a record page when the host page has access to the Salesforce Voice capability and the rep is signed into Omni-Channel.
Once a Voice Extension has call data from the toolkit, it relays to LWCs anywhere on the page via LMS. Salesforce ships a standard channel: ServiceCloudVoiceMessageChannel__c.
The pattern:
- Voice Extension publishes with
source: 'CONNECTOR' - Subscribers use
APPLICATION_SCOPEand filter out their own messages
To learn more about custom Lightning events, see Communicate with Events.
| Tool | Use When |
|---|---|
| Voice Extension | Building any custom UI in the softphone panel area |
Voice Toolkit (lightning-service-cloud-voice-toolkit-api) | Voice Extension LWC (or record-page LWC) needs live call events from the connector |
LMS (ServiceCloudVoiceMessageChannel__c or custom) | Relaying call data from Voice Extension to record page LWCs |
| Custom Lightning Events | Parent-child or sibling communication within the same Voice Extension region |