외부 세션 이벤트

외부 세션 이벤트 기능을 사용하면 웹훅을 사용하여 CCAI 플랫폼에서 외부 시스템으로 데이터를 실시간으로 스트리밍할 수 있습니다. 이를 통해 맞춤 보고, CRM 기록 업데이트 또는 자동화된 상호작용 후 워크플로의 세션 수명 주기를 즉시 확인할 수 있습니다.

외부 세션 이벤트는 채팅 또는 음성 통화의 상태가 변경될 때마다 서버에 알리는 푸시 기반 메커니즘을 제공합니다. API 엔드포인트를 제공하면 CCAI 플랫폼에서 전환이 발생할 때(예: 통화 연결, 상담사 할당, 세션 연결 해제) JSON 형식의 이벤트 데이터를 인프라에 게시합니다.

외부 세션 이벤트 구성

외부 세션 이벤트를 구성하려면 다음 단계를 따르세요.

  1. CCAI Platform 포털에서 설정 > 개발자 설정을 클릭합니다. 설정 메뉴가 표시되지 않으면 메뉴를 클릭합니다.

  2. 세션 데이터 내보내기 창에서 데이터 내보내기 설정 관리를 클릭합니다. 세션 데이터 내보내기 페이지가 표시됩니다.

  3. 외부 세션 이벤트 창으로 이동한 다음 전환 버튼을 클릭하여 사용 설정합니다.

  4. 다음 중 하나 또는 둘 다를 수행합니다.

    • 외부 통화 세션 이벤트를 구성하려면 다음 단계를 따르세요.

      1. 통화 이벤트 - 통화 세션 이벤트 보내기 체크박스를 선택합니다.

      2. API 엔드포인트 필드에 타겟 API의 전체 HTTPS URL을 입력합니다.

      3. 사용자 이름과 비밀번호를 입력합니다. 플랫폼은 기본 인증에 이를 사용합니다.

    • 외부 채팅 세션 이벤트를 구성하려면 다음 단계를 따르세요.

      1. 채팅 이벤트 - 채팅 세션 이벤트 전송 체크박스를 선택합니다.

      2. API 엔드포인트 필드에 타겟 API의 전체 HTTPS URL을 입력합니다.

      3. 사용자 이름과 비밀번호를 입력합니다. 플랫폼은 기본 인증에 이를 사용합니다.

  5. 저장을 클릭합니다.

이벤트 수명 주기 및 상태 로직

세션이 진행되면 CCAI Platform에서 여러 업데이트를 전송합니다. 각 업데이트는 사용할 수 있게 되는 대로 더 많은 메타데이터로 item 객체를 보강합니다.

상태 진행 표

이벤트 순서 참여자 상태 주요 데이터 포인트 추가됨
1. 시작 connected 외부: connected call_id, 고객 dn (전화번호)
2. 라우팅 connected 외부: connected queue_path_names, initiator (가상 에이전트)
3. 할당됨 connected 상담사: accepted 실제 상담사 이름과 ID가 추가됩니다.
4. 활성 connected 상담사: connected 미디어 스트림이 설정되었습니다 (대화 시작).
5. 종료 disconnected 둘 다: disconnected ends_at 타임스탬프가 채워집니다.
6. 최종 disconnected 상담사: dispositionSubmitted Wrap-up 코드가 포함된 dispositions 객체입니다.

이벤트 데이터 스키마 참조

이벤트는 객체로 웹훅에 전송됩니다. 각 웹훅 이벤트의 구조는 동일하며 다음 표에 표시되어 있습니다.

루트 객체

필드 유형 설명
count 정수 현재 페이로드의 이벤트 객체 수입니다.
events 배열 세션 세부정보가 포함된 이벤트 객체의 컬렉션입니다.

주요 세션 필드

  • event_id: 이벤트 알림의 UUID입니다.
  • timestamp: 이벤트가 생성된 시점의 에포크 시간(밀리초)입니다.
  • connected_atends_at: 세션 기간의 ISO 8601 타임스탬프입니다.
  • initiator: 상태 변경을 처리한 항목을 식별합니다(예: virtual_agent_15 또는 agent_1).
  • dispositions: code, custom_code_id, 에이전트 note를 포함하는 중첩 객체입니다.

보안

모든 요청은 표준 승인 헤더와 함께 전송됩니다. Authorization: Basic <base64_encoded_credentials>

전송 요구사항

  • 메소드: POST
  • Content-Type: application/json
  • 제한 시간: 서버는 5초 이내에 응답해야 합니다.
  • 확인: 엔드포인트는 200 OK 상태 코드를 반환해야 합니다. 200이 아닌 코드가 수신되면 플랫폼에서 지수 백오프 재시도를 사용할 수 있습니다.

샘플 페이로드

다음은 웹훅에 대한 이벤트 메시지에서 수신된 샘플 페이로드입니다.

활성 대화 (미디어 연결됨)

{
  "count": 1,
  "events": [
    {
      "event_id": "fc066edb-d99f-4db4-ba04-fb5dfea0e86a",
      "timestamp": 1767874769480,
      "type": "CallState",
      "item": {
        "call_id": 1395,
        "state": "connected",
        "queue_path_names": "Test/Talk to Andrew/English",
        "participants": [
          { "state": "connected", "type": "external", "dn": "+15555555555" },
          { "state": "connected", "type": "agent", "name": "Joe Smith", "agent_number": "528431" }
        ]
      }
    }
  ]
}

최종 처리 (통화 후 작업)

{
  "count": 1,
  "events": [
    {
      "event_id": "479798ff-b1ed-4a5c-a910-17a7edb3f283",
      "timestamp": 1767874769480,
      "type": "CallState",
      "item": {
        "call_id": 1395,
        "state": "disconnected",
        "participants": [
          {
            "type": "agent",
            "state": "dispositionSubmitted",
            "dispositions": {
              "code": "Call completed",
              "custom_code_id": "callComplete",
              "note": "none"
            }
          }
        ]
      }
    }
  ]
}