통화 후 웹훅
통화 후 웹훅
통화가 종료되고 분석이 완료되면 웹훅으로 알림을 받으세요.
개요
통화 후 웹훅을 사용하면 분석이 완료된 후 통화에 관한 상세 정보를 받을 수 있습니다. 활성화하면 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 객체에는 다음이 포함됩니다.
메타데이터 객체 구조
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를 동적 변수로 전달합니다.
- 통화가 끝나면
dynamic_variables에서 추출한 사용자 ID를 기준으로 웹훅 엔드포인트가 데이터베이스에 대화 데이터를 저장하도록 설정합니다. - 사용자가 다시 전화하면 이 컨텍스트를 불러와 새 대화의 {{previous_topics}} 동적 변수로 전달할 수 있습니다.
- 이를 통해 에이전트가 이전 상호작용을 “기억”하는 원활한 경험을 만들 수 있습니다.