커스텀 CRM 솔루션을 사용하면 회사가 CCAI Platform과 현재 표준 통합이 아닌 CRM을 사용할 때 Contact Center AI Platform (CCAI Platform) 포털을 활용할 수 있습니다. 맞춤 CRM 구성은 자체 개발 CRM 또는 비표준 CRM을 사용할 때 작동합니다.
상담사는 통화 및 채팅을 처리하고 감독자는 CCAI Platform 포털을 사용하여 보고서를 모니터링하고 가져올 수 있습니다. 통화 또는 채팅 세션에 관한 모든 세부정보는 세션 메타데이터 파일에 저장됩니다. 이 파일에는 세션 정보, 트랜스퍼, 처리 시간, 참여자, 진단 정보 등 20개 이상의 데이터 포인트가 포함될 수 있습니다. 세션 메타데이터 파일을 파싱하여 세션 후 분석 및 추적에 사용할 수 있습니다.
세션 메타데이터 및 소비자 업로드 미디어 파일은 외부 스토리지 서비스로 푸시되며 상담사는 세션 중에 상담사 어댑터에서 소비자 업로드 미디어 파일을 직접 볼 수 있습니다.
커스텀 CRM 솔루션은 다음 구성요소의 조합으로 구현됩니다. 일부 구성요소는 구성에 적용될 수도 있고 적용되지 않을 수도 있습니다.
각 통화 및 채팅 세션의 세션 메타데이터 파일 생성
외부 저장소 서비스에 메타데이터 및 미디어 파일 푸시
일반 API 통합
맞춤 조회 URL
이메일로 CRM 레코드 업데이트
상담사 어댑터에서 계정 또는 케이스 조회
기본 요건
커스텀 CRM 기능을 사용하려면 먼저 외부 스토리지를 설정해야 합니다. 자세한 내용은 커스텀 CRM 솔루션의 외부 저장소를 참조하세요.
세션 메타데이터
세션 메타데이터 파일에는 세션에 대한 자세한 정보가 포함되어 있습니다. 이 이메일은 세션이 완료된 후 15분 후에 전송됩니다. 자세한 내용은 세션 메타데이터 파일을 참고하세요.
맞춤 CRM 상호작용 및 통합 방법
| Generic API | 맞춤 URL | |
|---|---|---|
| 계정 조회 | 예 | 예 |
| 케이스 조회 | 예 | |
| 케이스 업데이트 | 예 | 없음 |
Generic API
일반 API 통합 방법은 커스텀 CRM의 API를 사용하여 CCAI Platform과 양방향 연결을 설정하는 기능을 제공합니다. 이 원활한 방법은 기본 CRM 통합 환경과 동일하게 느껴집니다. 상담사는 통화 또는 채팅 세션에 대한 CRM 레코드를 만들기 위해 조치를 취할 필요가 없으며, 이는 고유한 API 구성에 따라 달라집니다. 원활한 레코드 조회 및 레코드 업데이트를 지원할 수 있습니다.
맞춤 URL
맞춤 링크 옵션을 사용하면 상담사가 각 세션에 대해 생성된 맞춤 링크를 활용하여 CRM과 상호작용할 수 있습니다. 표준 CRM 통합 및 일반 API 환경과 달리 상담사는 CRM 레코드를 만들기 위해 조치를 취해야 합니다. 경우에 따라 세션의 맞춤 링크가 있는 탭을 실행하는 것만으로도 충분할 수 있으며, 상담사가 수동으로 레코드를 만들어야 하는 경우도 있습니다.
맞춤 조회 URL 세부정보 및 구성
URL의 기본 기능은 CRM 조회를 수행하는 것이지만 CRM에 따라 맞춤 URL 콘텐츠를 기반으로 더 복잡한 프로세스가 트리거될 수 있습니다. 커스텀 CRM의 URL은 세션 정보가 포함된 변수로 구성할 수 있으며 세션 중에 에이전트 어댑터에서 액세스할 수 있습니다. URL에 액세스하면 커스텀 CRM이 조회를 수행하도록 트리거됩니다. 이 CRM 조회는 상담사가 진행 중인 통화 또는 채팅 세션에 '티켓 팝업'을 사용할 수 있는 방법입니다. 커스텀 링크 프로세스는 이 링크를 처리하고 필요한 경우 수정하거나 다시 작성하는 커스텀 CRM의 기능에만 의존합니다.
외부에 저장된 세션 메타데이터, 통화 녹음, 기타 파일은 나열된 이메일 업데이트 방법도 활용하지 않는 한 CRM 레코드에 다시 연결되지 않습니다.
이 구성에서 상담사는 CCAI Platform 포털에 로그인하고 별도의 탭에서 CRM에 로그인합니다. 통화 및 채팅은 CCAI Platform 탭에서 처리되고 티켓 세부정보는 CRM 탭에서 액세스됩니다.
이 구성이 작동하려면 다음을 충족해야 합니다.
상담사는 브라우저에서 CRM에 로그인해야 합니다.
상담사가 브라우저에서 CCAI Platform 포털에 로그인해야 합니다.
맞춤 조회 URL은 미리 구성되어 있어야 합니다.
CRM에서 관련 CRM 레코드를 표시하려면 맞춤 URL을 처리해야 합니다.
커스텀 조회 URL 동작
CCAI Platform은 비어 있지 않은 URL에만 매개변수를 포함합니다.
CCAI Platform은 세션이 완료되면 CCAI Platform 데이터베이스에 ANI/UID/이메일이 포함된 생성된 URL을 저장하지 않습니다.
커스텀 조회 URL 구성
고유 식별자와 CRM 기능 및 동작이 다르기 때문에 IVR/PSTN/SMS 세션용 URL과 웹 및 모바일 SDK 세션용 URL 등 두 가지 URL을 만들어야 합니다. IVR/PSTN/SMS 세션은 ANI를 고유 식별자로 사용하는 반면 웹 및 모바일 SDK는 CUID 및 이메일을 사용할 가능성이 높습니다.
다음 변수를 사용하여 조회 URL을 구성할 수 있습니다.
| 변수 | 값 |
|---|---|
{CUSTOMER_PHONE_NUMBER} |
최종 사용자의 전화번호 |
{ANI} |
최종 사용자의 전화번호입니다. 이전 버전과의 호환성을 위해 유지됩니다. |
{CUID} |
맞춤 사용자 ID |
{EMAIL} |
최종 사용자 이메일 |
{MENU_PATH} |
전체 대기열 메뉴 경로입니다. 예를 들면 '주문/주문 확인/주문 정보'입니다. |
{MENU_ID} |
메뉴 ID |
{CHANNEL} |
세션 채널입니다. 가능한 값은 다음과 같습니다.
|
{TYPE} |
세션 유형입니다. 통화에 가능한 값은 다음과 같습니다.
채팅에 가능한 값은 다음과 같습니다.
|
{SUPPORT_PHONE_NUMBER} |
최종 사용자가 전화를 거는 지원 센터 전화번호입니다. |
{OUTBOUND_NUMBER} |
상담사가 아웃바운드 전화에 사용하는 전화번호입니다. |
{SESSION_ID} |
세션 ID입니다. 가능한 값은 다음과 같습니다.
|
{CUSTOM_AGENT_ID} |
user 객체의 선택적 상담사 ID 필드입니다. 상담사 ID는 세션이 설정되고 상담사가 할당된 후에만 가져올 수 있습니다. 따라서 이 변수가 정의될 수 있도록 통화 또는 채팅 기록 생성을 지연하도록 인스턴스를 구성하세요. 설정 > 작업 관리 > CRM 기록 생성 세부정보에서 통화 또는 채팅 기록 생성을 지연할 수 있습니다. 자세한 내용은 CRM 레코드 생성 세부정보를 참조하세요. |
CCAI Platform 포털 구성
관리자 역할이 할당된 계정을 사용하여 CCAI Platform 포털에 로그인합니다.
설정 > 개발자 설정으로 이동합니다.
CRM 섹션에서 커스텀 CRM을 선택합니다.
CRM 조회에서 맞춤 URL을 입력합니다.
CRM 요청에 사용할 전화번호 형식을 선택합니다.
변경사항 저장을 클릭합니다.
아직 구성하지 않았으면 외부 스토리지 서비스를 구성합니다. 자세한 내용은 외부 저장소를 참고하세요.
이메일로 CRM 레코드 업데이트
맞춤 조회 URL과 같은 구성에서는 세션이 완료되면 CRM에서 세션 메타데이터를 업데이트해야 합니다. 이 기능을 사용하면 CCAI Platform에서 이메일을 사용하여 세션 데이터를 자동으로 전송할 수 있습니다. 세션이 종료된 후 약 15분이 지나면 구성된 위치로 이메일이 전송되고 이메일 콘텐츠가 CRM의 레코드를 업데이트하는 데 사용됩니다. 이 기능은 전역 및 큐별로 구성할 수 있습니다. 이메일이 수신되면 세션의 새 CRM 레코드를 업데이트하거나 만들도록 CRM을 구성할 수 있습니다.
이메일 세부정보
다음을 포함합니다.
Subject line
JSON 문법의 세션 메타데이터가 포함된 본문
해당하는 경우 채팅 스크립트가 포함된 TXT 형식의 첨부파일
CCAI Platform은 세션이 종료된 후 15분 동안 기다린 후 이메일을 전송합니다.
이메일은 성공적으로 완료된 세션에 대해서만 전송됩니다. 실패하거나 중단된 세션에는 전송되지 않습니다.
전역 구성
관리자 역할이 할당된 계정을 사용하여 CCAI Platform 포털에 로그인합니다.
설정 > 개발자 설정으로 이동합니다.
CRM 섹션에서 커스텀 CRM이 선택되어 있는지 확인합니다.
이메일을 통해 세션 결과 전송을 사용 설정합니다.
이메일을 보낼 이메일 주소를 입력합니다.
변경사항 저장을 클릭합니다.
큐별 구성
관리자 역할이 할당된 계정을 사용하여 CCAI Platform 포털에 로그인합니다.
설정 > 대기열로 이동하여 하위 대기열을 선택합니다.
이메일을 통해 세션 결과 전송을 사용 설정합니다.
이메일을 보낼 이메일 주소를 입력합니다.

맞춤 CRM 설정 저장을 클릭합니다.
설정 상속 및 재정의
| 설정 | 동작 |
|---|---|
| 전역 = 사용 설정되지 않음 대기열 = 사용 설정되지 않음 |
모든 대기열에 대해 전송하지 않습니다. |
| 전역 = 사용 설정되지 않음 대기열 = 사용 설정됨 |
큐 설정 (즉, 사용 설정/사용 중지 상태)이 전역 설정을 재정의합니다. 이메일은 지정된 큐에서 큐 설정에 정의된 이메일 주소로 전송됩니다. |
| 전역 = 사용 설정됨 대기열 = 사용 설정되지 않음 |
큐 설정 (이메일 주소, 사용/사용 중지 상태)은 전역 설정을 상속합니다. 이메일은 지정된 큐에서 전역 설정에 정의된 이메일 주소로 전송됩니다. |
| 전역 = 사용 설정됨 대기열 = 사용 설정됨 |
큐 설정 (이메일 주소)이 전역 설정을 재정의합니다. 이메일은 지정된 큐에서 큐 설정에 정의된 이메일 주소로 전송됩니다. 이메일 주소가 비어 있으면 이메일이 전송되지 않습니다. |
상담사 환경
CRM 기록 조회
상담사 역할이 할당된 계정을 사용하여 CCAI Platform 포털에 로그인합니다.
통화 또는 채팅 어댑터를 엽니다.
새 브라우저 창에서 열기 버튼을 사용하여 조회를 트리거합니다.
링크 복사 버튼을 사용하여 조회 URL을 클립보드에 복사합니다.

맞춤 CRM 솔루션을 위한 외부 저장소
커스텀 솔루션용 외부 스토리지를 사용하면 외부 스토리지 서비스를 사용하여 CCAI Platform 세션 메타데이터, 통화 녹음, 채팅 스크립트, 소비자가 업로드한 미디어 파일을 저장하고 검색할 수 있습니다. 파일은 CRM 외부에 저장됩니다.
외부 스토리지를 구성하려면 다음이 필요합니다.
구성 및 테스트를 위해 관리자 및 상담사 역할이 할당된 유효한 CCAI Platform 계정
외부 저장소 서비스
폴더 구조
다음 폴더 구조는 폴더 경로의 외부 저장소에 구성됩니다.
ujet-chat-transcripts
ujet-media
ujet-metadata
ujet-voice-recordings
ujet-voicemails
파일 형식 및 이름 지정 규칙
다음 파일 형식을 외부 저장소 서비스로 푸시할 수 있습니다. 파일은 HTTPS를 사용하여 전송 중에 암호화됩니다.
| 파일 | 이름 |
|---|---|
| 통화 녹음 파일 | - call-{id}.mp3 - call-{id}.wav |
| 미디어 파일 | - call-{id}-photo-{photo-id}.jpg - call-{id}-video-{video-id}.mp4 - chat-{id}-photo-{photo-id}.jpg - chat-{id}-video-{video-id}.mp4 |
| 채팅 스크립트 | - chat-{id}.txt |
| 세션 메타데이터 | - call-{id}.json - chat-{id}.json |
상담사 및 감독자 환경
통화 또는 채팅 세션 중에 소비자가 스마트 작업을 사용하여 업로드한 사진과 동영상이 상담사 어댑터에 표시됩니다.
세션 메타데이터 파일 이메일 업데이트 방법과 함께 맞춤 URL CRM 상호작용을 사용하는 경우 상담사와 감독자는 외부 서버를 사용하여 세션 정보에 액세스할 수 있습니다.
외부 스토리지 서비스 구성
다음 단계에 따라 외부 저장소를 구성합니다.
관리자 역할이 할당된 계정을 사용하여 CCAI Platform 포털에 로그인합니다.
설정 > 개발자 설정으로 이동합니다.
개발자 설정 페이지에서 외부 저장소 섹션으로 이동합니다.
스위치를 사용으로 전환하여 CRM 서버 외부의 정보 저장소를 사용 설정한 다음 저장할 파일 형식을 선택합니다.
서버 설정 섹션에서 스토리지 유형을 선택하고 설정 단계를 완료합니다. SFTP 서버, Google Cloud 버킷
SFTP 서버
SFTP 호스트 (URL 또는 IP 주소)를 입력합니다.
포트 번호를 입력합니다.
SFTP 로그인 사용자 ID를 입력합니다.
SFTP 서버에 인증을 위한 비밀번호가 필요한 경우 비밀번호 필드에 입력합니다.
SFTP 서버에 인증을 위한 비공개 키가 필요한 경우 SSH 비공개 키 체크박스를 선택합니다.
SSH 비공개 키를 입력 (복사하여 붙여넣기)합니다.
비공개 키 암호를 입력합니다. 세션 정보를 SFTP 서버의 특정 폴더에 저장해야 하는 경우 폴더 경로 체크박스를 선택하고 SFTP 폴더 경로를 입력합니다.
변경사항 저장을 클릭합니다.
Cloud Storage
대상 Google Cloud 버킷 이름을 입력합니다.
Google Cloud 클라이언트 ID를 입력합니다.
Google Cloud 클라이언트 보안 비밀번호를 입력합니다.
세션 정보를 Google Cloud 버킷의 특정 폴더에 저장해야 하는 경우 폴더 경로 체크박스를 선택하고 Google Cloud 폴더 경로를 입력합니다.
링크를 클릭하고 저장하세요.
외부 저장소 구성 테스트
기존 표준 통합이 있는 CRM의 경우:
CRM에 로그인합니다.
상담사 역할이 할당된 CCAI Platform 사용자 인증 정보를 사용하여 CRM 내에서 CCAI Platform에 로그인합니다.
전화를 걸거나 채팅을 합니다. 세션과 연결된 CRM 레코드가 표시됩니다.
세션이 완료되면 몇 초 이내에 스크립트 파일이 업로드됩니다.
외부 서버 저장소 폴더로 직접 이동하여 파일을 사용할 수 있는지 확인합니다.
CRM으로 세션 파일 전송
외부 저장소가 사용 설정되면 CRM 저장소 및 외부 저장소 URL 개발자 설정을 통해 세션 파일을 전송하고 상담사 어댑터에서 파일을 표시하는 데 사용할 소스를 결정할 수 있습니다.
이 설정을 보려면 설정 > 개발자 설정 > 외부 저장소에서 외부 저장소를 사용 설정해야 합니다. CRM 서버 외부에 정보 저장 사용 설정을 사용으로 전환합니다.
CRM 스토리지
설정 > 개발자 설정 > 외부 저장소 > CRM 저장소로 이동합니다.
통화 녹음 또는 채팅 스크립트와 같은 세션 파일을 CRM 및 구성된 외부 저장소로 전송하려면 CRM으로 세션 파일 전송 옆의 체크박스를 선택합니다.
변경사항 저장을 클릭합니다.
체크박스를 선택하면 녹음 파일이 CRM과 외부 저장소에 모두 저장됩니다.
외부 저장소 URL
외부 저장소 URL은 다음 두 위치에서 사용됩니다.
에이전트 어댑터입니다.
보고: 설정, 통화, 완료와 같은 메뉴뿐만 아니라 보고서에도 미디어 URL을 표시합니다.
설정 > 개발자 설정 > 외부 저장소 > 외부 저장소 URL로 이동합니다.
상담사 어댑터에 파일을 표시하려면 소스 CRM URL 또는 외부 스토리지 URL을 선택합니다.
변경사항 저장을 클릭합니다.
CRM 스토리지
CRM 저장소 체크박스가 선택 해제되어 있으면 녹음 파일이 외부 저장소에만 저장되고 CRM 링크가 사용됩니다.
체크박스를 선택하면 녹음 파일이 CRM과 외부 저장소에 모두 저장됩니다.
외부 저장소 URL
URL은 다음 두 위치에서 사용됩니다.
하나는 CCAI Platform 어댑터에 미디어를 표시하는 것입니다. 외부 저장소 또는 CRM
다른 하나는 보고서에 있습니다. 보고서와 설정, 통화, 완료와 같은 메뉴에 미디어 URL이 표시됩니다.
CCAI Platform 포털에 커스텀 CRM 표시
자체 커스텀 빌드 CRM과 함께 커스텀 CRM 통합을 사용하는 경우 CCAI Platform 포털 내의 전용 페이지에 CRM을 로드할 수 있습니다. 사용 설정되면 CCAI Platform 포털의 CRM 탭이 커스텀 빌드 CRM 페이지를 로드하고 표시합니다. 이는 개발자 설정 > CRM에서 구성할 수 있습니다.
이 기능을 사용하면 상담사가 CCAI Platform 통화 및 채팅 어댑터를 사용하여 실시간 지원 세션을 처리하는 동시에 커스텀 CRM에서 작업할 수 있습니다. 여기에는 CCAI Platform 포털을 사용하여 자동으로 열린 계정 및 기록 세부정보와 모바일 앱 또는 소비자가 전달한 세션별 파일 및 데이터를 검토하는 작업이 포함됩니다.
맞춤 CRM 페이지 구성
맞춤 CRM 페이지를 구성하려면 다음 단계를 따르세요.
CCAI Platform 포털에서 설정 > 개발자 설정을 클릭합니다. 설정 메뉴가 표시되지 않으면 메뉴를 클릭합니다.
CRM 창에서 커스텀 CRM을 클릭합니다.
CCAI Platform 포털에 CRM 표시 전환 버튼을 클릭하여 사용 설정합니다.
표시 URL에 커스텀 CRM 페이지의 URL을 입력한 후 저장을 클릭합니다.
맞춤 URL 화면 팝업 열기
시스템에서 연락처를 찾을 수 없는 경우 맞춤 URL 열기를 사용하여 맞춤 URL 화면 팝업을 표시합니다. 임시 계정 ID로 CRM 레코드를 만들고 대기열 수준 구성에 따라 매개변수가 있는 맞춤 링크를 트리거합니다.
대기열별로 화면 팝업 사용 설정
설정 > 대기열 > IVR로 이동하여 수정할 대기열을 클릭합니다.
패널에서 맞춤 URL 열기로 이동합니다.
URL을 입력하여 화면 팝업을 표시합니다.
변수 매개변수 {ACCOUNT_ID} 및 {PHONE_NUMBER}를 URL에 포함합니다.
예시가 제공됩니다.
- 저장을 클릭합니다.
맞춤 CRM 일반 API 통합
일반 API 통합 방법은 CRM의 API를 사용하여 CCAI Platform과 양방향 연결을 설정하는 기능을 제공합니다. 이 원활한 방법은 기본 제공 CRM 통합 환경과 동일한 느낌을 줍니다.
상담사는 통화 또는 채팅 세션에 대한 CRM 레코드를 만들기 위해 별도의 조치를 취하지 않아도 됩니다. 고유한 API 구성에 따라 원활한 레코드 조회 및 레코드 업데이트가 가능합니다.
용어
용어 |
설명 |
계정 |
CRM에서 계정/연락처/고객/리드 항목을 참조하는 데 사용됩니다. CRM에서 이 항목에 다른 이름을 사용할 수 있습니다. 계정에는 레코드가 포함됩니다. |
레코드 |
CRM에서 케이스/티켓/대화/사고 항목을 참조하는 데 사용됩니다. CRM에서 이 항목에 다른 이름을 사용할 수 있습니다. 레코드는 계정에 속합니다. |
댓글 |
CRM에서 댓글/메모 항목을 참조하는 데 사용됩니다. CRM에서 이 항목에 다른 이름을 사용할 수 있습니다. 댓글은 레코드에 속합니다. |
API 설정
이 섹션에서는 커스텀 CRM API 설정과 관련된 설정을 간략하게 설명합니다.
인증 방법
CCAI Platform은 CRM에 대해 세 가지 인증 방법을 지원합니다.
기본 인증: 사용자 이름 및 비밀번호를 포함하는 사용자 인증 정보를 구성합니다.
커스텀 헤더: 커스텀 헤더 키-값 쌍인 필드 키 및 필드 값을 구성합니다. 필요한 만큼 쌍을 입력합니다.
OAuth: CCAI Platform은 승인에 사용되는 업계 표준 프로토콜인 OAuth 2.0을 지원합니다. '승인 URL 및 토큰 URL의 일부로 리디렉션 URL 포함' 옵션을 사용 설정해야 하는 경우 OAuth 정보를 지정합니다.
다음 값을 구성합니다.
승인 URL (필수)
토큰 URL (필수)
클라이언트 ID (필수 항목)
클라이언트 보안 비밀번호 (필수)
범위
주
액세스 유형
전화번호 형식
CRM 요청에 사용할 전화번호 형식을 선택합니다.
자동: 생성: +1 222 333 4444, 검색: *222*333*4444
E.164: +12223334444
미국 현지: 2223334444
미국 현지 표준: (111) 222-3333
미국 외: +1 222 333 4444
API 요청 제한 시간
드롭다운을 사용하여 API 요청 제한 시간을 1~10초로 구성합니다. 이 제한 시간은 구성하는 모든 엔드포인트에 적용됩니다.
CRM 조회 URL
상담사를 현재 계정 및 레코드로 가리키는 데 사용할 조회 URL을 지정합니다.
브라우저에서 계정 또는 레코드 페이지를 열 때 CRM에 표시되는 조회 URL을 입력합니다.
웹 SDK 및 모바일 SDK에서 CRM 조회 URL을 사용할 수도 있습니다. CRM 계정을 조회하고 에이전트 어댑터에 표시할 정보를 기록하도록 SDK를 구성할 수 있습니다. CRM 조회 URL의 전체 목록은 요청 URL 매개변수를 참조하세요.
계정 조회 URL
{ACCOUNT_ID} 변수를 사용하여 실제 계정 ID를 삽입합니다.
예:
https://www.example.com/contact/{ACCOUNT_ID}
레코드 조회 URL
{RECORD_ID} 변수를 사용하여 실제 레코드 ID를 삽입합니다.
예:
https://www.example.com/record/{RECORD_ID}
API 엔드포인트
이는 Generic API에서 가장 중요한 구성입니다.
상담사가 계정 조회를 사용할 수 있도록 하려면 계정 찾기 및 계정 만들기 엔드포인트를 구성해야 합니다.
또한 레코드 찾기 및 레코드 만들기 엔드포인트를 설정하여 에이전트에 레코드 조회 또는 생성을 사용 설정할 수 있습니다. 이를 위해서는 이전 단계의 계정 설정이 필요합니다.
마지막으로 레코드 업데이트, 파일 업로드, 댓글 엔드포인트를 입력하면 레코드 업데이트가 사용 설정됩니다. 이를 위해서는 이전 단계의 레코드 설정이 필요합니다.
엔드포인트 구성
다음 설정을 구성합니다.
요청 URL: API 엔드포인트 URL입니다.
POST, GET, PUT, PATCH 중에서 요청 메서드를 선택합니다.
요청 매개변수를 지정합니다. CCAI Platform 정의 변수를 사용하여 필수 정보를 전달할 수 있습니다 (아래 표 참조). 또한 일반 텍스트 또는 숫자를 매개변수 값으로 입력할 수 있습니다. 필요한 만큼 매개변수를 추가할 수 있습니다.
엔드포인트가 POST/PUT/PATCH인 경우 CCAI Platform은 요청 빌드 방법에 대한 보다 세부 설정 컨트롤을 제공합니다. 속성 또는 컨테이너에서 데이터 형식 요청을 선택합니다. 요청 JSON의 형식을 지정합니다.
Property의 인스턴스입니다. 이는 CCAI Platform이 매개변수에서 요청 본문을 빌드할 때 요청 객체가 기본 속성 맵임을 나타냅니다.
컨테이너. 이는 전송할 요청 객체 데이터가 구조 내에 중첩되어야 함을 나타냅니다. 맵 또는 배열에서 컨테이너 유형을 선택합니다. 컨테이너 이름을 입력합니다. 매개변수에서 요청 본문을 빌드할 때 상위 객체 이름으로 사용됩니다.
예: Map: { container_name : { …parameters } }
예: 배열: {container_name : [ { …parameters } ] }
응답 데이터 위치를 입력합니다. JSON 응답에서 대상 응답 객체를 찾는 데 사용됩니다.
요청 URL 매개변수
| 매개변수 | 변수 | 댓글 |
|---|---|---|
| 에이전트 ID | {AGENT_ID} |
내부 에이전트 ID입니다. |
| 상담사 커스텀 ID | {AGENT_CUSTOM_ID} |
사용자 프로필의 선택적 필드입니다. |
| 상담사 이메일 | {AGENT_EMAIL} |
응답하는 상담사의 이메일(해당하는 경우) |
| 최종 사용자 이름 | {NAME} |
|
| 최종 사용자 이름 | {FIRST_NAME} |
출처: Name |
| 최종 사용자 성 | {LAST_NAME} |
Name에서 가져오며, 누락된 경우 기본값은 --입니다. |
| 외부 ID | {UJET_ID} |
CCAI Platform 최종 사용자 ID |
| 이메일 | {EMAIL} |
|
| 통화 유형/세션 유형 | {SESSION_TYPE} |
|
| 최종 사용자 전화번호 | {PHONE_NUMBER} |
설정 선택을 사용하여 서식 지정됨 |
| 통화 ID | {Call_ID} |
CCAI Platform 통화 ID입니다. |
| 채팅 ID | {Chat_ID} |
CCAI Platform 채팅 ID입니다. |
| 언어 | {LANG} |
|
| 커스텀 UID | {CUSTOM_USER_ID} |
모바일: 이메일의 왼쪽입니다. 예를 들어 test.user3@test.co의 test.user3입니다. |
| 계정 ID | {ACCOUNT_ID} |
연락처 찾기/만들기 엔드포인트를 호출하여 찾았습니다. |
| 레코드 ID | {RECORD_ID} |
레코드 찾기/만들기 엔드포인트를 호출하여 찾았습니다. |
| 세션 ID | {SESSION_ID} |
CCAI Platform 세션 ID |
| 메뉴 경로 | {MENU_PATH} |
|
| 발신 전화번호 | {OUTBOUND_PHONE_NUMBER} |
설정 선택을 사용하여 서식 지정됨 |
| 큐 이름 | {QUEUE_NAME} |
|
| 큐 ID | {QUEUE_ID} |
내부 큐 ID입니다. |
| SDK 이름 | {SDK_NAME} |
웹 SDK 또는 모바일 SDK에 표시된 최종 사용자 이름입니다. |
| SDK 이메일 | {SDK_EMAIL} | 웹 SDK 또는 모바일 SDK에 표시된 최종 사용자 이메일 주소입니다. |
| SDK 휴대전화 | {SDK_PHONE} | 웹 SDK 또는 모바일 SDK에 표시된 최종 사용자 전화번호입니다. |
| SDK 식별자 | {SDK_IDENTIFIER} |
웹 또는 모바일 SDK 최종 사용자 또는 계정을 식별합니다. 이 속성에는 개인 식별 정보를 포함하지 마세요. 계정을 만들 때 이 식별자는 요청에 필요합니다. |
| 스마트 작업 세션 ID | {SMART_ACTION_SESSION_ID} |
|
| SmartAction: 인증 | (곧 제공 예정) | |
| 스마트 작업: 텍스트 입력 | (곧 제공 예정) | |
| 평점 | {RATING} |
사용자가 남긴 경우에만 사용 가능 |
| 의견 메시지 | {FEEDBACK} |
사용자가 남긴 경우에만 사용 가능 |
| 통화 시간 | {CALL_DURATION} |
mm:ss 형식 |
| Hold Time(대기 시간) | {HOLD_TIME} |
mm:ss 형식 |
| 대기 시간 | {WAIT_TIME} |
mm:ss 형식 |
| 통화 후 작업 시간 | (곧 제공 예정) | |
| 기기 유형 | {DEVICE_TYPE} |
|
| 연결 해제한 사용자 | {DISCONNECTED_BY} |
|
| 채널 | {CHANNEL} |
|
| 레코드 제목 | {TICKET_SUBJECT} |
기록 제목으로 사용됨 |
| 기록 설명 | {TICKET_DESCRIPTION} |
|
| 레코드 설명 HTML | {TICKET_DESCRIPTION_HTML} |
HTML 형식으로 지정된 설명과 동일 |
| 의견 본문 | {COMMENT_BODY} |
의견 추가 상황에서만 사용 가능 (평가 저장, 통화/채팅 종료, 통화/채팅 시작) |
| 파일 데이터 | {FILE_DATA} |
업로드 파일 엔드포인트에서만 사용할 수 있지만 멀티파트 양식의 base64 또는 데이터가 포함되어 있습니다. |
요청 URL 매개변수 함수
동적 CCAI Platform 변수를 지원하는 함수가 제공됩니다. 이러한 함수는 엔드포인트 설정의 요청 매개변수 섹션에서만 사용할 수 있습니다.
함수에서 생성된 결과 값은 문자열입니다. 함수에서 값이 반환되지 않으면 실행 전에 요청의 매개변수 목록에서 매개변수가 삭제됩니다.
| 함수 | 함수 구문 | 설명 |
|---|---|---|
| 기본값 | =DEFAULT_VALUE(val1, val2) |
null 또는 비어 있지 않으면 값이 val1를 사용하고 기본값은 val2로 돌아갑니다. |
연결 Or | =CONCAT_OR(val1, val2,
val3) | or를 사용한 여러 값의 연결입니다. 예: 'val1 or val2 or val3' |
연결 And | =CONCAT_AND(val1, val2,
val3) | and를 사용한 여러 값의 연결입니다. 예: 'val1 and val2 and val3' |
예시
다음은 요청 URL 매개변수 함수를 사용하는 몇 가지 예시입니다.
기본값
다음 예시에서는 Create a Record Endpoint에서 DEFAULT_VALUE을 사용합니다.
에이전트 설정의 키와 값은 기본 함수를 사용하여 에이전트 이메일 값이 비어 있는 경우 대체 값을 사용합니다. 상담사 이메일은 몇 가지 이유로 레코드 생성 시 비어 있을 수 있습니다. 고객이 할당된 상담사가 수신 전화를 받기 전에 IVR 통화를 종료했거나 채팅의 경우 상담사가 응답하기 전에 레코드가 생성됩니다. 이렇게 하면 필수 매개변수가 이후 업데이트까지 안전한 값으로 기본 설정되거나 중단된 호출의 경우에 설정될 수 있습니다.

연결
다음 예시에서는 Find an Account by Query 엔드포인트에서 CONCAT_OR를 사용합니다. 이 예시는 Zoho CRM에만 해당되지만 CONCAT_OR를 사용하는 방법을 보여줍니다. CONCAT_AND는 or 대신 and로 값을 연결하는 대신 동일한 규칙을 따릅니다. 실행 시 엔드포인트에 있는 값과 요청 매개변수로 전달된 결과 값은 다음 사례를 참조하세요.

| 키 있음 | 결과 값 |
|---|---|
ACCOUNT_ID |
(Id:equals:<uuid>) |
ACCOUNT_ID, EMAIL |
(Id:equals:<uuid>) 또는 (Email:equals:kim@example) |
PHONE_NUMBER, EMAIL |
(Phone:equals:+12223334444) 또는 (Email:equals:kim@example) |
API 계정
API 계정 엔드포인트는 CRM의 계정과의 통합을 지원합니다.
400 오류를 반환하는 엔드포인트에 대한 호출은 재시도됩니다. 다른 오류를 반환하는 호출은 다시 시도하지 않습니다. 재시도는 일주일 동안 계속되며 지수 감소에 따라 감소합니다. API 흐름에 대한 자세한 내용은 맞춤 CRM 일반 API: 흐름을 참조하세요.
쿼리 엔드포인트로 계정 찾기 (이전의 계정 엔드포인트 찾기)
이 엔드포인트는 전화번호, 이메일 또는 내부 CRM ID로 계정을 찾는 데 사용됩니다. 계정을 찾는 데 사용되는 기본 엔드포인트입니다.
응답 예:
{
"id": 123,
"name": "Kim",
"phone": "11234567890",
"email": "Kim@agents.co"
}
ID로 계정 찾기 엔드포인트
이 엔드포인트는 ID로 계정을 찾는 데 사용됩니다. 일반적으로 이 ID는 URL의 일부입니다. URL 유효성 검사는 URL이 ID로 구성되지 않은 경우도 고려하므로 이 엔드포인트는 사용되지 않습니다. 이는 REST 표준을 따릅니다. 조회 실패 시 404가 반환되면 다음 단계는 쿼리로 찾기입니다.
응답 예:
{
"id": 123,
"name": "Kim",
"phone": "11234567890",
"email": "Kim@agents.co"
}
계정 엔드포인트 만들기
이 엔드포인트는 계정을 찾지 못한 경우 계정을 만드는 데 사용됩니다. 대부분의 CRM에서는 레코드를 계정에 연결해야 합니다. 통합된 흐름을 만들기 위해 모든 CRM에 이 요구사항을 적용합니다.
API 레코드
API 레코드 엔드포인트는 CRM의 레코드 또는 케이스와 통합하는 기능을 제공합니다.
쿼리로 레코드 찾기 (이전의 레코드 엔드포인트 찾기)
이 엔드포인트는 기준에 따라 레코드를 찾는 데 사용됩니다. 일반적으로 계정과 연결된 레코드를 찾는 데 사용됩니다. CCAI Platform이 기존 레코드를 재사용하도록 구성된 경우 발견된 레코드가 사용됩니다. 이 엔드포인트는 레코드를 찾는 데 사용되는 기본 엔드포인트입니다.
응답 예:
{
"id": 456,
"subject": "Record title",
"status": "open", // enumerated status open/closed, or 1,2,3
"contactId": 123, // contact attached to ticket
"phone": "11234567890", // contact phone
}
레코드 엔드포인트 만들기
이 엔드포인트는 레코드를 만드는 데 사용됩니다. 레코드 찾기 요청에서 레코드를 찾을 수 없거나 CCAI Platform이 기존 레코드를 재사용하지 않도록 구성된 경우 새 레코드가 생성됩니다.
요청 예시:
{
"id": 123,
"subject": "Record title",
"description": "A longer description of the record, can be formatted in html",
"phone": "11234567890", // can be saved in multiple formats
"contactId": 123,
"sourceType": "PHONE", // PHONE/CHAT
"menu": "queue1",
"direction": "outgoing",
"rating": 5, // 1-5 scale
"feedback": "the agent was great!" // description of rating
}
레코드 엔드포인트 업데이트
이 엔드포인트는 레코드를 업데이트하는 데 사용됩니다. 레코드의 제목과 설명을 업데이트합니다. 이 엔드포인트는 CSAT 평점 저장, 통화 또는 채팅 종료 이벤트, 선택한 대기열, 사용자 확인 등 CCAI Platform 이벤트에 따라 레코드를 업데이트하는 데도 선택적으로 작동합니다.
파일 업로드 엔드포인트
이 엔드포인트는 첨부파일을 업로드하는 데 사용됩니다.
업로드 엔드포인트의 유형을 선택합니다.
Base64로 인코딩된 형식
멀티파트 양식
첨부할 파일 선택
통화 녹음
채팅 스크립트
음성메시지
포토
동영상
세션 메타데이터 파일
ID 및 첨부파일 URL에서 첨부파일 유형을 선택합니다. 응답 JSON의 형식을 지정합니다.
ID
첨부파일 ID 첨부파일 ID의 JSON 응답에서 매개변수 위치를 입력합니다. 이는 {ATTACHMENT_ID}로 첨부파일 빌더 URL에 사용할 수 있습니다.
첨부파일 작성 도구 URL. 파일 첨부파일을 다운로드할 URL을 입력합니다. RECORD_ID 및 ATTACHMENT_ID는 사용 가능한 변수입니다.
예를 들면 다음과 같습니다.
https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}첨부파일 URL
파일 다운로드 URL의 JSON 응답에서 매개변수 위치를 입력합니다.
파일이 업로드될 때 CCAI Platform에서 레코드에 댓글을 남기도록 하려면 CRM 레코드에 댓글 추가 체크박스를 선택합니다. 이러한 댓글에는 Comment 엔드포인트의 텍스트 형식 설정이 적용됩니다.
다음 예시는 POST/PUT/PATCH를 사용하는 멀티파트 양식 예시입니다.
{
"file": <file data>
"id": 123, // optional, this can also just be part of the URL;
// for example https://example-customer.com/upload/record/{RECORD_ID}
}
응답 예:
예시 A: 다운로드 URL이 있음
{
"id": 123,
"url": "https://some-hosted-url.com"
}
예시 B
이 경우 다운로드 URL은 없지만 이 ID를 사용하는 다운로드 첨부파일 엔드포인트가 있습니다. 예를 들면 https://www.customer-api.com/record/{RECORD_ID}/Attachments/{ATTACHMENT_ID}입니다.
{
"id": 123
}
댓글 엔드포인트
이 엔드포인트는 레코드에 댓글을 추가하는 데 사용됩니다. 엔드포인트가 구성된 경우 CCAI Platform 플랫폼은 이벤트가 있는 레코드에 댓글을 추가합니다.
통화 또는 채팅 시작
통화 또는 채팅 종료
고객만족도(CSAT) 평점 및 의견
고객 데이터 패키지
이전 댓글
처분 코드 및 메모
설문조사 질문 및 답변
댓글의 텍스트 형식을 선택합니다. 텍스트를 HTML로 변환 체크박스가 선택되어 있으면 텍스트가 HTML 형식으로 표시되고 그렇지 않으면 일반 텍스트로 표시됩니다.
요청 예시, POST/PUT/PATCH:
{
"comment": "Some text",
// string can also be formatted on CCAI Platform side as HTML).
"id": 123,
// optional, this can also just be part of the URL;
// for example https://example-customer.com/comment/record/{RECORD_ID}
}
맞춤 CRM 일반 API: 흐름
CCAI Platform의 커스텀 CRM (일반 API) 통합은 일련의 흐름으로 작동합니다. 통화, 채팅 또는 음성사서함이 시작되면 플랫폼은 구성된 계정 및 레코드 단계를 실행하여 CRM에서 계정과 레코드 (예: 티켓 또는 케이스)를 찾거나 만듭니다. 상호작용 중과 상호작용 후에는 댓글, 레코드 업데이트, 파일 업로드와 같은 작업도 실행합니다. 다음 플로우 차트는 각 단계가 실행되는 시점과 실행을 위해 구성해야 하는 항목을 보여줍니다.
흐름 실행 시점
이러한 흐름은 상호작용의 여러 지점에서 실행됩니다. 상호작용 중에 계정 및 기록 단계가 실행됩니다. 녹음 파일, 스크립트, 음성사서함은 상호작용이 종료된 후 댓글, 업데이트 기록, 기타 세션 후 작업과 함께 업로드됩니다. 사진, 동영상, 문서, 오디오와 같은 첨부파일은 상호작용 중에 공유될 때 업로드됩니다. 이러한 흐름 중 하나가 실행되기 전에 다음을 수행합니다.
- 작업 트리거가 발생했습니다(예: 업로드할 수 있는 파일이 있거나 통화, 채팅 또는 음성사서함이 종료됨).
- 맞춤 CRM 설정에서 관련 작업이 사용 설정되어 있습니다. 예를 들어 파일 형식이 업로드에 사용 설정되어 있거나 API 댓글 또는 API 업데이트 엔드포인트가 구성되어 있습니다.
- CRM에 기록하는 모든 작업 (레코드에 업로드, 댓글 게시, 레코드 업데이트)의 경우 필수 엔드포인트가 구성되고 세션에 대한 레코드가 존재합니다. 레코드가 아직 생성되지 않은 경우 플랫폼은 작업을 보류하고 레코드가 존재하면 자동으로 실행합니다.
외부 저장소에 파일을 업로드하는 데는 레코드가 필요하지 않습니다. 레코드 요구사항은 CRM 쓰기에 적용됩니다.
일부 구성에서는 계정이 세션 기록 역할을 합니다. 기록 생성을 건너뛰고 세션 데이터가 CRM 계정으로 푸시되면 기록 수준 엔드포인트 대신 계정 수준 댓글, 업로드, 업데이트 엔드포인트가 사용됩니다. 다이어그램에서 '레코드'에는 이 구성이 사용 설정된 경우 세션 레코드 역할을 하는 계정이 포함됩니다.
계정, 레코드, 세션 후 순서 지정, 재시도 타이밍, 오류 동작은 맞춤 CRM (일반 API)의 오류 처리, 재시도, 호출 순서 지정을 참고하세요.
플로우 차트
이 플로우 차트에는 세 가지 결과가 반복적으로 나타납니다.
| 결과 | 의미 |
|---|---|
| 건너뜀 | 구성에 의해 작업이 사용 중지되어 아무것도 전송되지 않습니다. |
| 보류됨 | 작업이 구성되었지만 레코드가 존재할 때까지 기다린 후 자동으로 실행됩니다. |
| 구성 미완료 | 필수 엔드포인트가 누락되어 작업을 실행할 수 없습니다. |
기본 흐름
상호작용은 계정 단계, 기록 단계, 세션 후 작업을 실행합니다. 각 단계는 자체 설정과 엔드포인트가 구성된 경우에만 실행됩니다. 외부 저장소 업로드는 레코드 없이 실행되며, 다른 세션 후 작업은 CRM에 기록되고 레코드가 존재할 때까지 대기합니다. 이 개요에서는 세션 후 경로를 보여줍니다. 상호작용 중에 공유된 파일은 사용 가능해지는 즉시 파일 업로드 흐름을 따릅니다.

계정 찾기 또는 만들기
플랫폼은 제공된 ID, 전화번호, 이메일 또는 구성된 일치 방법을 통해 계정을 조회합니다. 계정을 찾을 수 없고 계정 생성이 사용 설정된 경우 계정을 만들거나, 식별 세부정보가 없는 경우 익명 계정을 만듭니다. 그런 다음 찾거나 만든 계정이 세션에 연결됩니다.

레코드 찾기 또는 만들기
녹화 모드가 사용 설정되면 플랫폼은 세션에 기존 녹화가 아직 사용 가능한 경우 이를 재사용하고, 그렇지 않으면 새 녹화를 만듭니다. 레코드 ID는 요청과 함께 제공되거나 상호작용과 이미 연결된 레코드에서 제공될 수 있습니다. 요청에 레코드 ID가 제공되면 플랫폼은 해당 레코드를 재사용했는지 아니면 새 레코드를 만들었는지 여부를 나타내는 댓글도 추가합니다.

레코드 업데이트
레코드가 있으면 플랫폼은 구성된 템플릿에서 빌드된 업데이트 요청을 전송합니다. 업데이트 엔드포인트가 플레이스홀더 값으로 설정된 경우 업데이트를 건너뜁니다.

세션 후 작업
세션이 끝나면 여러 독립적인 작업이 실행될 수 있으며, 각 작업은 자체 이벤트(완료된 통화, 채팅 또는 이메일, 제출된 평점, 답변된 설문조사, 세션 후 녹음, 스크립트 또는 음성메시지 사용 가능)에 의해 트리거됩니다. 파일 업로드는 파일 업로드 흐름을 따릅니다. 댓글 및 업데이트 작업은 CRM에 기록되고 레코드가 존재할 때까지 대기합니다.

댓글
댓글은 완료, 평가, 설문조사 또는 파일 업로드 작업으로 게시할 수 있습니다. API Comment 엔드포인트와 기존 레코드가 필요하며 레코드가 존재할 때까지 기다립니다. 댓글은 댓글 설정에 따라 HTML 또는 일반 텍스트로 게시됩니다.

파일 업로드 흐름
외부 저장소는 파일 형식별로 사용 설정됩니다. 파일 형식에 대해 사용 설정하면 파일이 외부 저장소로 이동하고, 그렇지 않으면 파일이 CRM으로 이동합니다. 별도의 설정을 통해 파일을 외부 저장소로 전송한 후 CRM에 업로드할 수도 있습니다. CRM에 쓰기 (첨부파일 또는 댓글)는 레코드가 있는 경우에만 한 번 실행됩니다.

에이전트 어댑터
커스텀 CRM은 어댑터 (UI 위젯)를 CRM 시스템에 통합하는 일반적인 방법을 제공합니다. CRM 시스템은 어댑터가 활성화되고 트리거되는 방식을 처리할 수 있어야 합니다.
사용자 인터페이스 어댑터를 통합하려면 일반적으로 CRM 소프트웨어 또는 애플리케이션이 필요합니다. Google은 이미 Salesforce, Kustomer, Zendesk 등 여러 CRM 소프트웨어에 이 기능을 제공하고 있습니다.
iFrame
에이전트 어댑터는 iFrame 태그를 사용하여 CRM 또는 기타 도구에 원활하게 통합할 수 있습니다. HTML iframe 태그에 대한 자세한 내용은 HTML iframe 태그를 참조하세요.
하지만 CRM은 어댑터가 사용자에게 표시되는 방식을 처리해야 합니다. 예를 들어 어댑터를 표시하거나 숨길 수 있는 UI 버튼이 있을 수 있습니다. 또한 어댑터를 드래그 가능하도록 설계하여 상담사가 화면에서 편리하게 위치를 변경할 수 있습니다. 다음 예시는 URL 형식을 보여줍니다.
통화 어댑터:
https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom
채팅 어댑터:
https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom
iFrame 템플릿
통화 어댑터:
html
<iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom" allow="microphone; camera; geolocation" width="290" height="600"></iframe>
채팅 어댑터:
html
<iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom" allow="microphone; camera; geolocation" width="450" height="590"></iframe>
어댑터를 삽입할 때는 다음 사항에 유의하세요.
allow속성은 필수입니다. 통화 어댑터는 WebRTC를 사용하며microphone가 필요합니다.camera및geolocation는 화면 공유 및 위치 인식 기능에 필요합니다. 권한이 iframe에 위임되지 않으면 브라우저가 자동으로 권한을 차단하고 상담사가 전화를 받을 수 없습니다.iframe당 하나의 어댑터를 삽입합니다. 각 어댑터는 자체 실시간 연결을 유지하므로 통화 및 채팅 어댑터는 두 개의 개별 iframe이며 이벤트를 독립적으로 게시합니다.
어댑터는 상위 창이 다른 출처에 있다는 사실을 통해 자신이 삽입되어 있음을 감지합니다. CCAI Platform 테넌트 도메인이 아닌 자체 도메인에서 호스트 페이지를 제공합니다.
URL 매개변수
URL 매개변수를 사용하여 상호작용 유형 (통화 또는 채팅), 상호작용 소스(커스텀), 기타 관련 세부정보와 같은 추가 정보를 소프트웨어에 제공할 수 있습니다.
테넌트 CRM 설정을 목록에서 사용할 수 없는 경우 From 매개변수를 항상 Custom으로 설정해야 합니다.
유형
- 통화
- 채팅
보낸사람
- 맞춤 (테넌트 CRM 설정과 일치해야 함) 목록에 없는 CRM의 경우 항상 custom이어야 합니다. CRM 설정이 없으면 이 파라미터를 건너뛸 수 있습니다.
에이전트 어댑터의 이벤트
에이전트 어댑터는 CRM 시스템에서 후크할 수 있는 이벤트를 게시하고, CRM 시스템은 CRM에 대한 업데이트를 처리합니다. 이를 위해 CRM은 상위 창의 게시물을 수신 대기하고 게시물 데이터를 읽어야 합니다. 데이터를 기반으로 특정 세션 ID의 티켓 탭을 여는 등의 작업을 트리거할 수 있습니다.
통화 어댑터와 채팅 어댑터 모두 CRM 기능을 향상시키는 데 사용할 수 있는 특정 이벤트가 있습니다.
어댑터 호출
- 새 통화
- 소비자 참여함
- 통화 수정 시작됨
- 통화 수정 종료됨
- 통화 종료
채팅 어댑터
- 새 채팅
- 활성 채팅
- 채팅 수신 메시지
- 채팅 아웃바운드 메시지
- 양식 전송됨
- 양식 작성 완료
- 채팅 종료
- 종료된 채팅
두 어댑터 모두
- 상담사 로그인
- 화면 공유 세션이 시작되었습니다.
- 화면 공유 세션 원격 제어가 변경됨
- 화면 공유 세션 전체 기기 변경됨
- 화면 공유 세션 종료됨
- 이전
- 당사자 추가됨
- 상담사가 세션에 연결됨
- 상담사 로그아웃
- Agent Assist 추가됨
- 가상 작업 어시스턴트 참여함
- 가상 작업 어시스턴트가 나감
- 가상 작업 어시스턴트 세션 변수 수신됨
- CRM 레코드 팝업
- 서드 파티 페이지 열기
메시지 형식
모든 이벤트는 브라우저의 window.postMessage() API를 사용하여 어댑터 iframe에서 직접 상위 창 (window.parent)으로 전송됩니다. 상위 창은 이를 MessageEvent로 수신합니다.
메시지에는 다음과 같은 특성이 있습니다.
event.data는 객체가 아닌 JSON 문자열입니다. 읽기 전에 항상JSON.parse(event.data)를 호출합니다. 페이지의 다른 스크립트도 JSON이 아닌 페이로드와 함께postMessage()를 사용할 수 있으므로 파싱을try/catch로 래핑합니다.파싱된 객체에는 정확히 두 개의 최상위 키가 있습니다.
{ "type": "<event type>", "data": { ... } }type는 이벤트 유형에 나열된 문자열 중 하나입니다.data는 이벤트 데이터에 설명된 이벤트 필드를 보유합니다. 모든 이벤트별 필드는data내부에 있으며 최상위 수준에 있지 않습니다.빈 필드는 생략됩니다. 게시하기 전에 어댑터는 값이
null,undefined또는 빈 문자열인data의 모든 필드를 삭제합니다. 모든 필드가 누락될 수 있다고 가정하고null값과 함께 키가 있다고 확신하지 마세요.어댑터는
*의 타겟 출처로 게시하므로 iframe을 삽입하는 모든 페이지에 메시지가 전달됩니다. 어댑터는 이벤트를 수신할 수 있는 사용자를 제한하지 않습니다. 리스너는 테넌트의 호스트 (예:https://tenant.loc.ccaiplatform.com)에 대해event.origin을 확인하고 다른 출처의 메시지를 무시해야 합니다. 그래야 동일한 페이지의 다른 iframe이 어댑터 이벤트를 스푸핑할 수 없습니다.type값은 대소문자를 구분하며 대소문자가 균일하지 않습니다. 대부분은Title_Case(New_Call,End_Chat)이고 일부는 소문자(call_redaction_started,call_redaction_ended,agent_assist_added) 또는 camelCase (openThirdPartyPage)입니다. 이 문서의 정확한 문자열과 비교하세요.이벤트는 어댑터가 삽입된 동안에만 게시됩니다 (상위 창이 다른 창임). 어댑터가 최상위 페이지로 열리면 아무것도 게시되지 않습니다.
다음 예는 이러한 규칙을 적용하는 최소 리스너를 보여줍니다.
// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'
window.addEventListener('message', (event) => {
if (event.origin !== ADAPTER_ORIGIN) {
return
}
let message
try {
message = JSON.parse(event.data)
} catch (e) {
// Not an agent adapter event; another script on the page posted it.
return
}
const { type, data = {} } = message
switch (type) {
case 'New_Call':
// data.call_id, data.agent_id, data.queue_id, ...
break
case 'New_Chat':
// data.chat_id, data.agent_id, data.queue_id, ...
break
case 'CRM_Record_Pop':
// data.recordUrl
break
default:
// Ignore event types you don't handle; new types may be added over time.
break
}
}, false)
에이전트 어댑터에 보내는 메시지
통신은 대부분 단방향 (어댑터에서 호스트로)이지만 호스트 페이지는 postMessage()를 사용하여 통화 어댑터에 소규모 명령어 집합을 보낼 수 있습니다. 이러한 메시지는 다음 스키마가 있는 일반 객체 (JSON 문자열 아님)입니다.
iframe.contentWindow.postMessage({
channel: '<channel name>',
eventType: '<event type>'
}, ADAPTER_ORIGIN)
api:redaction 채널에서는 다음 명령어가 지원됩니다. 호스트 페이지에서 통화 수정 녹음을 일시중지하고 다시 시작하는 데 사용됩니다.
eventType |
설명 |
|---|---|
start_call_redaction |
진행 중인 통화의 녹음을 일시중지하여 수정 작업을 시작합니다. |
stop_call_redaction |
진행 중인 통화의 녹음을 재개하여 수정 작업을 중지합니다. |
다음에 유의하세요.
명령어는 테넌트에 통화 수정이 사용 설정되어 있고 활성 통화가 있는 경우에만 실행됩니다. 그렇지 않으면 어댑터는 메시지가 무시되었다고 로깅하고 아무 작업도 수행하지 않습니다.
어댑터가 명령어에 따라 작동하면 일치하는
call_redaction_started또는call_redaction_ended이벤트를 호스트에 다시 게시하므로 녹음 상태가 실제로 변경되었는지 확인할 수 있습니다.항상 테넌트 출처를
*대신postMessage()의 두 번째 인수로 전달하여 iframe이 탐색되는 경우 명령어가 다른 페이지로 전달되지 않도록 합니다.redact_call:start및redact_call:stop이벤트 유형이 있는 이전crm:authority채널은 이전 버전과의 호환성을 위해 맞춤 CRM 어댑터에서 계속 허용되지만 새 통합에서는api:redaction를 사용해야 합니다.
자세한 내용은 통화 수정을 참고하세요.
이벤트 데이터
call_id: IVR(대화형 음성 응답)이 있는 음성 인바운드 전화의 식별자입니다.chat_id: 메시지 인바운드 전화 (웹 또는 모바일 채팅)의 식별자입니다.cobrowse_session_id: 화면 공유 세션의 식별자입니다. 화면 공유 세션은 통화 또는 채팅 세션 중에 시작할 수 있습니다.session_type: 음성, 채팅, 메시지 등 세션 유형입니다.va_data_parameters: 가상 에이전트로 전송하기 위해 큐에 구성된 모든 변수입니다. 이는 가상 에이전트와 관련된 이벤트에만 필요합니다. (선택사항)session_variable: 페이로드에서 CCAI Platform으로 전송되는 가상 에이전트의 모든 변수입니다. (선택사항)custom_sip_headers: 수신 SIP 통화의 커스텀 SIP 헤더가 POST 이벤트 로그에 표시됩니다. 커스텀 SIP 헤더가 사용되는 경우에만 필요합니다. (선택사항)custom_data_secured: 서버의 서명된 커스텀 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 커스텀 데이터를 참고하세요. (선택사항)
상담사 ID
agent_id: 에이전트의 식별자입니다.from_agent_id: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 원래 상담사를 나타내는 데 사용됩니다.to_agent_id: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 대상 상담사를 나타내는 데 사용됩니다.agent_custom_id: 사용자 프로필에 입력된 경우 사용자 프로필의 상담사 ID입니다. (선택사항)from_agent_custom_id: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 원래 상담사를 나타내는 데 사용됩니다.to_agent_custom_id: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 대상 상담사를 나타내는 데 사용됩니다.agent_email: 상담사의 이메일 주소입니다.from_agent_email: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 원래 상담사를 나타내는 데 사용됩니다.to_agent_email: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 대상 상담사를 나타내는 데 사용됩니다.
가상 에이전트 ID
virtual_agent_id: 특정 가상 에이전트에 할당된 ID 번호입니다.
대기열 ID
queue_id: CCAI Platform 대기열의 식별자이며 통화가 대기열에서 시작된 경우에만 존재합니다.from_queue_id: 통화 또는 채팅을 한 대기열에서 다른 대기열로 라우팅할 때 원래 대기열을 나타내는 데 사용됩니다.to_queue_id: 통화 또는 채팅을 한 대기열에서 다른 대기열로 라우팅할 때 대상 대기열을 나타내는 데 사용됩니다.queue_path: CCAI Platform 대기열의 경로이며 통화가 대기열에서 시작된 경우에만 존재합니다.from_queue_path: 통화 또는 채팅을 한 대기열에서 다른 대기열로 라우팅할 때 원래 대기열을 나타내는 데 사용됩니다.to_queue_path: 통화 또는 채팅을 한 대기열에서 다른 대기열로 라우팅할 때 대상 대기열을 나타내는 데 사용됩니다.
Campaign ID
campaign_id: CCAI Platform 캠페인 ID입니다. 통화 유형이 캠페인 통화인 경우에만 포함됩니다.campaign_name: CCAI Platform 캠페인 이름입니다. 통화 유형이 캠페인 통화인 경우에만 포함됩니다.
메시지
message: 새 소비자 메시지가 수신되었음을 나타내는 이벤트 및 메시지 콘텐츠입니다.
세션 유형
session_type: CCAI Platform 세션 유형입니다.cobrowse_session_remote_control: 요청된 원격 제어 화면 공유 세션의 상태를 나타냅니다. 값:off,requested,rejected,oncobrowse_session_full_device: 전체 기기 화면 공유 세션의 상태를 나타냅니다. 값:off,requested,rejected,on
참여자
type: 참여자 유형 -end_user,agent(/api/v1/calls 또는 /api/v1/chats 응답의 participants.type에서 가져옴)cobrowse_session_requested_by: 화면 공유 세션을 시작한 사용자를 나타냅니다. 가능한 값은agent또는end_user입니다.cobrowse_session_ended_by: 화면 공유 세션을 종료한 사용자를 나타냅니다. 가능한 값은agent,end_user또는api입니다.end_user_id:/api/v1/calls또는/api/v1/chats응답의participants.end_user_id입니다. 이 필드는 유형이end_user인 경우에만 표시됩니다.
상호작용/세션 유형
통화 유형
- 음성 수신: 표준 PSTN 통화
- 음성 인바운드 (모바일을 사용하는 IVR): 모바일 SDK에서 이루어지는 대체 PSTN 통화입니다.
- 음성 인바운드 (모바일): 설치된 모바일 SDK를 사용하여 소비자가 전화를 겁니다.
- 음성 콜백 (웹): 웹 SDK에서 시작됩니다.
- 음성 인바운드 (API): API를 사용하여 시작됩니다.
- 음성 예약 (모바일): 설치된 모바일 SDK를 사용하여 예약됩니다.
- 예약된 음성 (웹): 설치된 웹 SDK를 사용하여 예약됩니다.
- 음성 아웃바운드: 상담사가 번호를 다이얼하여 시작합니다.
- 음성 아웃바운드 (API): API를 사용하여 시작됩니다.
- 음성 캠페인: 아웃바운드 다이얼러 (캠페인)를 사용하여 시작됩니다.
채팅 유형
- 메시지 (WhatsApp): WhatsApp을 사용하여 시작됩니다.
- 메시지 수신 (SMS)
- 메시지 발신 (SMS)
- 발신 메시지 (API를 사용하는 SMS)
- 메시지 (웹): 설치된 웹 SDK를 사용하여 시작됩니다.
- 메시지 (모바일): 설치된 모바일 SDK를 사용하여 시작됩니다.
통화 또는 채팅 유형
- 화면 공유 세션: 통화 또는 채팅 중에 상담사 또는 최종 사용자가 시작합니다.
이벤트 유형
에이전트 어댑터에서 게시하는 이벤트 유형은 다음과 같습니다. type 열은 메시지의 type 필드에 표시되는 정확한 대소문자 구분 문자열입니다.
| 이벤트 | type |
어댑터 |
|---|---|---|
| 상담사 로그인 | Agent_Login |
둘 다 |
| 새 통화 | New_Call |
통화 |
| 소비자 참여 | Consumer_Joined |
통화 |
| 통화 종료 | End_Call |
통화 |
| 통화 수정 시작됨 | call_redaction_started |
통화 |
| 통화 수정 종료됨 | call_redaction_ended |
통화 |
| 새 채팅 | New_Chat |
채팅 |
| 채팅 종료 | End_Chat |
채팅 |
| 활성 채팅 | Active_Chat |
채팅 |
| 채팅 수신 메시지 | Chat_Inbound_Message |
채팅 |
| 채팅 아웃바운드 메시지 | Chat_Outbound_Message |
채팅 |
| 양식 전송됨 | Form_Sent |
채팅 |
| 양식 작성 완료 | Form_Completed |
채팅 |
| 종료된 채팅 | Dismissed_Chat |
채팅 |
| 화면 공유 세션 시작됨 | Cobrowse_Session_Started |
둘 다 |
| 화면 공유 세션 원격 제어가 변경됨 | Cobrowse_Session_Remote_Control_Changed |
둘 다 |
| 화면 공유 세션 전체 기기 변경됨 | Cobrowse_Session_Full_Device_Changed |
둘 다 |
| 화면 공유 세션 종료됨 | Cobrowse_Session_Ended |
둘 다 |
| 이전 | Transfer_Call, Transfer_Chat |
둘 다 |
| 당사자 추가됨 | Party_Added |
둘 다 |
| 상담사가 세션에 연결 | Agent_Joined_Call, Agent_Joined_Chat |
둘 다 |
| 상담사 로그아웃 | Agent_Logout |
둘 다 |
| Agent Assist 추가됨 | agent_assist_added |
둘 다 |
| 가상 작업 어시스턴트가 참여함 | Task_VA_Joined |
둘 다 |
| 가상 작업 어시스턴트가 나감 | Task_VA_Left |
둘 다 |
| 가상 작업 어시스턴트 세션 변수 수신됨 | Task_VA_Variables_Received |
둘 다 |
| CRM 기록 팝업 | CRM_Record_Pop |
둘 다 |
| 서드 파티 페이지 열기 | openThirdPartyPage |
통화 |
리스너는 인식하지 못하는 type 값을 무시해야 합니다. 시간이 지남에 따라 새로운 이벤트 유형을 추가할 수 있으며, 어댑터는 이 계약에 포함되지 않은 다른 CCAI Platform 표시 경로 (예: CCAI Platform 에이전트 데스크톱 내에서 호스팅되는 경우)를 위한 메시지도 게시합니다.
상담사 로그인
상담사 로그인 이벤트는 상담사가 어댑터에 로그인할 때 발생합니다.
다음은 Agent_Login 이벤트의 예입니다.
{
"type": "Agent_Login",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
에이전트 식별자입니다.
agent_id선택사항:
agent_custom_id: 에이전트의 커스텀 식별자입니다(에이전트 프로필에 입력된 경우).agent_email: 상담사 계정과 연결된 이메일 주소입니다.
새 수신 전화
상담사가 전화를 받으면 새 통화 이벤트가 발생합니다. 이 이벤트에는 통화가 시작된 시간, 통화를 처리한 상담사, 통화가 시작된 위치와 같은 정보가 포함됩니다.
다음은 New_Call 이벤트의 예입니다.
{
"type": "New_Call",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"queue_id": 8469,
"queue_path": "Developers / Kim",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"call_id": 103646,
"session_type": "Voice Campaign (UJET)"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
agent_id: 에이전트 식별자agent_custom_id: 상담사 프로필에 입력된 상담사의 맞춤 식별자입니다. (선택사항)agent_email: 상담사 계정과 연결된 이메일 주소queue_id: 호출이 시작된 큐의 식별자입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)queue_path: 호출이 시작된 큐의 경로입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)campaign_id: 캠페인의 식별자입니다. 이 필드는 캠페인 호출에 포함됩니다. (선택사항)campaign_name: 캠페인 이름입니다. 이 필드는 캠페인 호출에 포함됩니다. (선택사항)호출 식별자
call_idsession_type: 세션 유형virtual_agent_id: 가상 에이전트 식별자입니다. 이 필드는 가상 에이전트와 관련된 이벤트에 포함됩니다. (선택사항)va_data_parameters: 가상 에이전트로 전송하기 위해 큐에 구성된 변수입니다. 이 필드는 가상 에이전트와 관련된 이벤트에 포함됩니다. (선택사항)session_variable: CCAI Platform으로 전송되는 가상 에이전트의 모든 변수입니다. (선택사항)custom_sip_headers: 수신 SIP 통화의 커스텀 세션 시작 프로토콜 (SIP) 헤더가 POST 이벤트 로그에 표시되도록 사용 설정합니다. 이 필드는 맞춤 SIP 헤더가 사용되는 경우에 포함됩니다. (선택사항)custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 커스텀 데이터를 참고하세요. (선택사항)
소비자 참여함
소비자 레코드가 확인되고 목록 캠페인 관리자 (LCM) 키가 포함된 경우 캠페인 (아웃바운드 다이얼러) 통화에서 소비자 참여 이벤트가 발생합니다. 이를 통해 호스트 페이지는 나머지 통화 데이터가 도착하기 전에 자체 시스템에서 전화를 건 연락처를 조회할 수 있습니다. 이 이벤트는 연락처에 LCM 키가 있는 캠페인 통화에만 게시됩니다.
다음은 Consumer_Joined 이벤트의 예입니다.
{
"type": "Consumer_Joined",
"data": {
"lcmKey": "acqueon:12345",
"custom_sip_headers": {
"X-Account-Id": "A-100"
},
"va_data_parameters": {
"param1": "one"
},
"session_variable": {
"key_one": "value"
}
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
lcmKey: 전화를 건 연락처의 목록 캠페인 관리자 키custom_sip_headers: 통화의 커스텀 SIP 헤더입니다. 커스텀 SIP 헤더가 사용되는 경우 이 필드가 포함됩니다. (선택사항)va_data_parameters: 가상 에이전트에 전송하기 위해 큐에 구성된 변수입니다. (선택사항)session_variable: Contact Center AI Platform으로 전송되는 가상 에이전트의 변수입니다. (선택사항)
통화 수정 시작됨
통화 수정 시작 이벤트는 통화 수정이 시작되고 녹음되지 않을 때 발생합니다. 이벤트 데이터는 통화를 처리한 에이전트의 ID와 통화 ID로 구성됩니다.
이 이벤트의 type는 소문자(call_redaction_started)입니다.
agent_id: 통화를 처리한 상담사의 IDcall_id: 통화 ID
다음은 통화 수정 시작 이벤트의 예입니다.
{
"type": "call_redaction_started",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
통화 수정 중지됨
통화 수정 중지 이벤트는 통화 수정이 종료되고 녹음이 재개될 때 발생합니다. 이 이벤트는 통화를 처리한 에이전트의 ID와 call ID로 구성됩니다.
이 이벤트의 type는 소문자(call_redaction_ended)입니다.
agent_id: 통화를 처리한 상담사의IDcall_id: 통화의ID
다음은 통화 수정 중지 이벤트 데이터의 예시입니다.
{
"type": "call_redaction_ended",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
통화 종료
통화 종료 이벤트는 통화가 종료될 때 발생합니다. 이 이벤트에는 통화가 종료된 시간, 통화를 처리한 상담사, 통화가 시작된 위치와 같은 정보가 포함됩니다.
다음은 End_Call 이벤트의 예입니다.
{
"type": "End_Call",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"queue_id": 8469,
"queue_path": "Developers / Kim",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"call_id": 103646,
"session_type": "Voice Campaign (UJET)"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
agent_id: 에이전트 식별자agent_custom_id: 상담사 프로필에 입력된 상담사의 맞춤 식별자입니다. (선택사항)agent_email: 상담사 계정과 연결된 이메일 주소queue_id: 호출이 시작된 큐의 식별자입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)queue_path: 호출이 시작된 큐의 경로입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)campaign_id: 캠페인의 식별자입니다. 이 필드는 캠페인 호출에 포함됩니다. (선택사항)campaign_name: 캠페인 이름입니다. 이 필드는 캠페인 호출에 포함됩니다. (선택사항)호출 식별자
call_idsession_type: 세션 유형virtual_agent_id: 가상 에이전트 식별자입니다. 이 필드는 가상 에이전트와 관련된 이벤트에 포함됩니다. (선택사항)va_data_parameters: 가상 에이전트로 전송하기 위해 큐에 구성된 변수입니다. 이 필드는 가상 에이전트와 관련된 이벤트에 포함됩니다. (선택사항)session_variable: Contact Center AI Platform으로 전송되는 가상 에이전트의 모든 변수입니다. (선택사항)custom_sip_headers: 수신 SIP 통화의 커스텀 세션 시작 프로토콜 (SIP) 헤더가 POST 이벤트 로그에 표시되도록 사용 설정합니다. 이 필드는 맞춤 SIP 헤더가 사용되는 경우에 포함됩니다. (선택사항)custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 맞춤 데이터(선택사항)를 참고하세요. (선택사항)
새 채팅
상담사가 채팅 세션을 시작하면 새 채팅 이벤트가 발생합니다. 이 이벤트는 채팅이 시작된 시점을 나타내며 채팅을 처리한 상담사, 채팅이 시작된 위치와 같은 정보를 포함합니다.
다음은 New_chat 이벤트의 예입니다.
{
"type": "New_Chat",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
chat_id: 채팅 식별자session_type: 세션 유형agent_id: 에이전트 식별자입니다.agent_custom_id: 상담사 프로필에 입력된 상담사의 맞춤 식별자입니다. (선택사항)agent_email: 상담사 계정과 연결된 이메일 주소입니다.queue_id: 호출이 시작된 큐의 식별자입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)queue_path: 호출이 시작된 큐의 경로입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 맞춤 데이터(선택사항)를 참고하세요. (선택사항)
채팅 종료
채팅 세션이 종료되면 채팅 종료 이벤트가 발생합니다. 이 이벤트는 채팅이 종료된 시점을 나타내며 채팅을 처리한 상담사, 채팅이 시작된 위치와 같은 정보를 포함합니다.
다음은 End_Chat 이벤트의 예입니다.
{
"type": "End_Chat",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": null,
"queue_path": null,
"agent_custom_id": null
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
chat_id: 채팅 식별자입니다.session_type: 세션 유형입니다.agent_id: 에이전트 식별자입니다.agent_custom_id: 에이전트의 커스텀 식별자입니다(에이전트 프로필에 입력된 경우). (선택사항)agent_email: 상담사 계정과 연결된 이메일 주소입니다.queue_id: 호출이 시작된 큐의 식별자입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)queue_path: 호출이 시작된 큐의 경로입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 맞춤 데이터(선택사항)를 참고하세요. (선택사항)
진행 중인 채팅
활성 채팅 이벤트는 상담사가 채팅 어댑터의 채팅 탭으로 전환할 때 발생합니다.
다음은 Active_Chat 이벤트의 예입니다.
{
"type": "Active_Chat",
"data": {
"chat_id": 73521,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
chat_id: 채팅 식별자session_type: 세션 유형agent_id: 에이전트 식별자agent_custom_id: 에이전트의 커스텀 식별자입니다(에이전트 프로필에 입력된 경우). (선택사항)agent_email: 상담사 계정과 연결된 이메일 주소입니다.queue_id: 호출이 시작된 큐의 식별자입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)queue_path: 호출이 시작된 큐의 경로입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 맞춤 데이터(선택사항)를 참고하세요. (선택사항)
채팅 인바운드 메시지
채팅 인바운드 메시지 이벤트는 새 고객 메시지가 수신되었음을 나타냅니다. 메시지 콘텐츠가 포함됩니다.
채팅 수신 메시지 이벤트에 대해 다음 필드의 데이터가 보고됩니다.
chat_id: 채팅 세션을 식별합니다.session_type: 웹 채팅을 통한 인바운드 메시지와 같이 생성되는 세션 유형을 나타냅니다.agent_id: 채팅 세션을 처리하는 상담사를 식별합니다.agent_custom_id: 이 필드는 에이전트 프로필에 커스텀 ID가 포함된 경우에만 존재합니다. (선택사항)agent_email: 채팅 세션을 처리하는 상담사의 이메일 주소입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다. (선택사항)queue_id: 채팅 세션이 시작된 대기열의 ID입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다.queue_path: 채팅 세션이 시작된 대기열의 경로입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다.message: 새 소비자 메시지가 수신되었음을 나타내는 이벤트 및 메시지 콘텐츠custom_data_secured: 보안 SDK 맞춤 데이터의 전송을 허용합니다. (선택사항)custom_data_not_secured: 보안되지 않은 SDK 커스텀 데이터의 전송을 허용합니다. (선택사항)
다음은 Chat_Inbound_Message 이벤트의 예입니다.
{
"type": "Chat_Inbound_Message",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel",
"message" : "Can you help me with my order tracking number?"
}
}
채팅 발신 메시지
채팅 아웃바운드 메시지 이벤트는 새 소비자 메시지가 수신될 때 발생합니다. 메시지 콘텐츠가 포함됩니다.
채팅 발신 메시지 이벤트에 대해 다음 필드의 데이터가 보고됩니다.
chat_id: 채팅 세션을 식별합니다.session_type: 웹 채팅을 통한 인바운드 메시지와 같이 생성되는 세션 유형을 나타냅니다.agent_id: 채팅 세션을 처리하는 상담사를 식별합니다.agent_custom_id: 이 필드는 에이전트 프로필에 커스텀 ID가 있는 경우에만 포함됩니다. (선택사항)agent_email: 채팅 세션을 처리하는 상담사의 이메일 주소입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다. (선택사항)queue_id: 채팅 세션이 시작된 대기열의 ID입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다.queue_path: 채팅 세션이 시작된 대기열의 경로입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다.message: 이벤트는 새 소비자 메시지가 수신되었음을 나타내며 메시지 콘텐츠를 포함합니다.custom_data_secured: 보안 SDK 맞춤 데이터의 전송을 허용합니다. (선택사항)custom_data_not_secured: 보안되지 않은 SDK 커스텀 데이터의 전송을 허용합니다. (선택사항)
다음은 Chat_Outbound_Message 이벤트의 예입니다.
{
"type": "Chat_Outbound_Message",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel",
"message" : "Please give me a moment to look up your account information"
}
}
양식 전송됨
양식 전송 이벤트는 채팅 세션 중에 양식이 소비자에게 전송될 때 발생합니다. 두 이벤트 모두 채팅에서 해당 시스템 메시지를 수신할 때 채팅 어댑터에 의해 게시됩니다.
다음은 Form_Sent 이벤트의 예입니다.
{
"type": "Form_Sent",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"end_user_id": 5512,
"form_external_id": "payment-details",
"form_name": "Payment details",
"form_type": "secure",
"queue_id": 7678,
"queue_path": "HB TEAM / Kim",
"queue_language_id": "en",
"timestamp": 1727853575000
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
chat_id: 채팅 식별자session_type: 세션 유형agent_id: 에이전트 식별자agent_custom_id: 에이전트의 커스텀 식별자입니다(에이전트 프로필에 입력된 경우). (선택사항)agent_email: 상담사 계정과 연결된 이메일 주소end_user_id: 채팅에서 소비자의 식별자입니다. (선택사항)form_external_id: 전송된 양식의 외부 식별자입니다. (선택사항)form_name: 전송된 양식의 이름입니다. (선택사항)form_type: 전송된 양식의 유형입니다. (선택사항)queue_id: 채팅이 시작된 대기열의 식별자입니다. 이 필드는 채팅이 대기열에서 시작된 경우에 포함됩니다. (선택사항)queue_path: 채팅이 시작된 대기열의 경로입니다. 이 필드는 채팅이 대기열에서 시작된 경우에 포함됩니다. (선택사항)queue_language_id: 큐의 언어입니다. (선택사항)timestamp: 이벤트가 게시된 시간(유닉스 시간 이후 밀리초)va_data_parameters: 가상 에이전트에 전송하기 위해 큐에 구성된 변수입니다. (선택사항)session_variable: Contact Center AI Platform으로 전송되는 가상 에이전트의 모든 변수입니다. (선택사항)custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 커스텀 데이터를 참고하세요. (선택사항)
양식 작성 완료
양식 완료 이벤트는 소비자가 채팅 세션 중에 전송된 양식을 제출할 때 발생합니다. 이벤트 데이터에는 양식 전송 이벤트와 동일한 필드가 있습니다.
다음은 Form_Completed 이벤트의 예입니다.
{
"type": "Form_Completed",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"end_user_id": 5512,
"form_external_id": "payment-details",
"form_name": "Payment details",
"form_type": "secure",
"queue_id": 7678,
"queue_path": "HB TEAM / Kim",
"queue_language_id": "en",
"timestamp": 1727853601000
}
}
종료된 채팅
상담사가 채팅 어댑터에서 채팅 탭을 닫으면 채팅 종료 이벤트가 발생합니다.
다음은 Dismissed_Chat 이벤트의 예입니다.
{
"type":"Dismissed_Chat",
"data":{"chat_id":73522,
"session_type":"Messaging Inbound (Web Chat)",
"agent_id":1,
"agent_email":"ariel@example.com"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
chat_id: 채팅 식별자session_type: 세션 유형agent_id: 에이전트 식별자agent_custom_id: 에이전트의 커스텀 식별자입니다(에이전트 프로필에 입력된 경우). (선택사항)agent_email: 상담사 계정과 연결된 이메일 주소queue_id: 호출이 시작된 큐의 식별자입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)queue_path: 호출이 시작된 큐의 경로입니다. 이 필드는 통화가 대기열에서 시작된 경우에 포함됩니다. (선택사항)custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 맞춤 데이터(선택사항)를 참고하세요. (선택사항)
화면 공유 세션이 시작되었습니다.
화면 공유 세션 시작 이벤트는 상담사 또는 최종 사용자가 화면 공유 세션을 시작할 때 발생합니다. 화면 공유 세션은 통화 또는 채팅 중에 시작할 수 있습니다. 자세한 내용은 화면 공유를 참고하세요.
다음은 화면 공유 세션 시작 이벤트의 JSON 객체 예입니다.
{
"type": "Cobrowse_Session_Started",
"data": {
"agent_id": 5,
"chat_id": 791,
"cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
"cobrowse_session_requested_by": "agent",
"cobrowse_session_remote_control": "off",
"cobrowse_session_full_device": "off"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
agent_id: 에이전트 식별자입니다.call_id: IVR (대화형 음성 응답) 채널의 인바운드 전화 식별자입니다. 이 필드는 통화 중에 화면 공유 세션이 시작된 경우에 포함됩니다.chat_id: 웹 또는 모바일 채널의 인바운드 채팅 식별자입니다. 이 필드는 채팅 중에 화면 공유 세션이 시작된 경우에 포함됩니다.cobrowse_session_id: 화면 공유 세션의 식별자입니다.cobrowse_session_requested_by: 화면 공유 세션을 시작한 사용자를 나타냅니다. 값은agent및end-user입니다.cobrowse_session_remote_control: 원격 제어 화면 공유 세션의 상태를 나타냅니다. 값은on,rejected,requested,off입니다.cobrowse_session_full_device: 전체 기기 화면 공유 세션의 상태를 나타냅니다. 값은on,rejected,requested,off입니다.custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 맞춤 데이터(선택사항)를 참고하세요. (선택사항)
화면 공유 세션 원격 제어가 변경됨
화면 공유 세션 원격 제어 변경 이벤트는 원격 제어 화면 공유 세션의 상태가 변경될 때 발생합니다. 이 이벤트는 원격 제어 화면 공유 세션의 상태를 나타냅니다. 자세한 내용은 화면 공유를 참고하세요.
다음은 Cobrowse_Session_Remote_Control_Changed 이벤트의 JSON 객체 예시입니다.
{
"type": "Cobrowse_Session_Remote_Control_Changed",
"data": {
"agent_id": 5,
"chat_id": 791,
"cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
"cobrowse_session_remote_control": "requested"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
agent_id: 에이전트 식별자입니다.call_id: IVR (대화형 음성 응답) 채널의 인바운드 전화 식별자입니다. 이 필드는 통화 중에 화면 공유 세션이 시작된 경우에 포함됩니다.chat_id: 웹 또는 모바일 채널의 인바운드 채팅 식별자입니다. 이 필드는 채팅 중에 화면 공유 세션이 시작된 경우에 포함됩니다.cobrowse_session_id: 화면 공유 세션의 식별자입니다.cobrowse_session_remote_control: 원격 제어 화면 공유 세션의 상태를 나타냅니다. 값은on,rejected,requested,off입니다.custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 맞춤 데이터(선택사항)를 참고하세요. (선택사항)
화면 공유 세션 전체 기기 변경됨
화면 공유 세션 전체 기기 변경 이벤트는 전체 기기 화면 공유 세션의 상태가 변경될 때 발생합니다. 이 이벤트는 전체 기기 화면 공유 세션의 상태를 나타냅니다. 자세한 내용은 화면 공유를 참고하세요.
다음은 Cobrowse_Session_Full_Device_Changed 이벤트의 예입니다.
{
"type": "Cobrowse_Session_Full_Device_Changed",
"data": {
"agent_id": 5,
"cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
"cobrowse_session_full_device": "rejected"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
agent_id: 에이전트 식별자입니다.call_id: IVR (대화형 음성 응답) 채널의 인바운드 전화 식별자입니다. 이 필드는 통화 중에 화면 공유 세션이 시작된 경우에 포함됩니다.chat_id: 웹 또는 모바일 채널의 인바운드 채팅 식별자입니다. 이 필드는 채팅 중에 화면 공유 세션이 시작된 경우에 포함됩니다.Cobrowse_session_id: 화면 공유 세션의 식별자입니다.Cobrowse_session_full_device: 전체 기기 화면 공유 세션의 상태를 나타냅니다. 값은on,rejected,requested,off입니다.custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 맞춤 데이터(선택사항)를 참고하세요. (선택사항)
화면 공유 세션 종료됨
화면 공유 세션 시작 이벤트는 상담사, 최종 사용자 또는 API에 의해 화면 공유 세션이 종료될 때 발생합니다. 자세한 내용은 화면 공유 구성을 참조하세요.
다음은 Cobrowse_Session_Ended 이벤트의 예입니다.
{
"type": "Cobrowse_Session_Ended",
"data": {
"agent_id": 5,
"cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
"cobrowse_session_requested_by": "end_user",
"cobrowse_session_ended_by": "agent",
"cobrowse_session_remote_control": "on",
"cobrowse_session_full_device": "rejected"
}
}
다음은 이벤트 데이터 필드에 대한 설명입니다.
agent_id: 에이전트 식별자입니다.call_id: IVR (대화형 음성 응답) 채널의 인바운드 전화 식별자입니다. 이 필드는 통화 중에 화면 공유 세션이 시작된 경우에 포함됩니다.chat_id: 웹 또는 모바일 채널의 인바운드 채팅 식별자입니다. 이 필드는 채팅 중에 화면 공유 세션이 시작된 경우에 포함됩니다.cobrowse_session_id: 화면 공유 세션의 식별자입니다.cobrowse_session_ended_by: 화면 공유 세션을 종료한 사용자를 나타냅니다. 값은agent,end-user,api입니다.cobrowse_session_remote_control: 원격 제어 화면 공유 세션의 상태를 나타냅니다. 값은on,rejected,requested,off입니다.cobrowse_session_full_device: 전체 기기 화면 공유 세션의 상태를 나타냅니다. 값은on,rejected,requested,off입니다.custom_data_secured: 서버의 서명된 맞춤 데이터가 포함됩니다. (선택사항)custom_data_not_secured: 웹페이지의 서명되지 않은 커스텀 데이터가 포함됩니다. 자세한 내용은 서명되지 않은 채팅 커스텀 데이터(선택사항)를 참고하세요. (선택사항)
이전
전달 이벤트는 통화 또는 채팅이 전달될 때 발생합니다. 웜 트랜스퍼 또는 콜드 트랜스퍼를 의미할 수 있습니다.
다음 이벤트 필드는 전송 이벤트의 일부입니다.
chat_id또는call_id: 통화 또는 채팅 세션을 식별합니다.session_type: 웹 채팅을 통한 인바운드 메시지와 같이 생성되는 세션 유형을 나타냅니다.campaign_id: 캠페인 ID입니다. 이 필드는 통화 유형이 캠페인 통화인 경우에만 표시됩니다. (선택사항)campaign_name: 캠페인 이름입니다. 이 필드는 통화 유형이 캠페인 통화인 경우에만 표시됩니다. (선택사항)from_agent_id: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 원래 상담사를 나타내는 데 사용됩니다.from_agent_custom_id: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 원래 상담사를 나타내는 데 사용됩니다. (선택사항)from_agent_email: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 원래 상담사를 나타내는 데 사용됩니다.to_agent_id: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 대상 상담사를 나타내는 데 사용됩니다.to_agent_custom_id: 한 상담사에서 다른 상담사로 통화 또는 채팅을 라우팅할 때 대상 상담사를 나타내는 데 사용됩니다. (선택사항)to_agent_email: 통화 또는 채팅을 한 상담사에서 다른 상담사로 라우팅할 때 사용되며, 대상 상담사를 나타냅니다.from_queue_id: 통화 또는 채팅을 한 대기열에서 다른 대기열로 라우팅할 때 원래 대기열을 나타내는 데 사용됩니다.from_queue_path: 통화 또는 채팅을 한 대기열에서 다른 대기열로 라우팅할 때 원래 대기열을 나타내는 데 사용됩니다.to_queue_id: 한 대기열에서 다른 대기열로 통화 또는 채팅을 라우팅할 때 대상 대기열을 나타내는 데 사용됩니다.to_queue_path: 통화 또는 채팅을 한 대기열에서 다른 대기열로 라우팅할 때 대상 대기열을 나타내는 데 사용됩니다.virtual_agent_id: 가상 에이전트에 할당된 ID입니다. (선택사항)va_data_parameters: 가상 에이전트로 전송하기 위해 큐에 구성된 모든 변수입니다. 이는 가상 에이전트가 포함된 이벤트에만 필요합니다. (선택사항)session_variable: 페이로드에서 CCAI Platform으로 전송되는 가상 에이전트의 모든 변수입니다. (선택사항)custom_sip_headers: 수신 SIP 통화의 커스텀 SIP 헤더가 POST 이벤트 로그에 표시되도록 합니다. 커스텀 SIP 헤더가 사용되는 경우에만 필요합니다. (선택사항)custom_data_secured: 보안 SDK 맞춤 데이터의 전송을 허용합니다. (선택사항)custom_data_not_secured: 보안되지 않은 SDK 커스텀 데이터의 전송을 허용합니다. (선택사항)
다음은 전송 이벤트의 예입니다.
{
"type": "Transfer_Chat",
"data": {
"chat_id": 103646,
"session_type": "Messaging Inbound (SMS)",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"from_agent_id": 1,
"from_agent_custom_id": "007",
"from_agent_email": "Ira@example.com",
"to_agent_id" : 5
"to_agent_custom_id": "100"
"to_agent_email" : "ariel@example.com"
"from_queue_id": 8469,
"from_queue_path": "Developers / Ariel",
"to_queue_id" : 1234,
"to_queue_path" : "Schemes / Auric"
}
}
당사자 추가됨
당사자 추가 이벤트는 모든 이전을 의미합니다. 통화 또는 채팅 트랜스퍼일 수 있습니다.
파티 추가 이벤트에는 다음 데이터가 포함됩니다.
chat_id또는call_id: 통화 또는 채팅 세션을 식별합니다.session_type: 웹 채팅을 통한 인바운드 메시지와 같이 생성되는 세션 유형을 나타냅니다.agent_custom_id: 이 필드는 에이전트 프로필에 커스텀 ID가 포함된 경우에만 존재합니다. (선택사항)agent_email: 통화 또는 채팅 세션을 처리하는 상담사의 이메일 주소입니다.queue_id: 채팅 세션이 시작된 대기열의 ID입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다. (선택사항)queue_path: 채팅 세션이 시작된 대기열의 경로입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다. (선택사항)campaign_id: 캠페인 ID입니다. 이 필드는 통화 유형이 캠페인 통화인 경우에만 포함됩니다. (선택사항)campaign_name: 캠페인 이름입니다. 이 필드는 통화 유형이 캠페인 통화인 경우에만 포함됩니다. (선택사항)type: 참여자 유형(예: end_user 또는 agent) 이 필드는/api/v1/calls또는/api/v1/chats응답의 participants.type의 일부로 반환됩니다.end_user_id: end_user_id입니다. 이 필드는/api/v1/calls또는/api/v1/chats응답의 일부로 반환됩니다. 이 필드는 한 상담사에서 다른 상담사로 라우팅되는 최종 사용자 통화 또는 채팅에만 표시되며 대상 상담사를 나타냅니다. (선택사항)virtual_agent_id: 가상 에이전트에 할당된 식별자입니다. (선택사항)va_data_parameters: 가상 에이전트로 전송하기 위해 큐에 구성된 모든 변수입니다. 이는 가상 에이전트가 포함된 이벤트에만 필요합니다. (선택사항)session_variable: 페이로드에서 CCAI Platform으로 전송되는 가상 에이전트의 모든 변수입니다. (선택사항)custom_sip_headers: 수신 SIP 통화의 커스텀 SIP 헤더가 POST 이벤트 로그에 표시됩니다. 커스텀 SIP 헤더가 사용되는 경우에만 필요합니다. (선택사항)custom_data_secured: 보안 SDK 맞춤 데이터의 전송을 허용합니다. (선택사항)custom_data_not_secured: 보안되지 않은 SDK 커스텀 데이터의 전송을 허용합니다. (선택사항)
다음은 Party_Added 이벤트의 예입니다.
{
"type": "Party_Added",
"data": {
"chat_id": 103646,
"session_type": "Messaging Inbound (SMS)",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
"queue_id": 8469,
"queue_path": "Developers / Ariel",
"type" : "agent"
}
}
상담사가 세션에 연결함
상담사가 세션에 연결하면 상담사가 세션에 연결하는 이벤트가 발생합니다. 이벤트에는 두 가지 유형이 있습니다. 유형은 통화인지 채팅인지에 따라 결정됩니다.
다음 이벤트 필드는 상담사가 세션에 연결하는 이벤트의 일부입니다.
agent_id: 통화 또는 채팅 세션을 처리하는 상담사를 식별합니다.agent_email: 통화 또는 채팅 세션을 처리하는 상담사의 이메일 주소입니다.agent_custom_id: 이 필드는 에이전트 프로필에 커스텀 ID가 포함된 경우에만 존재합니다. (선택사항)chat_id또는call_id: 통화 또는 채팅 세션을 식별합니다.virtual_agent_id: 특정 가상 에이전트에 할당된 ID입니다. (선택사항)campaign_id: 캠페인 ID입니다. 이 필드는 통화 유형이 캠페인 통화인 경우에만 포함됩니다. (선택사항)campaign_name: 캠페인 이름입니다. 이 필드는 통화 유형이 캠페인 통화인 경우에만 포함됩니다. (선택사항)queue_id: 채팅 세션이 시작된 대기열의 ID입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다. (선택사항)queue_path: 채팅 세션이 시작된 대기열의 경로입니다. 이 필드는 채팅이 대기열에서 시작된 경우에만 포함됩니다. (선택사항)session_type: 웹 채팅을 통한 인바운드 메시지와 같이 생성되는 세션 유형을 나타냅니다.virtual_agent_id: 가상 에이전트에 할당된 ID입니다. (선택사항)va_data_parameters: 가상 에이전트로 전송하기 위해 큐에 구성된 모든 변수입니다. 이는 가상 에이전트와 관련된 이벤트에만 필요합니다. (선택사항)session_variable: 페이로드에서 CCAI Platform으로 전송되는 가상 에이전트의 모든 변수입니다. (선택사항)custom_sip_headers: 수신 SIP 통화의 커스텀 SIP 헤더가 POST 이벤트 로그에 표시됩니다. 커스텀 SIP 헤더가 사용되는 경우에만 필요합니다. (선택사항)custom_data_secured: 보안 SDK 맞춤 데이터의 전송을 허용합니다. (선택사항)custom_data_not_secured: 보안되지 않은 SDK 커스텀 데이터의 전송을 허용합니다. (선택사항)
다음은 Agent_Joined_Chat 이벤트 데이터의 예입니다.
{
"type": "Agent_Joined_Chat",
"data": {
"chat_id": 103646,
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
"queue_id": 8469,
"queue_path": "Developers / Ariel",
"session_type": "Messaging Inbound (SMS)",
}
}
상담사 로그아웃
상담사 로그아웃 이벤트는 상담사가 상담사 어댑터에서 로그아웃할 때 발생합니다.
다음 이벤트 필드는 Agent_Logout 이벤트의 일부입니다.
agent_id: 로그인한 상담사의 식별자agent_email: 상담사 계정과 연결된 이메일 주소agent_custom_id: 상담사의 커스텀 ID입니다(상담사 프로필에 입력된 경우). (선택사항)
다음은 Agent_Logout 이벤트의 예입니다.
{
"type": "Agent_Logout",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
}
}
Agent Assist 추가됨
Agent Assist 추가 이벤트는 상담사가 통화 또는 채팅 세션 중에 Agent Assist를 활성화할 때 발생합니다.
이 이벤트에 대한 다음 사항에 유의하세요.
이 이벤트의
type는 소문자(agent_assist_added)입니다.타임스탬프 필드의 이름은
Timestamp(대문자 T)이며 유닉스 시간 이후의 밀리초 수입니다.
다음은 agent_assist_added 이벤트의 예입니다.
{
"type": "agent_assist_added",
"data": {
"conversation_id": "12345",
"queue_id": 65,
"agent_id": 1,
"session_id": "78534G4RT4284",
"queue_language_id": "en",
"Timestamp": 1727853575000
}
}
이벤트 필드는 다음과 같습니다.
conversation_id: 대화 식별자입니다. 이 필드는 세션에서 대화 프로필을 사용할 때 포함됩니다. (선택사항)queue_id: 큐 식별자입니다. (선택사항)에이전트 식별자입니다.
agent_idsession_id: 세션 식별자입니다. (선택사항)queue_language_id: 큐의 언어입니다. (선택사항)Timestamp: 이벤트가 게시된 시간(유닉스 시간 이후 밀리초)
가상 작업 어시스턴트 참여함
가상 작업 어시스턴트 참여 이벤트는 가상 작업 어시스턴트 (VTA)가 통화 또는 채팅 세션에 참여할 때 발생합니다.
다음은 Task_VA_Joined 이벤트의 예입니다.
{
"type": "Task_VA_Joined",
"data": {
"chat_id": 103646,
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853575000,
"data_parameters": {
"param1": "one",
"param2": "two"
}
}
}
이벤트 필드는 다음과 같습니다.
call_id또는chat_id: 통화 또는 채팅 식별자campaign_id: 캠페인의 식별자입니다. 이 필드는 캠페인 호출에 포함됩니다. (선택사항)campaign_name: 캠페인 이름입니다. 이 필드는 캠페인 호출에 포함됩니다. (선택사항)virtual_agent_id: VTA의 식별자입니다.virtual_agent_name: CCAI Platform 포털에 구성된 VTA의 이름participant_id: 세션에 있는 VTA의 참여자 식별자queue_id: 세션이 시작된 큐의 식별자입니다. (선택사항)queue_path: 세션이 시작된 큐의 경로입니다. (선택사항)queue_language_id: 큐의 언어입니다. (선택사항)session_type: 세션 유형conversation_id: 대화 식별자입니다. 이 필드는 세션에서 대화 프로필을 사용할 때 포함됩니다. (선택사항)session_id: 세션 식별자입니다. (선택사항)timestamp: 이벤트가 게시된 시간(유닉스 시간 이후의 밀리초 단위)data_parameters: CCAI Platform 포털에서 구성되고 VTA로 전송되는 변수입니다. (선택사항)
가상 작업 어시스턴트가 나감
가상 작업 어시스턴트 퇴장 이벤트는 VTA가 세션을 나갈 때 발생합니다. 가상 작업 어시스턴트 참여 이벤트의 필드 외에도 VTA 세션이 종료된 이유와 VTA가 캡처한 세션 변수가 포함됩니다.
다음은 Task_VA_Left 이벤트의 예입니다.
{
"type": "Task_VA_Left",
"data": {
"chat_id": 103646,
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853600000,
"finish_reason": "Task VA completed",
"data_parameters": {
"param1": "one"
},
"captured_variables": [
{
"intent_name": null,
"variables": {
"order_number": "A-100"
},
"captured_at": "2024-11-15 16:46:31 UTC",
"timestamp": 1727853590000
}
]
}
}
추가 이벤트 필드는 다음과 같습니다.
finish_reason: VTA 세션이 종료된 이유captured_variables: VTA에서 캡처한 세션 변수입니다. 각 변수에는 이를 캡처한 인텐트와 캡처된 시점이 포함됩니다. (선택사항)
가상 작업 어시스턴트 세션 변수 수신됨
가상 작업 어시스턴트 세션 변수 수신 이벤트는 VTA가 세션 중에 커스텀 세션 변수 페이로드를 전송할 때마다 발생합니다. 이 이벤트에는 finish_reason를 제외하고 가상 작업 어시스턴트가 나감 이벤트와 동일한 필드가 있으며 captured_variables에는 지금까지 수신된 변수가 포함됩니다.
다음은 Task_VA_Variables_Received 이벤트의 예입니다.
{
"type": "Task_VA_Variables_Received",
"data": {
"chat_id": 103646,
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853590000,
"data_parameters": {
"param1": "one"
},
"captured_variables": [
{
"intent_name": null,
"variables": {
"order_number": "A-100"
},
"captured_at": "2024-11-15 16:46:31 UTC",
"timestamp": 1727853590000
}
]
}
}
가상 에이전트의 커스텀 세션 변수 페이로드에서 capture_type에 event가 포함된 변수만 포함되고 invisible_to_adapter_events에 나열된 키는 제외됩니다.
백그라운드 화면 팝업
화면 팝업 기능을 사용하면 상담사가 백그라운드에서 CRM 화면 팝업을 수행할 수 있습니다. 즉, 상담사가 별도의 조치 필요 없이 고객 정보가 상담사 화면에 표시됩니다. 이를 통해 소비자에게 더 원활한 환경을 제공하고 상담사의 처리 시간을 줄일 수 있습니다.
CRM 레코드 팝업
CRM_Record_Pop 이벤트는 티켓을 표시해야 할 때 트리거되는 서버 측 이벤트입니다. 이 이벤트에는 CRM 레코드의 URL이 포함된 recordUrl라는 매개변수가 포함되어 있으므로 삽입된 어댑터를 사용하는 경우 POST 이벤트를 구독하여 화면 팝업을 실행할 수 있습니다.
다음은 CRM_Record_Pop 이벤트의 예입니다.
{
"type": "CRM_Record_Pop",
"data": {
"recordUrl": "https://crm.example.com/tickets/4711"
}
}
이벤트에는 다음과 같은 단일 필드가 있습니다.
recordUrl: 표시할 CRM 레코드의 URL
이를 위해 다음 예에서는 다른 프레임 또는 창에서 전송된 메시지를 수신 대기하는 이벤트 리스너를 추가하는 방법을 보여줍니다. 이 코드 스니펫은 다양한 프레임 또는 창 간의 통신을 사용 설정하고 수신된 메시지를 기반으로 iframe에 표시되는 콘텐츠를 동적으로 업데이트할 수 있도록 설계되었습니다.
// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'
// name is the html property of the iframe that shows the CRM record
const iframeTarget = document.querySelector('iframe[name="target_iframe_adapter"]')
// example usage of add event listener
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
window.addEventListener('message', (e) => {
// Only accept events posted by the agent adapter.
if (e.origin !== ADAPTER_ORIGIN) {
return
}
let message
try {
message = JSON.parse(e.data)
} catch (err) {
// Not an agent adapter event.
return
}
const { type, data = {} } = message
console.log('EventListener: ', type)
switch (type) {
case 'CRM_Record_Pop': {
const recordUrl = data.recordUrl
if (!recordUrl) {
return
}
console.log(`Opening recordUrl in iframe ${iframeTarget.getAttribute('name')}`)
// changing an iframe target to the record URL pop
iframeTarget.src = recordUrl
break
}
case 'New_Chat':
console.log('Chat started...')
// handling here for New_Chat events
break
case 'End_Chat':
console.log('Chat ended...')
// handling here for End_Chat events
break
default:
// code handling for other types
break
}
}, false)
서드 파티 페이지 열기
openThirdPartyPage 이벤트는 통화에 서드 파티 키 (예: 캠페인 통화의 목록 캠페인 관리자 키)가 포함되어 있고 어댑터가 일치하는 서드 파티 페이지를 열려고 할 때 통화 어댑터에 의해 게시됩니다. 삽입된 어댑터를 사용하는 경우 이 이벤트를 구독하여 자체 UI에서 페이지를 열 수 있습니다.
다음은 openThirdPartyPage 이벤트의 예입니다.
{
"type": "openThirdPartyPage",
"data": {
"thirdPartyKey": "acqueon:12345",
"callId": 103646
}
}
이벤트 필드는 다음과 같습니다.
thirdPartyKey: 호출과 연결된 서드 파티 키호출 식별자
callId