

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 고객 연결에서 고객 첫 번째 콜백 모드 사용
<a name="customer-first-cb"></a>

대기 중인 콜백을 설정할 때 에이전트 우선 콜백 모드 또는 고객 우선 콜백 모드를 사용할지 여부를 추가로 선택할 수 있습니다.
+ **에이전트 우선 콜백 모드**가 기본값입니다. 고객에게 전화를 걸기 전에 수락하거나 거부할 수 있도록 에이전트에게 콜백이 제공됩니다.
+ **고객 첫 번째 콜백 모드**는 Connect Customer 인스턴스에 대해 Next Generation Connect Customer가 [활성화된](enable-nextgeneration-amazonconnect.md) 경우에만 사용할 수 있습니다. 이 모드에서 Connect Customer는 고객에게 먼저 전화를 걸고 고객이 수신한 콜백에 응답하는 경우에만 에이전트에게 콜백을 제공합니다.

**중요**  
기능별 지불 요금 모델에서는 고객 우선 콜백 모드를 사용할 수 없습니다.
고객 첫 번째 콜백을 이미 활성화하고 사용을 시작한 후 Next Generation Connect Customer를 비활성화하면 고객 첫 번째 콜백 모드도 비활성화됩니다.

**Topics**
+ [고객 우선 콜백의 수명 주기](#queued-callback-customer-first-callback-contact-lifecycle)
+ [재시도](#customer-first-callback-retries)
+ [고객 우선 콜백에 대한 지표](#customer-first-callback-metrics)
+ [고객 응대 레코드 예시](#customer-first-callback-contact-lifecycle-contact-model)
+ [샘플 흐름](#customer-first-callback-contact-lifecycle-sample-flows)

## 고객 우선 콜백의 수명 주기
<a name="queued-callback-customer-first-callback-contact-lifecycle"></a>

다음 다이어그램과 같이 고객 우선 콜백의 수명 주기는 세 가지 고객 응대에 분산됩니다.

![고객 우선 콜백의 수명 주기로, 세 가지 고객 응대에 분산됩니다.](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/queued-callback-customer-first-callback-contact-lifecycle-1.png)


다음은 각 고객 응대에 대한 설명입니다.

1. **인바운드 고객 응대(C1)**는 인바운드 음성 고객 응대입니다. 다른 모든 인바운드 고객 응대처럼 보입니다.

1. **대기 중인 콜백 고객 응대(C2)**는 고객 우선 콜백의 대기 단계입니다. CALLBACK\_CUSTOMER\_FIRST\_QUEUED라는 새로운 시작 메서드가 있습니다.
   + [대기열로 전송](transfer-to-queue.md) 블록에서 **생성 흐름 설정**을 선택한 경우 C2가 생성 흐름을 트리거합니다. 작업 대기열에 추가되기 전에, 그리고 [대기열로 전송](transfer-to-queue.md) 블록에 지정된 경우 **초기 지연** 후에 이 작업을 수행합니다.
   + C2는 [대기열로 전송](transfer-to-queue.md) 블록의 **최대 재시도 횟수** 및 **시도 간 최소 시간** 설정을 지원하지 않습니다. 이 기능은 에이전트 우선 콜백에만 사용할 수 있습니다.

1. **다이얼링된 콜백 고객 응대(C3)**는 고객에게 먼저 전달되는 콜백의 다이얼된 부분입니다. CALLBACK\_CUSTOMER\_FIRST\_DIALED라는 새로운 시작 메서드가 있습니다.
   + C3는 흐름 블록에서 지정한 필수 아웃바운드 콜백 [대기열로 전송](transfer-to-queue.md) 흐름을 트리거합니다. 에이전트 우선 콜백 모드가 아닌 고객 우선 콜백 모드에 대해서만 아웃바운드 콜백 흐름을 지정합니다.
   + 고객 우선 콜백의 경우 흐름 [통화 진행 상황 확인](check-call-progress.md) 블록의 출력을 기반으로 C3에 지정된 아웃바운드 흐름의 재시도 횟수와 시도 간격 시간을 구성합니다. 이 작업의 목적은 고객 응대가 음성 메일로 응답되었는지 아니면 사람의 음성으로 응답되었는지 확인하는 것입니다.
   + 고객의 존재가 확인되면 다음 사용 가능한 에이전트를 찾기 위해 고객 응대를 대기열에 배치하도록 구성된 [대기열로 전송](transfer-to-queue.md) 흐름 블록이 C3에 대한 흐름에 있어야 합니다.
   + [라우팅 기준 설정](set-routing-criteria.md) 또는 [라우팅 우선 순위/수명 변경](change-routing-priority.md) 블록을 사용하여 흐름 내에서 이 고객 응대의 라우팅 우선 순위를 사용자 지정할 수 있습니다.

**참고**  
C2를 생성하기 전에 최종 작업 대기열을 한 번 이상 설정해야 합니다.  
[Set working queue(작업 대기열 설정)](set-working-queue.md)를 사용하여 C1 인바운드 흐름에서 이 작업을 수행할 수 있습니다. 또는 C2를 구성하는 동안 [대기열로 전송](transfer-to-queue.md) 블록에서 대기열을 지정할 수 있습니다.
C2에 대한 **생성 흐름 설정**을 사용하거나 C3에 대해 지정한 아웃바운드 흐름을 사용하여 최종 작업 대기열을 수정할 수 있습니다.
고객 응대 수명 주기(C1, C2 또는 C3 단계)의 어느 시점에서든 콜백에 대한 최종 작업 대기열을 설정하면 다음 단계가 콜백을 상속합니다.

## 고객 첫 번째 콜백에 대한 재시도
<a name="customer-first-callback-retries"></a>

고객 첫 번째 콜백에 대한 재시도 동작은 에이전트 첫 번째 콜백과 크게 다릅니다. 재시도는 대기 중인 콜백 고객 응대(C2)가 아닌 전화를 건 콜백 고객 응대(C3)에 구성됩니다.

### 재시도 작동 방식
<a name="customer-first-callback-retries-how-they-work"></a>
+ C2는 재시도를 지원하지 않습니다. [대기열로 전송](transfer-to-queue.md) 블록**의 최대 재시도 횟수** 및 **시도 간 최소 시간** 설정은 에이전트 첫 번째 콜백에만 사용할 수 있습니다.
+ 고객 첫 번째 콜백의 경우 재시도는 C3에 지정된 아웃바운드 콜백 흐름에 구성됩니다.
+ 재시도가 필요한 경우(예: 음성 메일이 감지됨) 다이얼링된 새 콜백 고객 응대인 C4가 생성됩니다. C4는 C3에 설정된 사용자 정의 속성을 상속합니다.

### Check Call Progress를 사용하여 재시도 구성
<a name="customer-first-callback-retries-check-call-progress"></a>

C3 아웃바운드 흐름의 [통화 진행 상황 확인](check-call-progress.md) 블록을 사용하여 사람 또는 음성 메일이 통화에 응답했는지 여부를 감지합니다. 출력을 기반으로 다음과 같이 흐름을 구성합니다.
+ **음성 메일 감지**됨(`VOICEMAIL_BEEP`, `VOICEMAIL_NO_BEEP`) - C3에서 `retry` 속성을 설정한 다음 콜백 고객 응대(C4)를 다시 생성합니다.
+ **사람이 감지**함(`HUMAN_ANSWERED`) - 에이전트가 통화에 참여할 수 있도록 대기열로 전송합니다.
+ **기타 또는 해결되지 않은 상태** - 필요에 따라 대체 처리를 구성합니다.

C3 고객 응대 레코드의 `AnsweringMachineDetectionStatus` 필드는 전체 자동 응답기 감지 결과를 캡처합니다. 가능한 값은 다음과 같습니다.

`HUMAN_ANSWERED` \| `VOICEMAIL_BEEP` \| `VOICEMAIL_NO_BEEP` \| `AMD_UNANSWERED` \| `AMD_UNRESOLVED` \| `AMD_NOT_APPLICABLE` \| `SIT_TONE_BUSY` \| `SIT_TONE_INVALID_NUMBER` \| `SIT_TONE_DETECTED` \| `FAX_MACHINE_DETECTED` \| `AMD_ERROR`

### 연락 재시도 우선 순위 조정
<a name="customer-first-callback-retries-adjust-priority"></a>

재시도 고객 응대가 적절하게 라우팅되도록 하려면 C4 고객 응대가 생성될 때 실행되는 콜백 생성 흐름을 사용합니다. 권장되는 접근 방식은 다음과 같습니다.

1. **C3에서 재시도 속성 설정** - 콜백 고객 응대를 다시 생성하기 전에 C3 아웃바운드 흐름에서 **고객 응대 속성 설정** 블록을 사용하여 사용자 정의 속성(예: `retry = true`)을 추가합니다.

1. **C4는 C3의 사용자 정의 속성을 상속합니다.** C4 고객 응대가 생성되면 속성을 포함하여 C3에서 모든 사용자 정의 `retry` 속성을 자동으로 상속합니다.

1. **C4의 콜백 생성 흐름에서 재시도 속성 확인** - C4에 대해 구성된 콜백 생성 흐름에서 **연락처 속성 확인** 블록을 사용하여 `retry` 속성이 있는지 평가합니다.

1. **재시도 시 라우팅 우선 순위 조정** - `retry` 속성이 있는 경우 [라우팅 기준 설정](set-routing-criteria.md) 또는 [라우팅 우선 순위/수명 변경](change-routing-priority.md) 블록을 사용하여 작업 대기열에 들어가기 전에 조정된 우선 순위로 고객 응대를 대기열에 넣습니다.

이 접근 방식을 사용하면 첫 번째 시도 콜백을 재시도와 구분하고 외부 상태에 의존하지 않고 사용자 지정 우선 순위 지정 로직을 적용할 수 있습니다.

**참고**  
재시도 고객 응대(C4)는 대기열 뒤에 배치되며 원래 위치를 유지하지 않습니다. 위에서 설명한 대로 C4의 콜백 생성 흐름에서 라우팅 우선 순위 또는 라우팅 기간을 조정하여 이를 보완할 수 있습니다.

**참고**  
아웃바운드 흐름에서 [라우팅 기준 설정](set-routing-criteria.md) 블록을 사용하여 재시도 시 우선순위를 동적으로 높일 수 있습니다(예: 재시도 카운터 속성을 사용하여 우선순위 5\~3\~1). 우선 순위 변경 사항은 연락처가 대기열에 다시 들어가는 시점에 적용됩니다.

### 재시도 타이밍 제어
<a name="customer-first-callback-retries-timing"></a>

기본적으로 재시도 타이밍은 고객 첫 번째 콜백에 대해 시스템이 제어하지 않으므로 재시도가 시작되는 시기를 완전히 제어할 수 있습니다.

재시도 사이에 지연을 초래하려면 대기열로 전송하기 전에 C4 생성 흐름에 **대기** 블록을 추가합니다. 이를 통해 특정 간격(예: 대기열에 추가되기 전에 5분 대기)을 정의하여 즉각적인 back-to-back 다이얼 시도를 방지할 수 있습니다.

타이밍 제어가 있는 일반적인 재시도 흐름은 다음과 같습니다.

1. [통화 진행 상황 확인](check-call-progress.md) - 음성 메일이 감지되었습니다.

1. **고객 응대 속성 설정** -를 설정합니다`retry = true`(및 선택적으로 재시도 카운터 증가).

1. **콜백 생성** - 연락처를 C4로 다시 생성합니다.

1. **대기** 블록 - 대기열에 넣기 전에 원하는 간격 동안.

## 고객 우선 콜백에 대한 지표
<a name="customer-first-callback-metrics"></a>

대기열 성능 대시보드에서 또는 [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API를 사용하여 다음 지표에 액세스할 수 있습니다.
+ [평균 대기열 중단 시간 - 고객 최초 콜백](metrics-definitions.md#average-queue-abandon-time-customer-first-callback)
+ [평균 대기열 응답 시간 - 고객 최초 콜백](metrics-definitions.md#average-queue-answer-time-customer-first-callback)
+ [평균 응답 속도 - 최초 콜백 전화를 건 고객](metrics-definitions.md#average-speed-of-answer-customer-first-callback-dialed)
+ [고객 연결 후 평균 대기 시간 - 고객 최초 콜백](metrics-definitions.md#average-wait-time-after-customer-connection-customer-first-callback)
+ [콜백 시도 - 고객 최초 콜백](metrics-definitions.md#callback-attempts-customer-first-callback)
+ [연락처 볼륨 - 에이전트 최초 콜백](metrics-definitions.md#contact-volume-agent-first-callback)
+ [연락처 볼륨 - 고객 최초 콜백](metrics-definitions.md#contact-volume-customer-first-callback)
+ [중단된 연락처 - 고객 최초 콜백](metrics-definitions.md#contacts-abandoned-customer-first-callback)
+ [처리된 연락처 - 고객 최초 콜백](metrics-definitions.md#contacts-handled-customer-first-callback)

## 고객 우선 콜백에 대한 고객 응대 레코드 예시
<a name="customer-first-callback-contact-lifecycle-contact-model"></a>

다음은 고객 우선 콜백의 C2 및 C3 레그에 대해 저장되는 정보를 보여 주는 고객 응대 레코드의 예입니다.

### 대기 중인 C2 고객 우선 콜백 고객 응대 레코드의 예
<a name="customer-first-callback-contact-lifecycle-contact-model-c2"></a>

```
InitialContactId : C1 (Inbound contact)
ContactId : C2 (this contact)
PreviousContactId : C1 (Inbound contact)
NextContactId : C3 (Dialed customer first callback contact)
Channel : VOICE,
InitiationMethod : CALLBACK_CUSTOMER_FIRST_QUEUED, 

ConnectedToSystemTimeStamp : time // Timestamp when callback creation flow got started

CustomerEndpoint : customer phone number endpoint

DisconnectTimestamp : time // Timestamp indicating contact is disconnected and customer will be dialed

DisconnectReason : // Disconnect reason code 

InitiationTimeStamp : time // Timestamp indicating customer first callback has been created in connect systems

QueueInfo : {
    Arn : arn // Queue arn representing customer first callback queue
    EnqueueTimeStamp : time // Timestamp indicating customer first callback has been put in queue and waiting out to dial.
    DequeueTimeStamp : time // Timestamp indicating customer first callback has been taken out from queue to dial out end customer.
    Duration : time // total time it took connect systems to dial out end customer. 
}
```

### C3에서 전화를 건 고객 우선 콜백 고객 응대의 예
<a name="customer-first-callback-contact-lifecycle-contact-model-c3"></a>

```
InitialContactId : C1 (Inbound contact)
ContactId : C3 (this contact)
PreviousContactId : C2 (Queued customer first callback contact)
Channel : VOICE,
InitiationMethod : CALLBACK_CUSTOMER_FIRST_DIALED,

ConnectedToSystemTimeStamp : time // Timestamp when the outbound call associated with callback was connected with customer.

CustomerEndpoint : customer phone number endpoint

SystemEndpoint : Outbound caller id assigned to the outbound queue

Agent : {
    // All agent information associated with the outbound call. 
    // Like Agent Arn, ConnectToAgentTimestamp, ACW duration etc. 
}

AgentConnectionAttempts : number

DisconnectTimestamp : time // Timestamp indicating outbound call for the callback is disconnected

DisconnectReason : // Disconnect reason code

SegmentAttributes : { 
    'connect:TrafficType' : 'CUSTOMER_FIRST_CALLBACK'
}, 

AnsweringMachineDetectionStatus : HUMAN_ANSWERED|VOICEMAIL_BEEP|VOICEMAIL_NO_BEEP|AMD_UNANSWERED|AMD_UNRESOLVED|AMD_NOT_APPLICABLE|SIT_TONE_BUSY|SIT_TONE_INVALID_NUMBER|SIT_TONE_DETECTED|FAX_MACHINE_DETECTED|AMD_ERROR|AMD_UNRESOLVED_SILENCE(WIP)

CustomerVoiceActivity : {
    GreetingStartTimestamp : timestamp
    GreetingEndTimestamp : timestamp
}

InitiationTimeStamp : time // Timestamp indicating start of outbound call to customer
 
QueueInfo : {
    Arn : arn // Queue arn representing customer first callback queue
    EnqueueTimeStamp : time // Timestamp indicating customer first callback has been put in queue to join with agent.
    DequeueTimeStamp : time // Timestamp indicating customer first callback has been taken out from queue to join with agent.
    Duration : time // total time it took connect systems to join dialed end customer with agent.
    CallbackTotalQueueDuration : time // total time the customer first callback spent in queue (Includes the total queued time for C2 and C3.)
}
```

## 고객 우선 콜백에 대한 샘플 흐름
<a name="customer-first-callback-contact-lifecycle-sample-flows"></a>

다음 샘플 흐름은 고객 우선 콜백에 대한 흐름을 구성하는 방법을 보여 줍니다.

### 인바운드 통화 흐름 샘플
<a name="customer-first-callback-contact-lifecycle-sample-flows-inbound"></a>

다음 이미지는 흐름의 [대기열로 전송](transfer-to-queue.md) 블록을 보여 줍니다.

![고객 우선 콜백 흐름의 대기열로 트랜스퍼 블록입니다.](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/customer-first-callback-contact-lifecycle-sample-flows-inbound-1.png)


이 흐름에서 [대기열로 전송](transfer-to-queue.md)에는 **생성 흐름 설정**이 구성되어 있고 아웃바운드 다이얼 흐름이 지정되어 있습니다.

![대기열로 전송 블록. 여기서 생성 흐름 설정이 구성되고 아웃바운드 다이얼 흐름이 지정됩니다.](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/customer-first-callback-contact-lifecycle-sample-flows-inbound-2.png)


### 샘플 콜백 생성 흐름 구성
<a name="customer-first-callback-contact-lifecycle-sample-flows-creation"></a>

다음 이미지는 샘플 콜백 생성 흐름을 보여 줍니다. [고객 대기열 흐름 설정](set-customer-queue-flow.md) 블록은 콜백 고객 응대가 대기열에 있는 동안 에이전트가 고객에게 전화를 걸 수 있을 때까지 기다리는 동안 고객 대기열 흐름이 실행되도록 구성됩니다.

![고객 대기열 설정 블록이 있는 샘플 콜백 생성 흐름입니다.](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/customer-first-callback-contact-lifecycle-sample-flows-creation-1.png)


### 콜백의 아웃바운드 다이얼 흐름 예시
<a name="customer-first-callback-contact-lifecycle-sample-flows-outbound"></a>

다음 이미지에 표시된 아웃바운드 다이얼 흐름에서 Connect Customer는 [통화 진행 상황 확인](check-call-progress.md) 블록을 사용하여 고객의 존재를 평가합니다. 음성 메일이 감지되면 콜백 고객 응대가 다시 생성됩니다. 고객이 통화의 다른 쪽에서 감지되면 에이전트가 고객에게 참여할 수 있도록 통화가 대기열로 전송됩니다.

![통화 진행 상황 확인 블록이 있는 아웃바운드 다이얼 흐름입니다.](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/customer-first-callback-contact-lifecycle-sample-flows-outbound-1.png)
