Amazon Connect 고객 센터에서 상담원 간 통화를 위해 내선을 설정하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2021년 3월 24일

Amazon Connect 고객 센터의 상담원들이 서로 직접 전화를 걸 수 있도록 하고 싶습니다. 그렇게 하도록 내선 통화를 설정하려면 어떻게 해야 합니까?

간략한 설명

Amazon Connect 콜 센터의 상담원이 직접 내선 번호를 사용하여 서로 전화를 걸 수 있도록 하려면 다음과 같이 합니다.

중요: Amazon Connect 인스턴스가 있는 리전과 동일한 AWS 리전에서 다음 단계를 수행해야 합니다.

해결 방법

상담원 로그인 이름과 내선 번호가 저장된 DynamoDB 테이블을 생성합니다.

1.    DynamoDB 콘솔을 엽니다.

2.    [DynamoDB 테이블 생성(Create DynamoDB table)] 화면에서 다음을 수행합니다.
[테이블 이름(Table name)]에 AgenttoAgent를 입력합니다.
[기본 키(Primary key)]의 [파티션 키(Partition key)] 패널에 Extension을 입력합니다.
[데이터 유형(Data type)]에서 [문자열(String)]을 선택합니다.

3.    [생성(Create)]을 선택합니다.

4.    각 상담원 로그인 이름에 고유한 내선을 할당합니다. 그런 다음 내선 및 상담원 로그인 이름을 테이블에 추가합니다. 내선에는 속성 이름 Extension으로 지정되어 있어야 합니다. DynamoDB 테이블에 항목을 생성할 때 상담원 로그인 이름에는 속성 이름 AgentLoginName이어야 합니다.
참고: DynamoDB 테이블을 편집하는 방법에 대한 자세한 내용은콘솔 또는 AWS CLI를 사용하여 테이블에 데이터 쓰기를 참조하세요.

Lambda 함수가 DynamoDB에서 상담원 로그인 이름을 조회하도록 허용하는 IAM 역할 생성

다음 JSON 정책을 사용하여 IAM 역할 생성:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGetItem",
                "dynamodb:GetItem",
                "dynamodb:Query",
                "dynamodb:Scan",
                "dynamodb:BatchWriteItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem"
            ],
            "Resource": "Replace with ARN of DynamoDB table you created"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

내선 입력을 사용하여 DynamoDB 테이블을 쿼리하고 테이블에서 해당 상담원 로그인 이름을 반환하는 Lambda 함수 생성

다음 Python 코드를 사용하여 Lambda 함수를 생성하고 이전에 생성된 역할 연결:

import json
import boto3
from boto3.dynamodb.conditions import Key


def get_agent_id(Extension, dynamodb=None):
    if not dynamodb:
        dynamodb = boto3.resource('dynamodb')

    table = dynamodb.Table('AgenttoAgent')
    response = table.query(
        KeyConditionExpression=Key('Extension').eq(str(Extension))
    )
    return response['Items']


def lambda_handler(event, context):
    Extension = event['Details']['Parameters']['Extension']
    AgentLoginName = get_agent_id(Extension)
    for agent in AgentLoginName:
        print(agent['Extension'], ":", agent['AgentLoginName'])
        
    print(AgentLoginName)
            
    return agent

Amazon Connect 인스턴스에 Lambda 함수 추가

1.    Amazon Connect 콘솔을 엽니다.

2.    [인스턴스 별칭(Instance Alias)] 열에서 Amazon Connect 인스턴스의 이름을 선택합니다.

3.    왼쪽 탐색 창에서 [고객 응대 흐름(Contact flows)]을 선택합니다.

4.    [AWS Lambda] 섹션에서 [함수(Function)] 드롭다운 목록을 클릭합니다. 그런 다음 이전 섹션에서 생성한 Lambda 함수를 선택합니다.
참고: [함수(Function)] 드롭다운 목록에는 Amazon Connect 인스턴스와 동일한 리전에 있는 함수의 이름만 나열됩니다. 함수가 나열되어 있지 않으면 올바른 리전에서 [새 Lambda 함수 생성(Create a new Lambda function)]을 선택하여 새 함수를 새성하세요.

5.    [Lambda 함수 추가(Add Lambda Function)]를 선택합니다. 그런 다음 함수의 ARN이 [Lambda 함수(Lambda Functions)]에 추가되어 있는지 확인합니다.

이제 Amazon Connect 고객 응대 흐름에서 생성한 Lambda 함수를 참조할 수 있습니다. Lambda와 Amazon Connect를 통합하는 방법에 대한 자세한 내용은AWS Lambda 함수 호출을 참조하세요.

상담원이 전화를 받을 수 있는지 여부를 확인하는 고객 대기열 흐름(AgentQueueFlow)을 생성합니다.

새 고객 대기열 흐름을 생성합니다. [고객 대기열 흐름 생성(Create customer queue flow)]을 선택하면 고객 응대 흐름 디자이너가 열립니다.

고객 응대 흐름 디자이너에서 다음을 수행합니다.

인력 확인 블록 추가

상담원이 전화를 받을 수 있는지 확인하려면 [인력 확인(Check staffing)] 블록을 사용합니다.

1.    [분기(Branch)]를 선택합니다.

2.    [인력 확인(Check staffing)] 블록을 [진입점(Entry point)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다.

3.    [확인할 상태(Status to check)]에서 [통화 가능(Available)]을 선택합니다.

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

참고: [인력 확인(Check staffing)] 블록에는 True, FalseError라는 세 가지 출력이 표시됩니다.

인력 확인 블록의 True 출력에 루프 프롬프트 블록 추가

전화를 건 사람이 대기열에 있는 동안 프롬프트를 재생하려면 [루프 프롬프트(Loops prompts)] 블록을 사용합니다.

1.    [상호 작용(Interact)]을 선택합니다.

2.    [루프 프롬프트(Loop prompts)] 블록을 [인력 확인(Check staffing)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다. 그런 다음 [인력 확인(Check staffing)] 블록의 True 출력에 [루프 프롬프트(Loop prompts)] 블록을 연결합니다.

3.    블록 제목(Loop prompts)을 선택합니다. 블록의 설정 메뉴가 열립니다.

4.    [프롬프트(Prompts)]에서 [텍스트 음성 변환(Text-to-speech)]을 선택합니다. 다음 프롬프트를 입력합니다. "$.External.AgentLoginName에게 통화를 전달합니다.(Now we will be transferring the call to $.External.AgentLoginName)"
참고: 특정 사용 사례에 맞도록 프롬프트를 변경할 수 있습니다.

5.    [루프에 다른 프롬프트 추가(Add another prompt to the loop)]를 선택합니다.

6.    [오디오 녹음(Audio recording)]을 선택합니다. 그런 다음 전화를 건 대상 상담원이 통화를 수락할 때까지 기다리는 동안 전화를 건 사람이 듣게 될 음악을 선택합니다.

7.    [중단(Interrupt)]에서 [1분마다 중단(Interrupt every 1 minutes)] 또는 통화가 시간 초과되게 하려는 시간을 선택합니다.

8.    [저장(Save)]을 선택합니다.

인력 확인 블록의 False 및 Error 출력에 루프 프롬프트 블록 추가

1.    [상호 작용(Interact)]을 선택합니다.

2.    [루프 프롬프트(Loop prompts)] 블록을 [인력 확인(Check staffing)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다. 그런 다음 [인력 확인(Check staffing)] 블록의 FalseError 출력에 [루프 프롬프트(Loop prompts)] 블록을 연결합니다.

3.    블록 제목(Loop prompts)을 선택합니다. 블록의 설정 메뉴가 열립니다.

4.    [프롬프트(Prompts)]에서 [텍스트 음성 변환(Text-to-speech)]을 선택합니다. 다음 프롬프트를 입력합니다. "연결하려는 상담원이 현재 통화를 할 수 없거나 이미 통화 중입니다. 나중에 다시 시도하세요.(The agent you are trying to reach is either not available or is busy on another call. Please try again later.)"
참고: 특정 사용 사례에 맞도록 프롬프트를 변경할 수 있습니다.

5.    [중단(Interrupt)]에서 [4초마다 중단(Interrupt every 4 seconds)] 또는 4단계에서 입력한 프롬프트를 완료하는 데 걸리는 시간을 지정합니다. 이 시간이 지나면 시간 초과 분기가 시작됩니다.

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

연결 해제 블록 추가

1.    [종료/전달(Terminate/Transfer)]을 선택합니다.

2.    [연결 해제(Disconnect)] 블록을 [루프 프롬프트(Loop prompts)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다.

3.    모든 [시간 초과(Timeout)] 및 [오류(Error)] 분기를 [연결 해제(Disconnect)] 블록에 연결합니다.

4.    [저장(Save)]을 선택하여 흐름의 초안을 저장합니다. 그런 다음 [게시(Publish)]를 선택하여 고객 응대 흐름을 활성화합니다.

상담원이 다른 상담원의 내선에 전화를 걸 때 Lambda 함수를 트리거하는 인바운드 연락처 흐름(AgentToAgentCall)을 생성합니다.

새 인바운드 고객 응대 흐름을 생성합니다. [고객 응대 흐름 생성(Create contact flow)]을 선택하면 고객 응대 흐름 디자이너가 열립니다.

고객 응대 흐름 디자이너에서 다음을 수행합니다.

참고: 다음은 기본 인바운드 고객 응대 흐름의 예입니다. 특정 사용 사례에 대한 블록을 추가하거나 편집해야 할 수 있습니다. 예를 들어 오류 분기를 [프롬프트 재생(Play prompt)] 블록에 연결하여 사용자 지정 메시지를 재생할 수 있습니다.

고객 입력 저장 블록 추가

상담원 간에 전화를 거는 상담원의 내선 입력을 저장하려면 [고객 입력 저장(Store customer input)] 블록을 사용합니다.

1.    [상호 작용(Interact)]을 선택합니다.

2.    [고객 입력 저장(Store customer input)] 블록을 [진입점(Entry point)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다.

3.    블록 제목(Store customer input)을 선택합니다. 블록의 설정 메뉴가 열립니다.

4.    [텍스트 음성 변환(Text-to-speech)]을 선택합니다. 그런 다음 전화를 건 사람에게 상담원의 내선 번호를 입력하도록 안내하는 메시지를 입력합니다. 예: "계속하려면 상담원의 내선 번호를 입력하세요.(Please enter the agent's extension number to continue.)"

5.    [고객 입력(Customer input)] 섹션에서 [사용자 지정(Custom)]을 선택합니다. 그런 다음 각 상담원의 내선 번호에 사용할 최대 자릿수를 입력합니다.

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

AWS Lambda 함수 호출 블록 추가

Lambda 함수를 호출하여 내선 입력에 해당하는 상담원 로그인 이름을 반환하도록 하려면 [AWS Lambda 함수 호출(Invoke AWS Lambda function)] 블록을 사용합니다.

1.    [통합(Integrate)]을 선택합니다.

2.    [AWS Lambda 함수 호출(Invoke AWS Lambda function)] 블록을 [고객 입력 저장(Store customer input)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다.

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

4.    앞서 생성한 Lambda 함수를 선택합니다.

5.    [함수 입력 파라미터(Function input parameters)] 섹션에서 [파라미터 추가(Add a parameter)]를 클릭하고 [속성 사용(Use attribute)]을 선택합니다. 그러고 나서 다음 작업을 수행합니다.
[대상 키(Destination key)]에 속성 이름 Extension을 입력합니다.
[유형(Type)]에서 [시스템(System)]을 선택합니다.
[속성(Attribute)]에서 [저장된 고객 입력(Stored customer input)]을 선택합니다.

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

작업 대기열 설정 블록 추가

작업 대기열을 상담원의 대기열로 설정하려면 [작업 대기열 설정(Set working queue)] 블록을 사용합니다.

1.    [설정(Set)]을 선택합니다.

2.    [작업 대기열 설정(Set working queue)] 블록을 [AWS Lambda 함수 호출(Invoke AWS Lambda function)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다.

3.    블록 제목(Set working queue)을 선택합니다. 블록의 설정 메뉴가 열립니다.

4.    [출력(Outputs)]에서 [상담원 기준(By agent)]을 선택합니다. 그런 다음 [속성 사용(Use attribute)]을 선택하고 다음을 수행합니다.
[유형(Type)]에서 [외부(External)]를 선택합니다.
[속성(Attribute)]에 AgentLoginName(Lambda 함수에서 반환된 속성)을 입력합니다.

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

고객 대기열 흐름 설정 블록 추가

상담원이 다른 상담원의 내선을 입력(AgentToAgentCall)할 때 호출할 흐름을 지정하려면 [고객 대기열 흐름 설정(Set customer queue flow)] 블록을 사용합니다.

1.    [설정(Set)]을 선택합니다.

2.    [고객 대기열 흐름 설정(Set customer queue flow)] 블록을 [작업 대기열 설정(Set working queue)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다.

3.    [흐름 선택(Select a flow)]을 선택합니다.

4.    AgentQueueFlow를 선택합니다.
참고: AgentQueueFlow 고객 대기열 흐름은 다음 섹션에서 생성합니다.

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

대기열로 전송 블록 추가

고객 응대 흐름(AgentToAgentCall)을 종료하고 전화를 건 사람을 고객 대기열 흐름(AgentQueueFlow)으로 보내려면 [대기열로 전송(Transfer to queue)] 블록을 사용합니다.

1.    [종료/전달(Terminate/Transfer)]을 선택합니다.

2.    [대기열로 전송(Transfer to queue)] 블록을 [고객 대기열 흐름 설정(Set customer queue flow)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다.

참고: 이 사용 사례의 경우 [대기열로 전송(Transfer to queue)] 블록에 대해 구성할 설정이 없습니다.

연결 해제 블록 추가

상담원이 고객 대기열 흐름(AgentQueueFlow)으로 넘어간 후 전화를 건 사람의 고객 응대 흐름(AgentToAgentCall)에서 전화를 건 사람의 연결을 끊으려면 [연결 해제(Disconnect)] 블록을 추가합니다.

1.    [종료/전달(Terminate/Transfer)]을 선택합니다.

2.    [연결 해제(Disconnect)] 블록을 [대기열로 전송(Transfer to queue)] 블록의 오른쪽에 있는 캔버스로 끌어 놓습니다.

3.    [저장(Save)]을 선택하여 고객 응대 흐름의 초안을 저장합니다. 그런 다음 [게시(Publish)]를 선택하여 고객 응대 흐름을 활성화합니다.

중요: 상담원이 AgentToAgentCall 고객 응대 흐름으로 내선 전화를 거는 데 사용할 전화 번호를 할당해야 합니다.

상담원이 내선 전화 걸기 기능을 사용할 수 있도록 빠른 연결 생성

1.    다음 구성을 사용하여 빠른 연결을 생성합니다.
빠른 연결의 이름을InternalCalling으로 지정합니다.
[유형(Type)]에서 [외부(External)]를 선택합니다.
AgentToAgentCall 고객 응대 흐름에 할당한 번호를 [대상(Destination)]에 입력합니다.

2.    InternalCalling 빠른 연결을 내부 전화 걸기 기능에 대한 액세스 권한을 갖도록 할 상담원에게 할당된 대기열에 추가합니다.

참고: 각 통화의 비용은 통화 지속 시간에 따라 다릅니다. 자세한 내용은 Amazon Connect 요금을 참조하세요.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?