External storage

CCAI Platform does not store any call session data, instead it leverages integration with external storage. Files can be written to Cloud Storage buckets or alternatively using the Secure File Transfer Protocol (SFTP) to an SFTP server. External storage can be configured in the External storage section within Developer settings.

Cloud Storage

Integration with Cloud Storage provides additional benefits including the ability to perform lifecycle management on stored files as well as automatic aging with retention policies to meet legal and regulatory requirements.

Before you begin

To setup external storage to Cloud Storage, you must meet the following requirements:.

  • A Google Cloud Service account with the Object Storage Admin role. For more information, see Service accounts.

  • A JSON service account key for the service account. You use this key in Set up authentication. See Create a service account key for more information on creating and downloading a service account key.

Set up Cloud Storage

To set up authentication, follow these steps:

  1. In the CCAI Platform portal, click Settings > Developer Settings. If you don't see the Settings menu, click Menu, and then click Settings > Developer Settings.

  2. Go to the External Storage pane, and then click the toggle to the on position.

  3. Under Server Setup, select Google Cloud.

  4. Under Authentication Method, select Service Account (Bucket Owner).

  5. Under Bucket Name, enter a bucket name.

  6. Under Key (JSON File), click Upload key to upload your JSON service account key.

  7. Click Save.

Set up SFTP storage

To set up SFTP storage, follow these steps:

  1. In the CCAI Platform portal, click Settings > Developer Settings. If you don't see the Settings menu, click Menu, and then click Settings > Developer Settings.

  2. Go to the External Storage pane, and then click the toggle to on position.

  3. Select SFTP Server.

  4. In the Host field, enter the URL or IP address of the SFTP server.

  5. In the Port field, enter the TCP port number that the SFTP server accepts connections on.

  6. In the Login User ID field, enter the login user ID for the SFTP server.

  7. Do one of the following:

    • If the SFTP server requires a password for authentication, enter it in the Password field.

    • If the SFTP server requires a private key for authentication, select the SSH Private Key checkbox and do the following:

      • In the Private Key field, enter the SSH private key.

      • In the Passphrase field, the private key passphrase.

  8. To specify a folder to store the data in, enter the folder path in the sftp:// field. The host and port number immediately follow sftp://.

  9. Click Save.

Dynamic folder path and file names

Dynamic external paths for external storage give you greater control over how you name and organize your call recordings, chat transcripts, voicemails, photos, videos, and co-browse files.

You can customize your storage options with unique folder paths and file naming conventions to meet your business needs. Using custom variables such as the date and session ID makes it easier to locate and identify specific recordings.

Custom variables can be specified at the time of recording to generate dynamic folder paths and file names that are unique and meaningful.

Select upload types

To select upload types, in the CCAI Platform portal go to Developer Settings > External Storage and check the boxes for preferred upload types. The following options are available:

  • Call recordings.

  • Chat transcripts.

  • Voicemails.

  • Media including photos and videos.

  • Co-browse sessions.

  • Metadata JSON files.

Use variables in path and filename formats

It is possible to use variables in the folder path. Additionally it is possible to configure the filename with the path for each file as well as enable or disable whether a certain artifact (upload type) is pushed into external storage. If you prefer not to customize your file locations, the system will automatically use the default values. You can also specify a file format for each file.

Variables can be CCAI Platform data points, such as session ID or session type, or custom fields passed into an outbound dialer. Some variables can come from the outbound dialer, such as domain ID.

For example, a path and filename could look like this: Company Domain Identifier\Date of call\Unique Call Identifier\Unique CallIdentifier _ Segment Start Time.wav. The variables would be Domain ID ({COMPANY_DOMAIN_ID}), date when the session started ({DATE}), segment start time ({SEGMENT_START_TIME}), and session start time ({SESSION_START_TIME}).

This feature is backward compatible, meaning that it is possible to construct the path and filename that follows the current naming convention.

Variable types

Format Example Output
Normal SEGMENT_START_TIME 01_05_17_PM
Dash -SEGMENT_START_TIME (note the - in the beginning of the variable name) -01_05_17_PM
Underscore _SEGMENT_START_TIME (note the _ in the beginning of the variable name) _01_05_17_PM
Campaign variables CAMPAIGN_Location New-York-City (campaign variable: New York City)

Variable and path replacement logic

Full file paths are built using the relative custom path and dynamic or static variable settings appropriate for the file type. If a variable doesn't exist or doesn't apply, an undef will be replaced.

  • Example text path: data/{BAD_VARIABLE}/{SEGMENT_START_TIME}/custom-test/file-{SESSION_ID}

  • Example output: data/undef/01_05_17_PM/custom-test/file-123.txt

    In this examples, the extension will be added according to the file. It is not required and will be removed if supplied.

Path parameters

Path parameters are the variables that can be used in a URL path to retrieve specific data related to a session, call, or chat.

The following path parameters are used to retrieve information related to a session, call or chat recording.

Parameter Variable Comment
Simple Session Type SIMPLE_SESSION_TYPE Call or chat or undef
Session Type SESSION_TYPE Unified call or chat values
Session ID SESSION_ID Call or chat ID
Upload Date UPLOAD_DATE Built at upload, this is the date the upload was attempted. Format is MM_DD_YYYY, for example 01_31_2022
Upload time UPLOAD_TIME Built at upload, this is the time the upload was attempted. Format is hh_mm_ss_AM/PM, for example 02_20_01_AM
Upload Year UPLOAD_YEAR Built at upload, this is the year the upload was attempted. Format is YYYY, for example 2022
Upload Month UPLOAD_MONTH Built at upload, the is the month the upload was attempted. Format is MM, for example 01
Upload Day UPLOAD_DAY Built at upload, this is the day the upload was attempted. Format is DD, for example 31
Date DATE Built at session start time, this is the session created date. Format is MM_DD_YYYY, for example 01_31_2022
Year YEAR Built at session start time, this is the session created year. Format is YYYY, for example 2022
Month MONTH Built at session start time, this is the session created month. Format is MM, for example 01
Day DAY Built at session start time, this is the session created day. Format is DD, for example 31
Session Start Time SESSION_START_TIME Session start time. Format is hh_mm_ss_AM/PM, for example 02_20_01_AM
Segment Start Time SEGMENT_START_TIME Only available for call recordings, this is the segment start time. Format is hh_mm_ss_AM/PM, for example 02_20_01_AM
Campaign Variables CAMPAIGN_<VAR_NAME> These variables come in from the campaign. They all are appended with CAMPAIGN_ in the CSV file headers. Spaces are changed to '_' in the variables. For example, "My Variable 1" would be converted to CAMPAIGN_MY_VARIABLE_1