23.2. ECI Deployment Guide
  • 19 Jun 2024
  • 9 Minutes to read
  • Dark
    Light

23.2. ECI Deployment Guide

  • Dark
    Light

Article summary

ECI refers to the Salesforce feature Einstein Conversation Insights which is Salesforce's AI driven Insight equivalent offering.

This product is an integration with Salesforce, whereby in order to power the ECI feature Salesforce relies on us as a call recording provider for them to then produce transcriptions and data analysis.

It's important to note upfront that ECI is not compatible with Natterbox Insight and standard Natterbox call recordings, once enabled a user's call recordings will be consumed by Salesforce only meaning there is no method of a user accessing their recordings through the Natterbox platform for ECI.

How to enable ECI

Enabling ECI from Salesforce

Adding the Metadata entry in Salesforce

Deploy the following Media Provider XML into the Salesforce Org:

<?xml version="1.0" encoding="UTF-8"?> 

<CallCoachingMediaProvider xmlns="http://soap.sforce.com/2006/04/metadata"> <isActive>true</isActive> 

<providerDescription>Natterbox's solution for ECI.</providerDescription> <providerName>Natterbox</providerName> 

</CallCoachingMediaProvider>

See here on Salesforce guides on how best to do this.

This our recommended means of doing so, which uses Workbench :

  1. Open Workbench - CLICK HERE

  2. Choose the environment you’re installing into Production or Sandbox

  3. Choose a Salesforce API version which matches or is under the target Organisations API version - See HERE on how to fetch this from Salesforce

  4. Log in with your Salesforce account (using an Admin user)

  5. Navigate to Data → Insert

  6. Search for CallCoachingMediaProvider in the dropdown and pick ‘Single Record

  7. Hit Next

  8. Enter the name ‘Natterbox’ in the ProviderName box (must be exact match). The description can be whatever you like and the ConversationVendorInfoId can be left empty.

  9. Hit Insert

  10. The record should be saved correctly

Add ECI connected App

  1. From Setup, enter App Manager in the Quick Find box, and then select App Manager.

  2. Click New Connected App.

  3. Complete these fields in the Basic Information section (ensure the API name matches exactly)

    1. Connected App Name: ECI Connected App

    2. API Name: ECI_Connected_App

      1. Important: Use this exact name.

    3. Contact Email: [the email address you want to use]

  4. Select Enable OAuth Settings and complete these fields

    1. Set the callback URL to : https://dummy_url/services/authcallback/ECI_Auth_Provider

      1. Note the Callback URL will be replaced once the Auth Provider is configured

    2. Select the following OAuth Scopes

      1. Access content resources (content)

      2. Manage user data via APIs (api)

      3. Manage user data via Web browsers (web)

      4. Perform requests at any time (refresh_token, offline_access)

    3. Ensure that Require Secret for Web Server Flow Require Secret for Refresh Token Flow are both selected

  5. Hit Save

  6. Return to the App Manager and confirm the ECI Connected App is created

    1. Note it can up to 10 minutes to take effect.

  7. Click the dropdown in the ECI Connected App row and select Manage

  8. Click Edit Policies

  9. Complete these fields - All other fields can be left blank :

    1. Permitted Users: Admin approved users are pre-authorized

    2. P Relaxation: Relax IP restrictions

    3. Refresh Token Policy: Expire refresh token after 365 days

  10. Hit Save

  11. From the ECI Connected App page select Manage Policies

  12. Assign the Salesforce profiles you want to give ECI access to

    1. We recommend selecting Standard UserSystem Administrator, and any other profiles that use the connected app

  13. Hit Save

  14. Return the App Manager and in the ECI Connected App row and select View

  15. Click Manage Consumer Details to see the Consumer Key and Consumer Secret

  16. Verify your Salesforce user using the Salesforce security code

  17. The Consumer Key and Consumer Secret values are shown. Keep this window open, because these values are required to create the Auth Provider for the ECI Connected App.

Add ECI as an Authorized Provider

Add Einstein Conversation Insights (ECI) as an authorized provider from the Setup menu.

  1. From Setup, enter Identity in the Quick Find box, and then select Auth. Providers

  2. Hit New

  3. Select Salesforce for the Provider Type.

  4. Complete these fields with the specified information.

    1. Name: ECI Auth Provider

    2. URL Suffix: ECI_Auth_Provider

      1. Important: Use this exact name.

    3. Consumer Key: Add the Consumer Key from the previous task here.

    4. Consumer Secret: Add the Consumer Secret from the previous task here.

    5. Default Scopes: content api web refresh_token offline_access

  5. Hit Save

  6. The Callback URL can be obtained.

  7. Click onto the name of the newly created Auth provider

  8. Copy the Callback URL

  9. From the App Manager page, go to the ECI Connected Appand replace the dummy Callback URL value with the copied one.

    1. Setup

    2. App manager

    3. Click View ECI Connected App

    4. Click Edit

    5. Paste over the Callback URL

  10. Hit Save.

Changes can take up to 10 minutes to take effect. Deleting a parent org also deletes all connected apps with OAuth settings enabled.

Add ECI Named Credentials

Add the named credentials for ECI from the Setup menu.

  1. From Setup, enter Named Credentials in the Quick Find box, and then select Named Credentials

  2. Click the dropdown next to New and select New Legacy

  3. Complete these fields with the specified information

    1. Label: ECI Named Credential

    2. Name: ECI_Named_Credential

    3. URL: https://your_domain

      1. Replace “your_domain” with your actual domain that is obtained from the Domains page in Setup. It’s labeled Current My Domain URL

    4. HTTPS Option column.

    5. Identity Type: Named Principal

    6. Authentication Protocol: OAuth 2.0

    7. Authentication Provider: ECI Auth Provider

    8. Scope: content api web refresh_token offline_access

    9. Start Authentication Flow on Save: selected

    10. Generate Authorization Header: selected

  4. Hit Save

  5. A login and an authorization page are shown. Follow the process to validate the account, and then click Authorize

    1. Note - if a redirect error is thrown when saving, return to the Named Credentials list and edit the existing entry and double check the URL is set to the Org’s Domain correctly before saving again

  6. Return to the Named Credentials page and verify that the Authentication Status now reads Authenticated with [your integration user with admin permissions]

Add the AWS S3 Named Credentials

Add the AWS named credentials for ECI from the Setup menu.

  1. From Setup, enter Named Credentials in the Quick Find box, and then select Named Credentials

  2. Click the dropdown next to New and select New Legacy

  3. Complete these fields with the specified information.

    1. Label: NatterboxS3AWS

    2. Name: NatterboxS3AWS

    3. URL:  https://eci-prod.s3.eu-west-1.amazonaws.com/

    4. Identity Type: Named Principal

    5. Authentication Protocol: AWS Signature Version 4

    6. AWS Access Key ID: <provided by NB>

    7. AWS Secret Access Key: <provided by NB>

    8. AWS Region: eu-west-1

    9. AWS Service: s3

    10. Generate Authorization Header: Selected

  4. Hit Save

6. Enabling Users with ECI (Steps to be completed by Salesforce Admin)

  1. Now ECI is ready, identify the users you wish to use with ECI

  2. Provide all users with the ECI permission set

7. Add the ECI player Salesforce component to the Voice Object (Steps to be completed by Salesforce Admin)

  1. Navigate to the Lightning App Builder

  2. Create or Edit a record for the Voice Call Record Page

  3. Add the component Call Recording Player

  4. Hit Save

Note the ECI service does introduce a new Scheduled job which handles the retries of ECI recordings which have failed to be processed, but this job automatically schedules itself and so it does not need to be turned on from the Natterbox App Admin Home : 

FAQ

Will ECI be a chargeable integration?

Yes, please reach out to your account manager to discuss subscribing to ECI.

What limitations does the ECI service have?

Please see here for the full list of limitations from Salesforce HERE

Why has my ECI service stopped?

If you've suspended, removed or changed the creds of the user that authenticated the Named Credentials you will have to re-auth the named credentials.

This can be done by re-saving the Named Credentials with a user who has the ECI integration license.

How long does it take to process a call recording for a user?

The process relies on the Call Reporting Object being correctly populated in Salesforce after which it's then dependent on the Salesforce ECI service completing the job, so end to end it should not take more than an hour to process a call.

If a failure is encountered a further 20 minutes will be added on for the call to be retried, which will be attempted two more times if further failures are encountered over 48 hours (provided that the ECI Upload Service Scheduled Job is running).

Is ECI compatible with Insight and call recordings?

No, ECI works separately to Natterbox Insight and call recordings. All ECI generated call recordings are solely managed via Salesforce and cannot be accessed from the Natterbox platform.

Is ECI compatible with Natterbox call recordings?

Yes, but there are limitations around call recordings when it comes to call transfers.

Currently it will not be possible to fully record both the agent and customer conversation for both ECI and Natterbox call recordings, each service will only be able to accept one half of the call.

i.e. ECI can only be configured to record and process the customer's audio leg and Standard call recording can only be configured to record the agent's audio leg.

What does this mean for attended transfers?

It means no one service can capture the entirety of the call (i.e. the first agent to customer leg, the consult leg, the completed transfer leg between the final two parties).

Considering ECI doesn't support processing the consult leg, it's recommended to configure the standard call recording to record the agent's leg of the call and ECI to record the customer leg of the call, this way all of the call is covered across the two services so that :

  • Audio associated with the customer is saved and stored in Salesforce by ECI

  • Audio associated with the agent is saved and stored on the Natterbox platform

Quick reference when configuring a routing policy :

Routing Policy

ECI Recording Leg

Standard Recording Leg

Inbound Call Policy

This Leg (to record the customer)

Other Leg (to record the agent)

Outbound Call Policy

Other Leg (to record the customer)

This Leg (to record the agent)

What callflows are supported?

Salesforce only supports inbound and outbound calls in ECI. 

Please note currently Salesforce does not support internal calls (i.e. agent to agent), this also includes the consult leg of an attended transfer call.

External calls are also not currently supported, meaning if two customers/external non-Salesforce parties are connected to each other via the Natterbox platform, this call will not be recorded or processed by ECI.

What does this mean for attended transfers?

The consult leg of an attended transfer is not provided with a Salesforce Voice Call object, meaning that the recorded part of the conversation is not processed by ECI, the only parts that get processed are :

  1. The first leg of the call between the agent and the customer

  2. The last leg of the call between the customer and the connected party (likely a second agent)

Note if the last leg of the call consists of two external non-Salesforce parties (i.e. two customers), this leg of the call will not be recorded or processed by ECI.

Is it possible to use a custom S3 endpoint for ECI recordings?

No, with this version that is unsupported, all call recordings will be initially managed by Natterbox and ultimately sent and stored in Salesforce.

How are call recordings stored and processed by Natterbox?

Natterbox calls forwards all call recordings unencrypted and uncompressed directly to Salesforce, the call recordings are only ever stored briefly if the ECI service is temporarily unavailable.

Where is the data processed?

From a Natterbox point of view all existing call processing will operate within your nearest data centre and then the call recording will be temporarily stored in an AWS S3 bucket located in Ireland as the service waits for Salesforce to process the call.

After which Salesforce will store call recordings from the EU in a data center based in Germany and for the US and the rest of the world all call recordings will be stored in a data center based in the US.

Internal Troubleshooting

Why is only one speaker appearing on the call recording in Salesforce?

Call recordings sent to Salesforce need to be in stereo in order for the speakers to be distinguished from each other, ensure the step to enable stereo via Toolbox has been completed

Why hasn't my ECI call been populated?

If the Call Reporting record associated with your call is not available after an hour, ECI relies on this object being available and the processing won't be complete, please ensure the Call Reporting scheduled job has been enabled in Salesforce.

If the Call Reporting record is available, fetch the ID of the call (referred to as the UUID) and then review the Natterbox App's error logs to see if the UUID of the call your looking for is present as an error will be present if ECI had failed to process your call.

Why was my call recording playable and now no longer available from the Natterbox App?

Although the ECI call recording is transient data, it will be available for playback from the Natterbox App for a short while as the service waits for the ECI processing to complete, after which the recording will be cleaned up and removed meaning the option to play will remain.


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.
ESC

Eddy AI, facilitating knowledge discovery through conversational intelligence