Webhooks
Habilite integrações externas recebendo eventos de webhook.
Visão geral
Determinados eventos na ElevenLabs podem ser configurados para acionar webhooks, permitindo que aplicações e sistemas externos recebam e processem esses eventos à medida que ocorrem. Os tipos de evento aceitos atualmente incluem:
Configuração
Os webhooks podem ser criados, desativados e excluídos na página de configurações gerais. Para usuários em Workspaces, somente os administradores do workspace podem configurar os webhooks dele.

Após a criação, o webhook pode ser selecionado para receber eventos nas configurações de produtos, como a Agents Platform.
Os eventos flows_generation e flows_template_run são habilitados por uma única inscrição: em Select events to listen to, marque Image & Video API generation or template run completed, ou envie o evento flows para Atualizar webhook do workspace. Uma geração ou execução só envia seu evento quando a solicitação de criação inclui um campo webhook.
Os webhooks podem ser desativados a qualquer momento na página de configurações gerais. 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 se nunca tiver havido uma entrega bem-sucedida. Webhooks desativados automaticamente precisam ser reativados na página de configurações. Eles podem ser excluídos se não estiverem em uso por nenhum produto.
Tentativas
As tentativas de webhook podem ser habilitadas por webhook para tentar novamente a entrega automaticamente quando uma solicitação falha. Elas ficam desativadas por padrão. Habilite as tentativas ao criar ou atualizar um webhook pela API ou nas configurações do webhook.
Tentativas são aceitas para os webhooks pós-chamada do ElevenAgents,
incluindo eventos de transcrição (post_call_transcription), áudio (post_call_audio) e falha na
inicialização da chamada (call_initiation_failure).
Programação de tentativas
Quando uma tentativa de entrega falha com um erro que permite nova tentativa, o sistema tenta novamente até 5 vezes, com intervalos crescentes entre as tentativas:
Uma pequena variação aleatória (de até 10% do intervalo) é adicionada a cada nova tentativa para distribuir a carga e evitar problemas de excesso simultâneo de solicitações.
Erros que permitem nova tentativa
Nem todas as falhas acionam uma nova tentativa. Apenas as seguintes falhas são consideradas recuperáveis:
- Códigos de status
5xx(erros de servidor, como 500, 502, 503 e 504). 429(Muitas solicitações).408(Tempo limite da solicitação).- Erros de conexão e tempos limite de solicitação.
Erros de solicitação na faixa 4xx (como 400, 401, 403 e 404) não recebem novas tentativas, pois geralmente indicam um problema de configuração que exige correção manual.
Limites de fila por webhook
Cada webhook é limitado a 100 tarefas de nova tentativa pendentes. Se um webhook acumular mais de 100 tentativas na fila, as tarefas adicionais serão descartadas até que as tentativas existentes sejam processadas. Isso evita que um único webhook mal configurado consuma recursos excessivos.
Webhooks de áudio têm dois limites adicionais. Uma carga de áudio maior que 50 MiB é entregue uma vez e não recebe novas tentativas, e o total de tentativas de áudio em fila para um único webhook não pode exceder 400 MiB.
Comportamento de desativação automática
O sistema rastreia falhas consecutivas de entrega para cada webhook. Um webhook é desativado automaticamente quando as duas condições a seguir são atendidas:
- Ocorreram 10 ou mais falhas consecutivas de entrega.
- O webhook nunca foi entregue com sucesso ou a última entrega bem-sucedida ocorreu há mais de 7 dias.
Quando um webhook é desativado automaticamente, os administradores do workspace recebem uma notificação por e-mail. O webhook deve ser reativado manualmente na página de configurações antes de voltar a entregar eventos.
Integração
Para integrar com webhooks, crie um manipulador de endpoint para receber os dados de eventos de webhook como solicitações POST. Depois de validar a assinatura, o manipulador deve retornar HTTP 200 rapidamente para indicar o recebimento bem-sucedido. Falhas repetidas em retornar uma resposta de sucesso podem fazer com que o webhook seja desativado automaticamente.
A carga de uma nova tentativa é idêntica à da tentativa de entrega original. Os consumidores de webhooks não podem distinguir uma entrega inicial de uma nova tentativa apenas pela carga, então crie seu manipulador para ser idempotente — processar o mesmo evento várias vezes deve produzir o mesmo resultado. Use event_timestamp e identificadores específicos do evento (como conversation_id) para eliminar eventos duplicados, se necessário.
Campos de nível superior
Exemplo de carga 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: