통화 후 웹훅
통화가 종료되고 분석이 완료되면 웹훅으로 알림을 받으세요.
개요
통화 후 웹훅을 사용하면 분석이 완료된 후 통화에 대한 자세한 정보를 받을 수 있습니다. 활성화하면 ElevenLabs는 종합적인 통화 데이터와 함께 지정한 엔드포인트로 POST 요청을 전송합니다.
ElevenLabs는 세 가지 유형의 통화 후 웹훅을 지원합니다.
- 트랜스크립션 웹훅 (
post_call_transcription): 트랜스크립트, 분석 결과 및 메타데이터를 포함한 전체 대화 데이터를 포함합니다. - 오디오 웹훅 (
post_call_audio): 전체 대화의 base64 인코딩 오디오가 포함된 최소 데이터를 포함합니다. - 통화 시작 실패 웹훅 (
call_initiation_failure): 실패 사유 및 메타데이터를 포함하여 통화 시작 시도 실패에 대한 정보를 포함합니다.
통화 후 웹훅 활성화
ElevenAgents 설정 페이지를 통해 워크스페이스의 모든 에이전트에 대해 통화 후 웹훅을 활성화할 수 있습니다.

통화 후 웹훅이 성공한 것으로 간주되려면 200 상태 코드를 반환해야 합니다. 웹훅이 반복적으로 실패하고 연속 실패가 10회 이상이며 마지막 성공적인 전송이 7일 이상 전이거나 성공적으로 전송된 적이 없는 경우 자동으로 비활성화됩니다.
통화 후 웹훅은 실패 시 자동으로 재시도할 수 있습니다. 웹훅 재시도를 참고하세요.
인증
수신 측에서는 들어오는 모든 웹훅의 유효성을 검증하는 것이 중요합니다. 현재 웹훅은 HMAC 서명을 통한 인증을 지원합니다. 다음 방법으로 HMAC 인증을 설정하세요.
- 웹훅 생성 시 생성되는 공유 시크릿을 안전하게 저장합니다.
- SDK를 사용하여 엔드포인트에서 ElevenLabs-Signature 헤더를 검증합니다.
JavaScript SDK는 constructEvent를 제공하며, Python SDK는 rawBody, sig_header, **secret**을 사용하는 construct_event를 제공합니다(Python에서는 payload / signature이라는 이름을 사용하지 않습니다). 두 SDK 모두 서명을 검증하고 타임스탬프를 확인하며 JSON 페이로드를 파싱합니다.
Python
JavaScript
FastAPI를 사용하는 웹훅 핸들러 예시:
IP 허용 목록
보안을 강화하려면 ElevenLabs의 고정 송신 IP를 허용 목록에 추가할 수 있습니다. 전체 IP 주소 목록은 IP 허용 목록을 참고하세요.
IP 허용 목록을 HMAC 서명 검증과 함께 사용하면 여러 보안 계층을 제공할 수 있습니다.
웹훅 응답 구조
ElevenLabs는 각각 서로 다른 데이터 구조를 가진 3가지 유형의 통화 후 웹훅을 전송합니다.
트랜스크립션 웹훅 (post_call_transcription)
전체 트랜스크립트, 분석 결과, 메타데이터를 포함한 포괄적인 대화 데이터를 포함합니다.
최상위 필드
데이터 객체 구조
data 객체에는 다음이 포함됩니다.
오디오 웹훅 (post_call_audio)
Base64로 인코딩된 MP3 형식의 전체 대화 오디오와 최소한의 데이터를 포함합니다.
최상위 필드
데이터 객체 구조
data 객체에는 다음 항목만 포함됩니다.
오디오 웹훅에는 위에 나열된 3개 필드만 포함됩니다. 트랜스크립트 데이터, 메타데이터, 분석 결과 또는 기타 대화 세부 정보는 포함하지 않습니다.
통화 시작 실패 웹훅 (call_initiation_failure)
실패 이유와 전화 통신 제공업체 메타데이터를 포함하여 전화 통화 시작 시도에 관한 정보를 포함합니다.
연결 오류, 사용자의 통화 거절 또는 사용자의 부재중으로 통화 시작에 실패한 경우 통화 시작 실패 웹훅 이벤트가 전송됩니다. 통화가 음성사서함으로 연결되거나 자동화된 서비스에서 응답한 경우 통화가 성공적으로 시작된 것이므로 통화 시작 실패 웹훅은 전송되지 않습니다.
최상위 필드
데이터 객체 구조
data 객체에는 다음이 포함됩니다.
Twilio를 통해 발신한 통화의 경우 failure_reason은 Twilio CallStatus에서 파생됩니다. busy와 no-answer는 그대로 전달되며, failed는 unknown으로 보고됩니다. 그 외 Twilio 통화 상태에서는 통화 시작 실패 웹훅이 전송되지 않습니다.
메타데이터 객체 구조
metadata 객체 구조는 발신 통화가 Twilio를 통해 이루어졌는지, SIP 트렁킹을 통해 이루어졌는지에 따라 달라집니다. 객체에는 두 유형을 구분하는 type 필드와 제공업체별 세부 정보를 포함하는 body 필드가 있습니다.
SIP 메타데이터 (type: "sip"):
SIP 메타데이터의 body 객체에는 다음이 포함됩니다.
Twilio 메타데이터 (type: "twilio"):
웹훅 페이로드 예시
트랜스크립션 웹훅 예시
오디오 웹훅 예시
통화 시작 실패 웹훅 예시
Twilio 메타데이터 예시
SIP 메타데이터 예시
오디오 웹훅 전송
오디오 웹훅은 트랜스크립션 웹훅과 별도로 전송되며, 대화를 식별하는 데 필요한 필수 필드와 Base64 인코딩된 오디오 데이터만 포함합니다.
웹훅 설정의 “오디오 데이터 전송” 토글을 사용하여 오디오 웹훅을 활성화하거나 비활성화할 수 있습니다. 이 설정은 워크스페이스 수준(ElevenAgents 설정)과 에이전트 수준(개별 에이전트 웹훅 재정의) 모두에서 구성할 수 있습니다.
스트리밍 전송
오디오 웹훅은 대용량 오디오 파일을 효율적으로 처리하기 위해 transfer-encoding: chunked 헤더가 포함된 스트리밍 HTTP 요청으로 전송됩니다. 각 요청은 5분 후 시간 초과됩니다.
재시도
웹훅에서 재시도가 활성화된 경우, 실패한 오디오 전송은 트랜스크립션 웹훅과 동일한 일정에 따라 재시도됩니다. 재시도 시 전체 오디오 페이로드가 다시 전송되므로 conversation_id를 기준으로 중복을 제거하세요. 일정, 재시도 가능한 오류 및 오디오 크기 제한은 웹훅 재시도를 참조하세요.
오디오 웹훅 처리
오디오 웹훅은 청크 전송 인코딩을 통해 전송되므로 스트리밍 데이터를 올바르게 처리해야 합니다.
오디오 웹훅은 대용량 파일일 수 있으므로 웹훅 엔드포인트가 스트리밍 요청을 처리할 수 있고 충분한 메모리/스토리지 용량을 갖추었는지 확인하세요. 오디오는 MP3 형식으로 전송됩니다.
사용 사례
자동화된 통화 후 후속 조치
통화 후 웹훅을 사용하면 통화가 끝난 직후 실행되는 자동화된 workflow를 구축할 수 있습니다. 몇 가지 실용적인 활용 사례는 다음과 같습니다.
CRM 통합
통화가 완료되는 즉시 고객 관계 관리 시스템을 대화 데이터로 업데이트합니다.
상태 유지 대화
상태를 저장하고 불러와 여러 상호작용에 걸쳐 대화 컨텍스트를 유지합니다.
- 통화가 시작되면 사용자 ID를 동적 변수로 전달합니다.
- 통화가 끝나면 webhook 엔드포인트가 dynamic_variables에서 추출한 사용자 ID를 기반으로 대화 데이터를 데이터베이스에 저장하도록 설정합니다.
- 사용자가 다시 전화하면 이 컨텍스트를 불러와 새 대화의
{{previous_topics}}동적 변수로 전달할 수 있습니다. - 이를 통해 에이전트가 이전 상호작용을 “기억하는” 매끄러운 경험을 만들 수 있습니다.