Skip to main content
통화 데이터 웹훅은 통화 유형에 따라 오는 이벤트와 시점이 달라요. 어떤 이벤트를 기다렸다가 무엇을 처리할지 여기서 정하세요. 아래 차트에서 막대는 통화 구간, 마름모는 웹훅이 오는 시점이에요.

AI 통화만 있을 때

에이전트가 처음부터 끝까지 응대한 통화예요. 통화 이벤트 네 가지만 와요.
  • call_ended는 통화가 끊긴 직후 와요. 녹음 URL은 들어 있지만 비용과 분석 결과는 없어요.
  • call_analyzed는 요금 확정과 분석이 끝난 뒤 와요. 보통 몇 초에서 몇 분 뒤예요.

개인정보 마스킹을 켰을 때

개인정보 마스킹을 켜도 종료 이벤트는 바로 와요. 가린 내용은 분석 이벤트에 담겨요.
  • 종료 이벤트: chat_ended의 transcript는 빈 배열이고, call_ended의 transcript도 비어 있을 수 있어요.
  • 분석 이벤트: call_analyzed와 chat_analyzed는 가린 내용을 보내요. 대화 내용, 요약, 도구 호출 인자와 결과가 가려져요.
  • 원문 그대로인 필드: 추출 항목과 전화번호 필드는 원문을 유지해요.
  • 가리기에 실패한 필드: 원문 대신 비워 둬요.

즉시 전환했을 때

에이전트가 통화를 넘기는 즉시 빠져요. 전환 뒤 통화는 vox.ai 밖에서 이어지므로 상담사 통화 이벤트가 오지 않아요.
  • call_ended는 통화를 넘기는 순간 와요. disconnection_reason은 call_transfer이고, 스크립트와 녹음에는 에이전트 구간만 담겨요.
  • call_analyzed는 고객과 상담사의 통화가 끝난 뒤에 와요. 전환 뒤 생긴 통신료까지 더해 요금이 확정되기 때문이에요.

안내 후 전환했을 때

에이전트가 상담사에게 상황을 전한 뒤 고객과 상담사를 연결해요. 상담사 구간이 상담사 통화로 기록되어 이벤트 여섯 가지가 모두 와요.
  • operator_call_started는 상담사에게 상황을 다 전하고 고객과 상담사가 연결되는 순간 와요. 상담사가 받지 않으면 오지 않고 에이전트가 응대를 이어가요.
  • call_ended는 곧이어 에이전트가 빠질 때 와요. 상담사 구간이 진행 중이어도 오고, 늘 operator_call_started 다음에 와요.
  • mid_call은 상담사 통화 중 고객이나 상담사의 발화가 확정될 때마다 와요. AI 구간의 call_ended 뒤에도 이어져요. 페이로드는 상담사 통화의 mid_call에 있어요.
  • operator_call_ended는 상담사 구간이 끝날 때, call_analyzed는 요금이 확정된 뒤 와요. 두 이벤트의 도착 순서는 보장되지 않아요.

순서 규칙

  • AI 구간은 call_started, mid_call, call_ended 순서로 와요. 상담사 구간은 operator_call_started 뒤 발화마다 mid_call이 오고, 끝나면 operator_call_ended가 와요.
  • call_analyzed는 요금이 확정된 뒤에 와요. 전환된 통화는 고객과 상담사의 통화가 끝나야 요금이 확정되므로 그만큼 늦어져요.
  • 같은 이벤트가 두 번 이상 올 수 있어요. mid_call은 한 통화에서 여러 번 오므로 통화 ID만으로 중복을 거르면 발화가 빠져요. 이벤트별 중복 제거 키는 전달 보장과 재시도에 있어요.

문제가 생겼을 때

전환된 통화라면 고객과 상담사의 통화가 끝날 때까지 기다리세요. 요금이 확정된 뒤에 분석을 시작하기 때문이에요. 개인정보 마스킹을 켠 에이전트의 통화는 가리기가 끝난 뒤에 와서 더 늦어요.
상담사 구간까지 웹훅으로 받으려면 안내 후 전환으로 바꾸세요. 즉시 전환으로 넘긴 통화는 전환 뒤 통화가 vox.ai 밖에서 이어져 기록되지 않아요.

관련 문서