Skip to content

Salesforce Service Cloud Voice automation

Status: Current | Last reviewed: 2026-08-31

The Salesforce metadata in sfdc/trueserve-profile owns the CRM-side identity and relationship handling for Service Cloud Voice. It does not ingest Amazon Connect contact events or Contact Lens analytics.

Outbound VoiceCall identity

DCC_Outbound_Voice_Call_Handler invokes DccVoiceCallIdentityResolver before it creates CRM records. The resolver applies this order:

  1. Use the VoiceCall's standard EndUserId and the referenced MessagingEndUser.AccountId / ContactId.
  2. If the End User has no CRM identity, use a standard RelatedRecordId that points to a Contact, Account, or Case.
  3. Derive the Account from the Contact so a Case never receives a Contact from a different Account.
  4. For a Person Account, return its standard PersonContactId for Contact-style behavior.

An existing related Case remains the interaction Case. Otherwise, the flow creates a Case with both the resolved Account and Contact when available. The created Task uses the Case as WhatId and the resolved Contact as WhoId. This preserves B2B context while preventing a hardcoded or unrelated Contact from replacing the caller.

Standard relationship contract

VoiceCall field Purpose
EndUserId Customer identity input supplied by Service Cloud Voice
RelatedRecordId Case used by routing, screen pop, and owner automation
ActivityId Task created for the VoiceCall

DCC_CaseId__c and DCC_TaskId__c are legacy compatibility fields. Active automation neither writes nor reads them. Do not add new dependencies on those fields.

Record type selection

DCC_Update_Voice_Call_Record_Type maps explicit Five9 and Genesys call centers to their record types. Amazon Connect call centers named AmzConnectByot, trueServeContactCenter, or amazondevsdo map to DCC_Connect; an otherwise unmatched call center also defaults to DCC_Connect.

VoiceCall.Contact_Trace_Record_URL__c builds its link from:

TrueServe_Connect_Config__mdt.Default.Instance_Access_URL__c

Set the value to the environment's Connect instance access URL with no trailing slash, for example https://dcc-dev-main-connect.my.connect.aws. The formula appends the contact-trace-record path and VendorCallKey. Update this Custom Metadata record when deploying to another org instead of editing the formula.

Human-supervision approval Cases

The devsdo org-local Process_HITL_Escalation platform-event Flow creates or updates Cases raised by Human Supervision. Related_Conversation_Id__c receives the persisted TrueServe conversation UUID, while ANI is retained in SuppliedPhone. For a new Case, the Flow looks for a Contact across Phone, HomePhone, AssistantPhone, MobilePhone, and OtherPhone, trying both the incoming E.164 value and the same value without a leading +; on a match it assigns both ContactId and the Contact's AccountId. This dual comparison is required because Salesforce phone equality is storage-format sensitive (+1804… does not equal 1804…).

Out of scope

  • Amazon Connect CTR ingestion and field population
  • Contact Lens summaries, sentiment, quality, and recording availability
  • Telephony event fields such as queue timestamps, holds, disconnect reason, language, and queue name

Those values must be supplied by the SCV/SCRT integration or Amazon Connect pipeline before Salesforce automation can display them.