Amazon Connect 고객 센터의 에이전트가 특정 전화번호로 발신 통화를 걸지 않도록 하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 12월 16일

Amazon Connect 고객 센터의 에이전트가 특정 국가나 프리미엄 요금 전화번호로 전화를 걸지 못 하게 하고 싶습니다. 이러한 통화를 차단하려면 어떻게 해야 합니까?

간략한 설명

아웃바운드 귓속말 흐름 고객 응대 흐름에서 전화 걸기가 허용되는 전화번호인지 확인해주는 AWS Lambda 함수를 호출합니다. 허용되지 않는 전화번호일 경우, Amazon Connect StopContact API를 사용하여 연락을 차단합니다.

참고: 이 문서의 해결 방법에는 다음과 같은 제한 사항이 있습니다.

  • 대기 중인 콜백은 차단할 수 없습니다. 에이전트가 콜백을 시작할 때 아웃바운드 속삭임 흐름을 통해 전달된 연락처 ID는 실제 연락처 ID가 아닙니다.
  • Lambda 함수가 호출되지 않으면 통화를 차단할 수 없습니다. 함수가 실패하면 해당 연락은 고객 응대 흐름의 오류 분기를 따르고 통화가 중지되지 않습니다.
  • 기본적인 예시는 다음과 같습니다. 프로덕션 환경의 경우, 사용 사례와 에이전트의 전화 걸기 권한에 맞게 설정을 사용자 지정합니다.

해결 방법

Lambda 함수 생성

1.    원하는 런타임을 사용하여 Lambda 함수를 생성합니다. 다음에 대해 Amazon Connect에서 수신되는 JSON 요청을 검사하는 함수 로직을 포함합니다.

  • 상담원 사용자 이름("속성" 아래)
  • 현재 연락처 ID("ContactId")
  • 전화를 건 전화번호("CustomerEndpoint" 아래)
  • 최초 연락처 ID("InitialContactId")
  • 고객 센터의 Amazon 리소스 이름(ARN) ("InstanceARN")

자세한 내용은 사용 가능한 연락처 속성 및 해당 JSONPath 참조 목록을 참조하십시오. Lambda 함수에 대한 JSON 요청의 예는 고객 응대 흐름에서 Lambda 함수 호출 단원을 참조하십시오.

팁: 사용 사례에 맞게 함수 코드에 특정 로직을 추가하십시오. 예를 들어 에이전트 전화 걸기 권한의 내부 데이터베이스에 대해 고객 응대 속성을 검사할 수 있습니다. 자세한 내용은 Lambda 함수 및 속성 단원을 참조하세요.

2.    함수에는 Amazon Connect StopContact API에 대한 호출도 포함되어야 합니다. API 호출에서 중지하고자 할 연락처의 "ContactId"와 "InstanceId"를 지정합니다.

중요: 충분한 권한과 함께 AWS Identity and Access Management(IAM) 정책을 함수의 실행 역할에 첨부하여 StopContact API를 호출해야 합니다. 다음 예시 JSON 정책 문서에는 API 호출을 위한 기본 권한이 포함됩니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "StopContactPermission",
            "Effect": "Allow",
            "Action": "connect:StopContact",
            "Resource": "*"
        }
    ]
}

예제 Python(Boto3) 함수 코드

참고: 이 예시 코드에는 차단할 번호를 식별하기 위한 조건이 포함됩니다. 해당 번호가 요청된 콜백 번호인 경우, 함수는 API 오류 및 패스스루로 처리합니다.

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0

import boto3
from botocore.exceptions import ClientError
connect = boto3.client('connect')

def lambda_handler(event, context):
    response = {
            'phoneNumberBlockerMessage': 'Passing through AmazonConnectPhoneNumberBlocker. No contact is blocked.'
    }

    try:
            if event['Details']['ContactData']['CustomerEndpoint']['Address'] == '<telephone-number-condition>':
                # Stop contact here

                connect.stop_contact(
                    ContactId = event['Details']['ContactData']['InitialContactId'],
                    InstanceId = event['Details']['ContactData']['InstanceARN'].split('/')[1]
                )
                response = {
                    'phoneNumberBlockerMessage': 'Call is blocked.'
                }
    except ClientError as e:
            if e.response['Error']['Code'] == 'ContactNotFoundException':
                response = {
                    'phoneNumberBlockerMessage': 'This is either a callback contact or contact ID does not exist, contact pass through.'
                }
            else:
                # Handle other error
                pass
    return response

Lambda 함수를 인스턴스에 추가

Amazon Connect 인스턴스에 Lambda 함수 추가 단원의 지침을 따르십시오.

아웃바운드 귓속말 고객 응대 흐름 생성

중요: 고객 응대 흐름을 생성 및 편집하려면 보안 프로필에 권한을 충분히 보유한 사용자로 Amazon Connect 인스턴스에 로그인해야 합니다.

1.    액세스 URL(https://alias.awsapps.com/connect/login 또는 https://alias.awsapps.com/connect/login)을 사용하여 Amazon Connect 인스턴스에 로그인합니다.
참고: 별칭인스턴스 별칭으로 변경합니다.

2.    좌측 탐색 창에서 [라우팅] 위로 마우스를 가져간 다음 [고객 응대 흐름]을 선택합니다.

3.    [고객 응대 흐름(Contact flows)] 페이지에서 [고객 응대 흐름 생성(Create contact flow)] 옆에 있는 화살표를 선택한 다음 [아웃바운드 귓속말 흐름 생성(Create outbound whisper flow)]을 선택합니다.

4.    고객 응대 흐름 디자이너에서 이름 입력(Enter a name)에 고객 응대 흐름의 이름을 입력합니다. 예: 아웃바운드 귓속말(중지)

5.    저장(Save)을 선택합니다.

자세한 내용은 새 고객 응대 흐름 생성을 참조하세요.

통화 속성 설정 블록 추가

이 블록을 구성하여 에이전트의 사용자 이름을 가져오고, 이를 Lambda로 보내 구문 분석을 실행합니다.

1.    고객 응대 흐름 디자이너에서 설정(Set)을 펼칩니다.

2.    고객 응대 속성 설정 블록을 캔버스로 끌어 놓습니다.

3.    블록 제목(통화 속성 설정)을 선택합니다. 블록의 설정 메뉴가 열립니다.

4.    저장할 속성(Attribute to save)에서 속성 사용(Use attribute)을 선택합니다. 이어서, 다음 작업을 수행합니다.
[대상 키]에는 키 이름을 입력합니다. 예: agent_username.
[유형]에서 [상담원]을 선택합니다.
[속성]에서 [사용자 이름]을 선택합니다.

5.    저장(Save)을 선택합니다.

AWS Lambda 함수 호출 블록 추가

1.    고객 응대 흐름 디자이너에서 [통합]을 펼칩니다.

2.    [AWS Lambda 함수 호출] 블록을 캔버스로 끌어 놓습니다.

3.    블록 제목(Invoke AWS Lambda function)을 선택합니다. 블록의 설정 메뉴가 열립니다.

4.    [함수 ARN]에서 [함수 셀렉트]를 선택합니다. 그런 다음 인스턴스에 추가한 Lambda 함수를 선택합니다.

5.    (선택 사항) [제한 시간(최대 8초)]에 Amazon Connect가 시간 초과하기까지 Lambda로부터 응답을 받기 위해 대기하는 시간(초)을 입력합니다.

6.    저장(Save)을 선택합니다.

자세한 내용은 고객 응대 흐름에서 Lambda 함수 호출 단원을 참조하십시오.

아웃바운드 귓속말 흐름 완료

1.    사용 사례에 필요한 경우, 더 많은 고객 응대 블록을 아웃바운드 귓속말 흐름에 추가하여 연결합니다.
참고: 사용 사례 예시는 샘플 고객 응대 흐름을 참조하세요.

2.    고객 응대 흐름의 모든 커넥터를 블록에 연결합니다. 고객 응대 속성 설정 블록의 성공 노드를 AWS Lambda 함수 호출 블록에 연결해야 합니다. 최소한 다음 블록을 사용해야 합니다.
[진입점] > [고객 응대 속성 설정] > [AWS Lambda 함수 호출] > [흐름 종료/재개]

3.    저장(Save)을 선택하여 고객 응대 흐름의 초안을 저장합니다.

4.    [게시]를 선택하여 고객 응대 흐름을 활성화합니다.

아웃바운드 귓속말 흐름을 사용하여 대기열 구성

에이전트가 할당된 [라우팅 프로파일]에서 기본 아웃바운드 대기열을 식별합니다. 자세한 내용은 라우팅 프로필 생성을 참조하십시오.

대기열을 편집하려면 다음을 수행합니다.

1.    좌측 탐색 창의 Amazon Connect 인스턴스에서 [라우팅] 위로 마우스를 가져간 다음 [대기열]을 선택합니다.

2.    [대기열] 페이지에서 기본 아웃바운드 대기열로 식별한 대기열의 이름을 선택합니다.

3.    [대기열 편집(Edit queue)] 페이지의 [아웃바운드 귓속말 흐름(선택 사항)(Outbound whisper flow (optional))] 메뉴에서 생성한 아웃바운드 귓속말 흐름을 선택합니다.

4.    저장(Save)을 선택합니다.