Using a Custom S3 Bucket to Store Call Recordings
Customers who wish to store their Call Recording files directly can configure a custom S3 Bucket integration. Once configured, when a Call Recording is created by the Revenue.io platform, it is pushed to the S3 Bucket of your choosing. When configuring your S3 Bucket, you’ll configure access to Revenue.io so that we can provide continuity and provide recordings for review and coaching via our Admin Console and Conversation AI coaching platform.
Configuring your S3 Bucket
In order to have RingDNA send call recordings to your own location, you will need to set up your own S3 bucket first.
Take special note of the official AWS documentation concerning bucket names:
http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
Internally, our application uses virtual hosted–style buckets and SSL. This means dots cannot be used in the bucket names. Doing so will create a compatibility issue with our application. Amazon’s S3 management tools will not enforce this restriction. Please be aware of this particular naming issue.
In addition, you will also need to apply a bucket policy. The easiest way to do this is via the AWS console, but the S3 command line or other tools should work as well. This policy is what allows your org to retain ownership and control of the bucket, but allow access for our application - and ONLY the account associated with our application - to use the bucket for storage.
Example Policy
Here is an example policy for a custom bucket named “sample-bucket”. Please review this carefully and substitute “sample-bucket” with your custom bucket name:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::103850359708:root"
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::sample-bucket"
},
{
"Sid": "Allow GETs, DELETEs, and PUTs inside bucket",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::103850359708:root"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::sample-bucket/*"
}
]
}The process to configure your Custom S3 Bucket Integration
Once you have your Custom S3 Bucket in place, you will need to work with the Revenue.io support team to complete the integration. Here you’ll need to provide the following information to our team.
Step 1 - Determining what you want to Migrate
You’ll first need to provide the criteria for what recordings you need to be migrated.
- If you are looking to migrate future or past recordings?
- If you are migrating past recordings how far back do you want the past recordings to go?
- Ex. 3 months, 6 months, etc.
- What duration of calls are you looking for?
- Ex. calls over 60 seconds, etc
Step 2 - Custom S3 Bucket Information
Once you have determined the scope of your migration, you’ll need to provide your S3 Bucket name to the Revenue.io team.
Please reach out to support@revenue.io or your Customer Success Manager to submit the request to set up your integration.
Step 3 - Integration and Scoping
Based on the number of impacted call recordings to migrate, the Revenue.io team will provide an estimated time to complete your integration which will be communicated via either Revenue.io Support or your Customer Success Manager.
Step 4 - Confirmation
Once the Revenue.io support team has configured your S3 Bucket in our Admin console, we’ll work with you to ensure that you can see and play the recordings!
Configuring Object Ownership for External Application Access
If you are using an external application to access your call recordings, it is required that you complete the steps below to ensure proper permissions to the S3 bucket:
S3 Object Ownership enables you to take ownership of new objects that others upload to your bucket with the bucket-owner-full-control canned access control list (ACL). This section describes how to set Object Ownership using the AWS Management console.
Setting Object Ownership to bucket owner preferred on an S3 bucket
- Sign in to the AWS Management Console and open the Amazon S3 console at https://console.aws.amazon.com/s3/.
- In the Buckets list, choose the bucket that you want to enable S3 Object Ownership for.
- Choose the Permissions tab.
- Choose Edit under Object Ownership.
- Choose Bucket owner preferred, and then choose Save.
With the above steps Object Ownership will take ownership of any new objects that are written by other accounts with the bucket-owner-full-control canned ACL.
File Format and Name Structure
Recordings are stored in WAV format as a dual-channel recording with the agent’s voice on the left channel.
The file names are a reference to the Salesforce TaskID and RingDNA Call ID. This makes it easier to identify calls in your S3 bucket and relate them to activity in Salesforce.
{sFTaskID}-{callId}.wav