Webhooks pós-chamada
Webhooks pós-chamada
Receba notificações por webhook quando as chamadas terminarem e a análise for concluída.
Visão geral
Os webhooks pós-chamada permitem receber informações detalhadas sobre uma chamada após a conclusão da análise. Quando ativados, a ElevenLabs enviará uma solicitação POST ao endpoint especificado com dados completos da chamada.
A ElevenLabs oferece suporte a três tipos de webhooks pós-chamada:
- Webhooks de transcrição (
post_call_transcription): Contêm dados completos da conversa, incluindo transcrições, resultados de análises e metadados - Webhooks de áudio (
post_call_audio): Contêm dados mínimos com o áudio da conversa completa codificado em base64 - Webhooks de falha ao iniciar chamada (
call_initiation_failure): Contêm informações sobre tentativas de início de chamada que falharam, incluindo motivos da falha e metadados
Como ativar webhooks pós-chamada
Os webhooks pós-chamada podem ser ativados para todos os agentes no seu espaço de trabalho pela página de configurações do ElevenAgents.

Os webhooks pós-chamada precisam retornar um código de status 200 para serem considerados bem-sucedidos. Webhooks que falham repetidamente são desativados automaticamente se houver 10 ou mais falhas consecutivas e a última entrega bem-sucedida tiver ocorrido há mais de 7 dias ou nunca tiver sido entregue com sucesso.
Os webhooks pós-chamada podem ser repetidos automaticamente se falharem. Consulte as tentativas de webhook.
Autenticação
É importante que o listener valide todos os webhooks recebidos. Atualmente, os webhooks oferecem suporte à autenticação por assinaturas HMAC. Configure a autenticação HMAC:
- Armazenando com segurança o segredo compartilhado gerado na criação do webhook
- Verificando o cabeçalho ElevenLabs-Signature no seu endpoint usando o SDK
O SDK JavaScript disponibiliza constructEvent; o SDK Python disponibiliza construct_event com rawBody, sig_header e secret (em Python, eles não se chamam payload / signature). Ambos verificam a assinatura, validam o carimbo de data e hora e analisam o payload JSON.
Python
JavaScript
Exemplo de manipulador de webhook usando FastAPI:
Lista de IPs permitidos
Para mais segurança, você pode adicionar os IPs de saída estáticos da ElevenLabs à sua lista de permissões. Consulte lista de IPs permitidos para ver a lista completa de endereços IP.
Usar uma lista de IPs permitidos junto com a validação de assinatura HMAC oferece várias camadas de segurança.
Estrutura da resposta do webhook
A ElevenLabs envia três tipos distintos de webhooks pós-chamada, cada um com estruturas de dados diferentes:
Webhooks de transcrição (post_call_transcription)
Contém dados completos da conversa, incluindo transcrições integrais, resultados de análise e metadados.
Campos de nível superior
Estrutura do objeto de dados
O objeto data contém:
Webhooks de áudio (post_call_audio)
Contém dados mínimos com o áudio completo da conversa como MP3 codificado em base64.
Campos de nível superior
Estrutura do objeto de dados
O objeto data contém apenas:
Os webhooks de áudio contêm apenas os três campos listados acima. Eles NÃO incluem dados de transcrição, metadados, resultados de análise nem outros detalhes da conversa.
Webhooks de falha ao iniciar chamada (call_initiation_failure)
Contém informações sobre tentativas de iniciar chamadas telefônicas, incluindo os motivos da falha e metadados do provedor de telefonia.
Os eventos de webhook de falha ao iniciar chamada são enviados quando uma chamada não consegue ser iniciada devido a erros de conexão, à recusa do usuário em atender ou porque o usuário não atendeu. Se uma chamada cair na caixa postal ou for atendida por um serviço automatizado, nenhum webhook de falha ao iniciar chamada será enviado, pois a chamada foi iniciada com sucesso.
Campos de nível superior
Estrutura do objeto de dados
O objeto data contém:
Estrutura do objeto de metadados
A estrutura do objeto metadata varia conforme a chamada de saída foi feita via Twilio ou via tronco SIP. O objeto inclui um campo type que diferencia os dois e um campo body com detalhes específicos do provedor.
Metadados SIP (type: "sip"):
O objeto body dos metadados SIP contém:
Metadados Twilio (type: "twilio"):
Exemplos de payloads de webhook
Exemplo de webhook de transcrição
Exemplo de webhook de áudio
Exemplos de webhook de falha ao iniciar chamada
Exemplo de metadados Twilio
Exemplo de metadados SIP
Entrega de webhook de áudio
Os webhooks de áudio são entregues separadamente dos webhooks de transcrição e contêm apenas os campos essenciais para identificar a conversa, juntamente com os dados de áudio codificados em base64.
Os webhooks de áudio podem ser ativados ou desativados usando a opção “Send audio data” nas configurações do webhook. Essa configuração pode ser definida tanto no nível do workspace (nas configurações do ElevenAgents) quanto no nível do agente (nas substituições de webhook de cada agente).
Entrega por streaming
Os webhooks de áudio são entregues como solicitações HTTP por streaming com o cabeçalho transfer-encoding: chunked para processar arquivos de áudio grandes com eficiência.
Processar webhooks de áudio
Como os webhooks de áudio são entregues por meio de codificação de transferência em blocos, você precisará processar os dados de streaming corretamente:
Os webhooks de áudio podem ser arquivos grandes; portanto, verifique se seu endpoint de webhook consegue processar solicitações de streaming e se tem capacidade suficiente de memória e armazenamento. O áudio é entregue em formato MP3.
Casos de uso
Acompanhamentos automatizados após chamadas
Os webhooks pós-chamada permitem criar workflows automatizados que são acionados imediatamente após o término de uma chamada. Veja algumas aplicações práticas:
Integração com CRM
Atualize seu sistema de gestão de relacionamento com clientes com dados da conversa assim que uma chamada for concluída:
Conversas com estado
Mantenha o contexto da conversa em várias interações armazenando e recuperando o estado:
- Quando uma chamada começar, passe o ID do usuário como uma variável dinâmica.
- Quando uma chamada terminar, configure seu endpoint de webhook para armazenar os dados da conversa no banco de dados com base no ID do usuário extraído de dynamic_variables.
- Quando o usuário ligar novamente, você poderá recuperar esse contexto e passá-lo para a nova conversa em uma variável dinâmica {{previous_topics}}.
- Isso cria uma experiência contínua, em que o agente “lembra” das interações anteriores.