Skip to main content

개요

이 페이지는 v2 통화 데이터 웹훅을 기준으로 설명합니다. 모든 v2 이벤트는 { "event", "webhook_version", "call" } 구조를 사용합니다. 통화 종료와 분석 완료는 별도 이벤트로 전송됩니다.
비용과 분석 결과는 call_analyzed에서 확인하세요. call_ended에는 포함되지 않습니다.

이벤트 생명주기

통화 데이터 웹훅은 통화 진행 상태와 분석 완료 상태를 나누어 전달합니다.
call_analyzed는 통화 종료 후 비동기로 도착할 수 있습니다. call_ended에서 비용, 분석 결과, duration_ms를 기대하지 마세요.

공통 구조

통화 이벤트는 본문을 call 키에 담습니다. 단, sms_received는 예외로 본문을 sms 키에 담습니다. 자세한 내용은 sms_received를 참고하세요.

call_started

mid_call

call_ended

call_ended에는 비용, 분석 결과, duration_ms가 포함되지 않습니다. 통화 시간은 end_at - start_at으로 계산하세요. 비용과 분석 결과는 call_analyzed에서 확인하세요.

녹음 파일 다운로드

recording_url은 인증이 필요한 엔드포인트입니다. API 키로 녹음을 내려받는 방법과 파일 형식(스테레오 OGG, 채널 분리)은 통화 녹음에서 확인하세요.

스크립트 형식

transcript는 발화와 도구 호출 기록을 한 배열에 담습니다. 도구를 사용하지 않은 통화에는 agentuser 항목만 포함될 수 있습니다.
transcript는 통화 데이터 저장 제외 설정이나 통화 처리 상태에 따라 null일 수 있습니다.

call_analyzed

sms_received

sms_received는 워크스페이스 번호로 문자(SMS/MMS)를 수신할 때 전송됩니다. 워크스페이스 웹훅 전용이며 opt-in 설정을 켠 워크스페이스에만 전송됩니다. 본문 키는 통화 이벤트와 달리 call이 아니라 sms입니다.

첨부 파일 다운로드

file_key로 첨부 파일 원본을 받으려면 파일 다운로드 API를 호출하세요.
cURL
응답 본문이 파일 원본입니다. Content-Type은 저장된 MIME 타입(image/jpeg, image/png, image/gif)을 그대로 따릅니다. 같은 워크스페이스가 소유한 file_key만 받을 수 있습니다. 전체 파라미터는 v3 API 참조파일 > 파일 다운로드에서 확인하세요.
본문 키가 call이 아니라 sms입니다. event 키로 분기하는 핸들러는 수정 없이 동작합니다. call 키를 무조건 읽는 핸들러는 sms_received를 별도로 분기하세요.
sms_received는 항상 v2 형식으로 전송됩니다. v1 형식은 없습니다. 서명 방식은 통화 데이터 웹훅과 동일합니다. 대시보드 설정 > 웹훅에서 수신 문자 웹훅 토글을 켜면 전송됩니다. 기본값은 꺼짐이고 켠 이후 수신분부터 전송됩니다.

서버 구현 체크리스트

  • 같은 통화의 같은 이벤트가 다시 도착할 수 있습니다. 중복 저장을 방지하세요.
  • v2 수신 스키마에는 최상위 webhook_version 필드를 포함하세요.
  • call_ended에서 비용이나 분석 필드를 기대하지 마세요.
  • 분석 결과 저장, 후속 자동화, 비용 집계는 call_analyzed에서 실행하세요.
  • 통화 결과는 call_statusdisconnection_reason을 함께 확인하세요.
  • 통화 시간은 end_at - start_at으로 계산하세요.
  • sms_received는 본문 키가 sms이므로 call 키를 무조건 읽는 핸들러는 별도로 분기하세요.

관련 문서


웹훅 스키마, webhook schema, call_analyzed, call_ended, mid_call, sms_received, 수신 문자 웹훅, inbound sms webhook, MMS 수신, attachments, 웹훅 페이로드, webhook payload, recording_url, 녹음 다운로드, recording download, 녹음 파일 URL