Address Migration Roadblocks
Learn about common roadblocks to watch for and ways to address them.
Supervisor view shows no call data, and VoiceCall ownership is never assigned. Always populate callAttributes.voiceCallId.
This situation causes duplicate events and state machine bugs. Return a Promise with the result; let the framework publish.
With the new base connector, events emitted out of context are rejected. Follow the canonical sequences for single-call and multiparty call. The base connector enforces ordering: CALL_CONNECTED before CALL_STARTED, PARTICIPANT_ADDED without an active call, and other out-of-sequence events are dropped. See Call Scenario Diagrams for details.
Causes dropped calls when reps go Offline mid-call. Declare hasPendingStatusChange: true and honor the flag in setAgentStatus(). Offline is the worst status to flip to mid-call; always queue it.
Both will create records on call end. Deactivate the Open CTI adapter before activating Salesforce Voice in production.
This may work in a single tab, but it breaks on reconnect and multi-tab. Screen pop belongs in an Omni-Channel flow, not the connector.
The demo connector handles dozens of edge cases in the event lifecycle. Always start from it. See Clone Before You Build.
VoiceCall is a richer, voice-native object. Use it directly; let customers decide whether they also want a Task, a Case, or an Opportunity related to it.