How service-cloud-voice/servicecloudvoicelambdas works
Purpose and deployment surface
ServiceCloudVoiceLambdas is an AWS serverless integration package for Salesforce Service Cloud Voice contact centers running on Amazon Connect. Its deployable entry surface is the Serverless Application Repository/SAM application at ServerlessApplication/ServiceCloudVoiceLambdas.yaml; supporting CloudFormation stacks provision Connect configuration, secrets, events, voicemail, realtime alerts, and bring-your-own-account/tenant variants under cloudformation/.
Contact-flow API adapters
Amazon Connect contact flows invoke Node.js Lambda handlers that bridge call lifecycle actions to Salesforce-facing APIs:
• Salesforce REST operations and phone-call flow handling: invokeSfRestApi/handler.js, invokeSfRestApi/sfRestApi.js, invokeSfRestApi/SFSPhoneCallFlow.js.
• Telephony Integration API operations: invokeTelephonyIntegrationApi/handler.js, invokeTelephonyIntegrationApi/telephonyIntegrationApi.js.
• Voice Feature Service integration: invokeVfsIntegrationApi/handler.js, invokeVfsIntegrationApi/vfsIntegrationApi.js.
These functions form the primary synchronous boundary between Connect flow attributes/events and external Salesforce services. Their config, secret, Axios-wrapper, and logging modules keep credentials, request transport, and operational behavior separated from handlers.
Call-event and record synchronization
Asynchronous call data is propagated to Salesforce through dedicated event handlers:
• Contact event handling: handleContactEvents/handler.js, handleContactEvents/utils.js.
• Contact Trace Record synchronization: ctrDataSync/handler.js, ctrDataSync/utils.js.
• Contact-data/transcript upload status and transfer: contactDataSync/handler.js, contactDataSync/transcriptUploader.js, contactDataSync/sfRestApi.js.
The control boundary is AWS-generated Connect/contact data on one side and Salesforce REST APIs on the other, with each Lambda owning event parsing and outbound synchronization.
Real-time and post-call analytics pipeline
The repository supports live and post-call conversational analytics:
• Kinesis Video Streams consumption trigger: kvsConsumerTrigger/kvs_trigger.js.
• Java streaming transcription service: kvsTranscriber/src/main/java/com/amazonaws/kvstranscribestreaming/KVSTranscribeStreamingService.java, kvsTranscriber/src/main/java/com/amazonaws/kvstranscribestreaming/TranscribedSegmentWriter.java.
• Contact Lens processing and consumer stages: contactLensProcessor/handler.js, contactLensConsumer/handler.js.
• Post-call analysis trigger: postCallAnalysisTrigger/handler.js, postCallAnalysisTrigger/telephonyIntegrationApi.js.
• Real-time alert processing: realtimeAlert/handler.js.
The likely staged flow is KVS audio → Amazon Transcribe streaming → persisted/transmitted transcript segments → Contact Lens or post-call signals → Salesforce telephony integration updates and alerts.
Voicemail processing pipeline
Voicemail is modeled as independent processing stages: voiceMailAudioProcessing/handler.js, voiceMailTranscribe/handler.js, and voiceMailPackaging/handler.js. These separate audio transformation, transcription, and final voicemail payload packaging. Voicemail infrastructure is defined centrally in cloudformation/VoiceMailStack.yaml.
Multi-organization variants
Dedicated multi-org Lambdas add tenant-aware routing/caching around the same contact-event, Contact Lens, post-call, and voicemail workflows: multiorgHandleContactEvents/handler.js, multiorgContactLensConsumer/handler.js, multiorgPostCallAnalysisTrigger/handler.js, and multiorgVoiceMailPackaging/handler.js. Provisioning and configuration support reside in cloudformation/MultiOrgConnectConfigurationStack.yaml and cloudformation/MultiorgProvisioningServiceStack.yaml.
Security, operations, and runtime boundaries
Node.js Lambda functions use reusable per-function dependency layers under layers/, while transcription is a Gradle/Java service under kvsTranscriber/. Secrets and authorization-key management are explicitly isolated in authKeysSSMUtil/index.js, authKeysSSMUtil/secretUtils.js, and cloudformation/SecretManagerStack.yaml, indicating AWS Systems Manager Parameter Store/Secrets Manager integration. A separate Python health-check application validates deployed resources and reports findings via healthCheck/healthcheck.py, healthCheck/validators/all_validators.py, and cloudformation/BYOAHealthCheckStack.yaml.
Main entry points: multiorgHandleContactEvents/handler.js Tenant-aware workflows · invokeSfRestApi/handler.js Contact-flow REST adapter · contactLensConsumer/handler.js Contact Lens consumer · ServiceCloudVoiceLambdas.yaml SAM application
Components 21
Deployment & Security
- SAM application · Deploys the serverless integration package.
ServerlessApplication/ServiceCloudVoiceLambdas.yaml - Secrets & auth keys · Isolates authorization keys and secret access.
authKeysSSMUtil/index.js - BYOA health checks · Validates deployed bring-your-own-account resources.
healthCheck/healthcheck.py
Connect to Salesforce
- Amazon Connect
- Salesforce services · Service Cloud Voice REST and telephony endpoints.
- Contact-flow REST adapter
invokeSfRestApi/handler.js - Telephony API adapter
invokeTelephonyIntegrationApi/handler.js - Voice Feature adapter
invokeVfsIntegrationApi/handler.js - Contact event sync
handleContactEvents/handler.js - CTR data sync
ctrDataSync/handler.js - Contact data & transcript sync
contactDataSync/handler.js
Analytics & Alerts
- KVS consumer trigger
kvsConsumerTrigger/kvs_trigger.js - Streaming transcriber · Streams audio transcription and writes transcript segments.
kvsTranscriber/src/main/java/com/amazonaws/kvstranscribestreaming/KVSTranscribeStreamingService.java - Contact Lens processor
contactLensProcessor/handler.js - Contact Lens consumer
contactLensConsumer/handler.js - Post-call analysis
postCallAnalysisTrigger/handler.js - Realtime alerts
realtimeAlert/handler.js
Voicemail
- Voicemail audio processing
voiceMailAudioProcessing/handler.js - Voicemail transcription
voiceMailTranscribe/handler.js - Voicemail packaging
voiceMailPackaging/handler.js
Multi-org Variants
- Tenant-aware workflows · Tenant-aware event, analytics, post-call, and voicemail routing.
multiorgHandleContactEvents/handler.js
Connections 33
- SAM application → Amazon Connect: provisions integration
- SAM application → Secrets & auth keys: deploys
- SAM application → Contact-flow REST adapter: deploys
- Amazon Connect → Contact-flow REST adapter: contact-flow invoke
- Amazon Connect → Telephony API adapter: contact-flow invoke
- Amazon Connect → Voice Feature adapter: contact-flow invoke
- Contact-flow REST adapter → Secrets & auth keys: loads credentials
- Telephony API adapter → Secrets & auth keys: loads credentials
- Contact-flow REST adapter → Salesforce services: REST operations
- Telephony API adapter → Salesforce services: telephony operations
- Voice Feature adapter → Salesforce services: voice features
- Amazon Connect → Contact event sync: contact events
- Amazon Connect → CTR data sync: trace records
- Contact event sync → Salesforce services: synchronize
- CTR data sync → Salesforce services: synchronize
- Contact data & transcript sync → Salesforce services: upload status and transcripts
- Amazon Connect → KVS consumer trigger: KVS audio
- KVS consumer trigger → Streaming transcriber: stream audio
- Streaming transcriber → Contact data & transcript sync: transcript segments
- Streaming transcriber → Contact Lens processor: transcript signals
- Contact Lens processor → Contact Lens consumer: Contact Lens output
- Contact Lens consumer → Post-call analysis: post-call signals
- Post-call analysis → Salesforce services: telephony updates
- Contact Lens consumer → Realtime alerts: realtime signals
- Amazon Connect → Voicemail audio processing: voicemail audio
- Voicemail audio processing → Voicemail transcription: processed audio
- Voicemail transcription → Voicemail packaging: transcript
- Voicemail packaging → Salesforce services: voicemail payload
- Tenant-aware workflows → Contact event sync: tenant-aware variant
- Tenant-aware workflows → Contact Lens consumer: tenant-aware variant
- Tenant-aware workflows → Post-call analysis: tenant-aware variant
- Tenant-aware workflows → Voicemail packaging: tenant-aware variant
- BYOA health checks → Amazon Connect: validates resources