AWS Connect Pindrop Integration Guide

Similar documents
Amazon Simple Notification Service. CLI Reference API Version

AWS Service Catalog. User Guide

Amazon Connect. User Guide

AWS Client VPN. User Guide

Amazon Virtual Private Cloud. Getting Started Guide

Video on Demand on AWS

Community Edition Getting Started Guide. July 25, 2018

AWS Quick Start Guide: Back Up Your Files to Amazon Simple Storage Service. Quick Start Version Latest

Amazon Virtual Private Cloud. VPC Peering Guide

Amazon Virtual Private Cloud. User Guide API Version

Amazon Connect - SpiceCSM Automated Reader Integration User Guide

Amazon Glacier. Developer Guide API Version

Amazon WorkDocs. Developer Guide

AWS CloudFormation. API Reference API Version

AWS Serverless Application Repository. Developer Guide

AWS Elemental MediaStore. User Guide

AWS Elemental MediaLive. User Guide

AWS SDK for Node.js. Getting Started Guide Version pre.1 (developer preview)

NICE Desktop Cloud Visualization. User Guide

Amazon Simple Notification Service. API Reference API Version

SAS Workflow Manager 2.1: Quick Start Tutorial

AWS Tools for Microsoft Visual Studio Team Services: User Guide

Amazon WorkMail. User Guide Version 1.0

Amazon WorkSpaces Application Manager. User Guide

Securely Access Services Over AWS PrivateLink. January 2019

FunctionGraph. Best Practices. Issue 05 Date HUAWEI TECHNOLOGIES CO., LTD.

ForeScout CounterACT. (AWS) Plugin. Configuration Guide. Version 1.3

Amazon WorkMail. User Guide Version 1.0

Amazon Simple Notification Service. Getting Started Guide API Version

AWS Elemental MediaPackage API Reference. API Reference

Amazon MQ. Developer Guide

Amazon WorkDocs. Administration Guide

Amazon Glacier. Developer Guide API Version

Software as a Service (SaaS) Quick Start

Amazon Glacier. Developer Guide API Version

AWS Elemental MediaPackage. User Guide

IoT Device Simulator

PBXware. version Changelog

Amazon Simple Service. API Reference API Version

Corporate Office. Copyright and Trademarks. Release Notice. VirtualSite Solutions LLC Westmoor Drive Westminster, CO USA

exchange Call Center Agent Guide

ForeScout Amazon Web Services (AWS) Plugin

12/05/2017. Customer Service Management

At Course Completion Prepares you as per certification requirements for AWS Developer Associate.

Accessing the Progress OpenEdge AppServer. From Progress Rollbase. Using Object Script

Amazon Mechanical Turk. API Reference API Version

Best Practices for Cloud Security at Scale. Phil Rodrigues Security Solutions Architect Amazon Web Services, ANZ

IBM Rational Synergy DCM-GUI

Netflix OSS Spinnaker on the AWS Cloud

Getting Started with AWS Security

Cisco Encryption

Zombie Apocalypse Workshop

AWS Lambda + nodejs Hands-On Training

Xerox Connect App for Blackboard

Healthcare Database Connector

Red Hat CloudForms 4.6

Lambda Architecture for Batch and Stream Processing. October 2018

The Power of InRule. InRule is Designed for Real-World Scenarios. Write, Manage and Execute Business Rules

BLACKBERRY SPARK COMMUNICATIONS PLATFORM. Getting Started Workbook

Amazon Pinpoint. REST API Reference

Building a Modular and Scalable Virtual Network Architecture with Amazon VPC

AWS Lambda: Event-driven Code in the Cloud

OpenShift Dedicated 3 Release Notes

Queue Callback Module

Amazon ElastiCache. User Guide API Version

Red Hat CloudForms 4.6

Installation Guide. 3CX CRM Plugin for ConnectWise. Single Tenant Version

Amazon Simple Workflow Service. API Reference API Version

Getting notified by the Microsoft Graph with Webhooks. Elio Struyf U2U MVP September 9th, 2017

ViGo Architecture and Principles. Mobile Voice Biometrics as-a-service

Amazon CloudWatch. Developer Guide API Version

Five9 Plus Adapter for Oracle Service Cloud

Monitoring Serverless Architectures in AWS

VMware Notification Service v2.0 Installation and Configuration Guide Configure ENS2 for cloud and on-premises deployments

TIBCO Cloud Integration Security Overview

VMware Notification Service v2.0 Installation and Configuration Guide Configure ENS2 for cloud and on-premises deployments

Red Hat CloudForms 4.5 Integration with AWS CloudFormation and OpenStack Heat

Securing Amazon Web Services (AWS) EC2 Instances with Dome9. A Whitepaper by Dome9 Security, Ltd.

AWS Snowball: User Guide

Red Hat CloudForms 4.6

Serverless Architectures with AWS Lambda. David Brais & Udayan Das

Siebel CTI Administration Guide. Siebel Innovation Pack 2015, Rev. A October 2015

HashiCorp Vault on the AWS Cloud

VMware Notification Service v2.0 Installation and Configuration Guide Configure ENS2 for cloud and on-premises deployments

Swift Web Applications on the AWS Cloud

Chatter Answers Implementation Guide

October J. Polycom Cloud Services Portal

AWS Connected Vehicle Cloud

Administrator Manual. Last Updated: 15 March 2012 Manual Version:

Application Notes for Configuring the ADTRAN NetVanta UC Server with Avaya IP Office 6.1 Issue 1.0

New Feature Highlights

Amazon AppStream 2.0: SOLIDWORKS Deployment Guide

Getting Started with the Aloha Community Template for Salesforce Identity

ForgeRock Identity Management Core Concepts IDM-400 Course Description

AWS Lambda. 1.1 What is AWS Lambda?


AWS Quick Start Guide. Launch a Linux Virtual Machine Version

VMware Notification Service v2.0 Installation and Configuration Guide Configure ENSv2 for cloud and on-premises deployments

Five9 Virtual Contact Center

Oracle Communications WebRTC Session Controller

Transcription:

INTEGRATION GUIDE AWS Connect Pindrop Integration Guide AMAZON CONNECT PINDROP Users should be familiar with Amazon Connect and Amazon Web Services (AWS) prior to leveraging the Pindrop service. Please refer to the Amazon Connect User Guide and the AWS Lambda Developer Guide for detailed information on both services. Pindrop has created an integration with AWS Connect that enables customers to detect risky behavior on every incoming call. Before integrating, please contact Pindrop for pricing information and access to the service via an API key. ARCHITECTURE Figure 1. Dataflow diagram of Pindrop architecture within Amazon Connect CONFIGURING SERVICE USING THE CLOUD FORMATION TEMPLATE The AWS CloudFormation template for Pindrop service simplifies provisioning and management on AWS. The Pindrop template can be used to easily configure Pindrop Service within Amazon Connect. Two values are required to configure Pindrop service using the CloudFormation template:

1. An API Key to include in the API calls to Pindrop 2. The Pindrop API endpoint Both of these values can be furnished to customers after completing the new customer registration process with Pindrop at https://www.pindrop.com/pindrop-amazonconnect/. CONFIGURING SERVICE MANUALLY STEP 1 - NOTIFY PINDROP OF CALL The Pindrop service requires a notification as soon as the call starts to initiate the fraud analysis process. A notification to Pindrop can be made by invoking an AWS Lambda function via the Contact Flow Editor. Prior to modifying the Contact Flow - create a new AWS Lambda function with a Node.js runtime. The CreateCall.js Lambda function can be found in Appendix A. Within the Lambda UI, the Lambda function role defines the permissions for the CreateCall.js Lambda function. The role should be set according to your own security policies - however, note that the script requires outbound HTTP access. Figure 3. Invoke AWS Lambda function connected to the call entry point Edit the new function with the information found in Figure 4 below. To invoke the proper Lambda function, enter the Amazon Resource Name of the Create Call Lambda function under the Function ARN section. The Call Start function requires two input parameters, an API key (ApiToken) and the destination URL (BaseUrl) for the API requests. Pindrop will provide both of these inputs at the time of integration. Once the function is created, return to the AWS Connect service and drag and drop the Invoke AWS Lambda Function box into the contact flow (Figure 2) and connect it to the Entry point (Figure 3) Figure 2. Invoke AWS Lambda function within the AWS Connect Contact Flow Editor Figure 4. Invoking the Call Start Lambda function pindrop.com 866.245.4045 1

STEP 2 - RETRIEVE RISK SCORE During a caller s interaction with the contact center, Pindrop can assess the risk of the caller via an API request to the Pindrop cloud. The API call to identify risky behavior is typically executed at key transitions, for example, after answering a KBA, or before transferring to speak to an agent. API requests should be made further along in the IVR workflow - allowing Pindrop to analyze as much of the call as possible to provide better risk detection results. During the integration process, Pindrop Solutions Architects can work with your staff to identify the best points within the call flow to initiate the API requests. STEP 3 - OPERATIONALIZING THE RISK SCORE Once the Pindrop service returns the risk score for a caller, the contact flow can be modified to handle the caller based on the risk score, including showing the risk score to an agent via the Amazon Connect Contact Control Panel (CCP). To action off of the risk results, the output from the Lambda function needs to be set as a usable variable within the Contact Flow Editor. Drag and drop the Set contact attributes box into the contact flow and connect it to the Fetch Risk Lambda function (Figure 5). API requests to the Pindrop cloud are made directly from Lambda function calls within the Contact Flow Editor. The FetchRisk.js Lambda function can be found in Appendix B. Similar to the Create Call function in Step 1 - users are required to create the Lambda function, and keep note of the Function ARN to reference within the Contact Flow Editor. The same fields in Figure 4 will be required when invoking the Fetch Risk Lambda function. Connect must be granted the permission to invoke each lambda function. aws lambda add-permission --function-name function:{name of Function} \ --statement-id 1 --principal connect.amazonaws.com --action lambda:invokefunction \ --source-arn {ARN of Amazon Connect} \ --source-account {Account Number} Figure 5. Processing the risk score By default, the Lambda function returns the risk score of a caller into a RiskScore attribute and a flag to indicate a high risk caller (IsHighRisk). Modify the new Set contact attributes to store the results of the RiskScore into a new Destination Key. In our example (Figures 6 & 7), we will store the risk score into a RiskScore variable and the high risk flag into the IsHighRisk variable. Example: aws lambda add-permission --function-name function:callstart \ --statement-id 1 --principal connect.amazonaws.com --action lambda:invokefunction \ --source-arn arn:aws:connect:us-east- 1:123456789012:instance/def1a4fc-ac9d-11e6-b582-06a0be38cccf \ --source-account 123456789012 One must use the Amazon CLI to grant this permission. For more information, see http://docs.aws.amazon.com/ connect/latest/adminguide/connect-lambda-functions. html Figure 6. Setting the RiskScore attribute Drag and drop a second Set contact attributes box into the contact flow and connect it to the previous Set contact attributes (Figure 5) to take action on if a caller is flagged as high risk. Similar to setting the RiskScore attribute, repeat 2 pindrop.com 866.245.4045

the process for IsHighRisk (Figure 7). Figure 7. Setting the IsHighRisk attribute To specifically condition off of the results of the IsHighRisk attribute, drag and drop a Check contact attributes function into the Contact Flow Editor (Figure 5). Modify the Check contact attributes function to check the condition of the IsHighRisk attribute (Figure 8). Note: A high risk caller, by default, is any caller with a risk score greater than 0.50. To configure the risk weights, please reach out to Pindrop to access the API Reference Guide whitepaper. The RiskScore attribute may also be conditioned off of rather than the ishighrisk attribute. ABOUT PINDROP Pindrop solutions are leading the way to the future of voice by establishing the standard for security, identity, and trust for every voice interaction. Pindrop solutions protect some of the biggest banks, insurers, and retailers in the world using patented technology that extracts an unrivaled amount of intelligence from every call encountered. Pindrop solutions help detect fraudsters and authenticate callers, reducing fraud and operational costs, while improving customer experience and protecting brand reputation. Pindrop, a privately held company, headquartered in Atlanta, GA, was founded in 2011 and is venture-backed by Andreessen Horowitz, Citi Ventures, Felicis Ventures, CapitalG, GV, and IVP. For more information, please visit pindrop.com. Copyright 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon s trademarks and trade dress may not be used in connection with any product or service that is not Amazon s, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon. Figure 8. Checking if a caller was flagged as High Risk The output of the Check contact attributes function can then be leveraged to route the caller appropriately. In Figure 5 above, our example plays a prompt to the caller if the IsHighRisk result equaled true, and transfers the caller to a queue if the IsHighRisk flag was false. As mentioned above, the IsHighRisk flag as well as the raw RiskScore can be shown to an agent via the Amazon Connect CCP. pindrop.com 866.245.4045 3

APPENDIX A - CALL START Copy and paste the following Node.js code into the Call Start Lambda function. APPENDIX B - FETCH RISK Copy and paste the following Node.js code into the Fetch Risk Lambda function. const util = require( util ); var https = require( https ); exports.handler = (event, context, callback) => { console.log( Fetching risk score, invoked with + util. inspect(event, {showhidden: false, depth: null})); var apitoken = event.details.parameters.apitoken; var contactid = event.details.contactdata.contactid; https.get({ hostname: event.details.parameters.baseurl, path: /v1/interaction/ + contactid + /risk, headers: { Authorization: Bearer + apitoken, function(res) { var responsestr = ; res.on( data, function (chunk) { responsestr = responsestr + chunk; res.on( end, function() { console.log( Got status code + res.statuscode +, body + responsestr); r = JSON.parse(responseStr); callback(undefined, { RiskScore : r.data.risk_score, IsHighRisk : r.data.is_high_risk, RiskReasons : r.data. risk_reasons }).on( error, function(e) { console.log( Got error: + e.message); callback(undefined, { }; const util = require( util ); var https = require( https ); exports.handler = (event, context, callback) => { console.log( Creating call, invoked with + util. inspect(event, {showhidden: false, depth: null})); var apitoken = event.details.parameters.apitoken; var contactid = event.details.contactdata.contactid; var source = event.details.contactdata. CustomerEndpoint.Address; var destination = event.details.contactdata. SystemEndpoint.Address; var now = new Date().toISOString(); var req = https.request({ hostname: event.details.parameters.baseurl, method: PUT, path: /v1/interaction/ + contactid +?event=call_ start., headers: { Authorization: Bearer + apitoken, function(res) { console.log( Got response: + res.statuscode); res.on( data, function (chunk) { console.log( BODY: + chunk); res.on( end, function() { console.log( END ); callback(undefined, { }).on( error, function(e) { console.log( Got error: + e.message); callback(undefined, { req.on( error, function(e) { console.log( problem with request: + e.message); callback(undefined, { req.write(json.stringify({ interaction_id: contactid, source: source, destination: destination, start_utc: now. substring(0, now.length - 1), end_utc: now.substring(0, now.length - 1)})); req.end(); }; 4 pindrop.com 866.245.4045