Question: Why can't I see or play call recordings after setting up the Amazon Connect CTI Adapter for Salesforce?

I can't see or play call recordings in Salesforce after setting up the Amazon Connect CTI Adapter. I configured the AmazonConnectSalesforceLambda Serverless Application Repository package, but it's not working as expected. How do I troubleshoot the issue?Short descriptionIf the AmazonConnectSalesforceLambda Serverless Application Repository package isn't configured correctly, then calls recorded in Amazon Connect won't display or play in Salesforce.Two types of call recording and playback issues can occur when the AmazonConnectSalesforceLambda Serverless Application Repository package is misconfigured.The Contact Channel Analytics object isn't being created in the Salesforce dashboard.The Contact Channel Analytics object is created in Salesforce, but recordings are either not displaying or not playing.To troubleshoot call recordings not displaying or playing in Salesforce after setting up the Amazon Connect CTI Adapter, do the following:Verify that you've deployed the correct AmazonConnectSalesforceLambda Serverless Application Repository package for the Amazon Connect CTI Adapter version that you're using.Verify that you've deployed the AmazonConnectSalesforceLambda Serverless Application Repository package with the correct parameters.Verify that call recording streaming is activated in your AWS CloudFormation stack.Verify that call recording streaming is activated in your Amazon Connect contact flow.Verify that non-admin users are added to the AC_CallRecording permission set in Salesforce.Verify that the agent cleared the After Contact Work (ACW) state before they tried to playback the call recording.Verify that the Lambda functions in your AmazonConnectSalesforceLambda Serverless Application Repository package are invoking.Review the network calls made on the Salesforce dashboard to identify and troubleshoot any networking errors.For more information, see the following sections in the Amazon Connect CTI Adapter for Salesforce Lightning Installation Guide on GitHub:Setting up the Salesforce Lambdas manuallyCall recording streaming

ResolutionVerify that you've deployed the correct AmazonConnectSalesforceLambda Serverless Application Repository package for the Amazon Connect CTI Adapter version that you're usingThe Serverless Application Repository package won't work as expected if the version is different than the Amazon Connect CTI Adapter version that you're using.To upgrade from an earlier Amazon Connect CTI Adapter version, see Upgrading from an earlier version.Note: It's a best practice to upgrade the Amazon Connect CTI Adapter version, rather than installing earlier versions. If you choose to install an earlier version, make sure that you refer to the specific documentation for that version.Verify that you've deployed the AmazonConnectSalesforceLambda Serverless Application Repository package with the correct parametersIf the Serverless Application Repository package is deployed with incorrect parameters, it can cause its associated AWS Lambda functions to fail or not invoke as expected.To review and confirm your required parameters, follow the instructions in Setting up the Salesforce Lambdas manually.Verify that call recording streaming is activated in your AWS CloudFormation stackMake sure that the PostcallRecordingImportEnabled parameter is set to true in your AWS CloudFormation stack.For instructions, see Viewing stack information in the CloudFormation User Guide.Verify that call recording streaming is activated in your Amazon Connect contact flow1.    Be sure that the Set recording and analytics behavior contact block in your Amazon Connect contact flow has the Recording setting turned to On. For instructions, see How to set up recording behavior.2.    Make sure that the Set contact attributes contact block has the postcallRecordingImportEnabled setting configured as true.Note: You can verify the recordings appear in your Amazon Connect instance by reviewing the Contact Search page in the Amazon Connect console.Verify that non-admin users are included on the AC_CallRecording permission set in SalesforceNon-admin users must be added to the AC_CallRecording permission set in Salesforce to use call recording streaming.For instructions, see Adding users to the AC_CallRecording permission set.If you're using Amazon Connect CTI Adapter version 5.16+Also verify the following:The non-admin users are logged in to the Amazon Connect instance.The non-admin users have the required security profile permissions to access the recordings.Verify that the agent cleared ACW state before they tried to playback the call recordingAgents must clear ACW state before a Contact Trace Record (CTR) can be added to your Kinesis data stream.To view agents' past statuses, review your Amazon Connect instance's  real-time metrics report.Verify that the Lambda functions in your AmazonConnectSalesForceLambda Serverless Application Repository package are invokingTo view the aggregate metrics for the resources in your Serverless Application Repository package, do the following:1.    Open the Lambda console Applications page.2.    Choose serverlessrepo-AmazonConnectSalesforceLambda.3.    Choose Monitoring.If you don't see invocations for any of the associated Lambda functions1.    Verify that you're exporting contact records from Amazon Connect using the right Kinesis data stream. For instructions, see Activate data streaming for your instance.2.    Be sure that the correct Kinesis stream Amazon Resource Name (ARN) is configured in your CloudFormation stack. For instructions, see Viewing stack information in the CloudFormation User Guide.3.    Verify that the Kinesis trigger is activated for the serverlessrepo-xxxx-sfCTRTrigger-xxxx Lambda function.For more information, see Activate data streaming for your instance in the Amazon Connect Administrator Guide.If you do see invocations for the associated Lambda functionsReview each function's Amazon CloudWatch Logs to identify and resolve any Lambda function errors.For more information, see How do I troubleshoot Lambda function failures?Note: If one of your Lambda functions returns an Invalid credentials error, do the following:Verify that the correct Salesforce credentials are stored in AWS Secrets Manager. For instructions, see Store Salesforce credentials in AWS Secrets Manager.Verify that the SalesforceUsername and SalesforceHost parameters are configured correctly in the AWS CloudFormation stack. For instructions, see Viewing stack information in the CloudFormation User Guide.The following are the Lambda functions associated with creating the Contact Channel Analytics object:serverlessrepo-xxxx-sfCTRTrigger-xxxx is invoked by the Kinesis stream and processes the incoming CTRs. Based on its configuration, it calls other Lambda functions in the package.serverlessrepo-xxxx-sfContactTraceRecord-xxxx processes the CTR event.serverlessrepo-xxxx-sfExecuteTranscriptionSt-xxxx checks the CTR to see if the recording import or transcription is activated.serverlessrepo-xxxx-sfInvokeAPI-xxxx creates and accesses objects in the Salesforce dashboard by calling the Salesforce API.Review the network calls made on the Salesforce dashboard to identify and troubleshoot any networking errorsCreate an HTTP Archive (HAR) file that reproduces the call recording or playback issue. Then, use the HAR file from your browser to identify and troubleshoot any potential networking issues.

Related informationManaging applications in the AWS Lambda consoleIntelligent case management using Amazon Connect and Amazon Kinesis Data Streams (AWS Blog)