Visão geral
O webhook genérico aceita um JSON simples de qualquer sistema capaz de fazer umPOST — scripts, CI/CD, jobs internos, ferramentas sem integração dedicada.
1. Crie a fonte de alerta
Em Fontes de alerta, crie uma fonte do tipo Genérico. Copie a URL e o token.2. Envie o alerta
202 Accepted.
Campos aceitos
Se
status estiver ausente, o alerta é tratado como disparo. firing, alerting e resolved não diferenciam maiúsculas de minúsculas. Qualquer outro valor — inclusive ok, normal, recovered ou closed — é aceito com 202, mas ignorado: nenhum acionamento é criado nem resolvido.Agrupamento
Envios repetidos com o mesmoexternalId para o mesmo serviço são agregados ao acionamento aberto, em vez de criar duplicatas. Use um externalId estável por problema — o nome do job, o identificador do check, a chave da regra.
Recuperação automática
Quando o problema passa, envie o mesmoexternalId com "status": "resolved". O aciona.me resolve sozinho o acionamento aberto por essa fonte — sem depender de uma pessoa.
Exemplo: um monitor de ping abre um acionamento quando a API deixa de responder e, poucos minutos depois, avisa que ela voltou.
status e externalId são necessários. Título, descrição e severidade podem ser enviados e podem ser diferentes da abertura; eles não são usados para encontrar o acionamento. service também não é necessário.
O que acontece:
- O acionamento passa para
resolvedem qualquer estado ativo — inclusive depois de alguém reconhecer ou assumir a responsabilidade. Não é preciso aprovar a resolução no painel. - A linha do tempo registra a resolução automática pelo webhook genérico, sem pessoa associada. Reconhecimento, responsável e histórico anteriores são preservados.
- Escalonamentos e notificações pendentes são interrompidos. A recuperação não envia um aviso novo de resolução.
- O acionamento é encerrado automaticamente 5 minutos depois da resolução, como nas demais integrações. Veja Resolver e encerrar.
- Se o problema voltar — mesmo durante esses 5 minutos —, um novo
firingabre um novo acionamento.
Boas práticas e limites
- Mesma chave na abertura e na recuperação. O valor é comparado exatamente como enviado, sem ajuste de espaços ou de maiúsculas.
- Uma chave por problema. Use identificadores diferentes para problemas ou serviços diferentes na mesma fonte: a recuperação não considera o serviço para desambiguar.
- A correlação é por fonte. A recuperação só resolve acionamentos abertos pela mesma fonte de alerta, na mesma organização.
- Recuperação sem acionamento aberto não faz nada. O
202confirma que o alerta foi aceito, não que algo foi resolvido. Uma recuperação repetida é ignorada. - Recuperação atrasada. Se a mesma chave for reutilizada, uma recuperação antiga que chegue depois de uma nova queda pode resolver a nova ocorrência. Para evitar isso, use uma chave por episódio (por exemplo,
ping-api-principal-2026-10-15T10:00), estável entre a abertura, as repetições e a recuperação desse episódio. - Ordem em rajadas. Em picos de volume, uma recuperação pode ser processada antes da abertura correspondente; nesse caso ela não encontra o acionamento e o disparo seguinte fica aberto. Espaçe o envio da recuperação ou resolva pelo painel.
- Eventos antigos não são reprocessados. Recuperações enviadas antes deste recurso foram descartadas e não resolvem nada retroativamente.
Exemplos
Solução de problemas
Respondeu 202 mas nenhum acionamento apareceu
Respondeu 202 mas nenhum acionamento apareceu
O campo
status provavelmente tem um valor diferente de firing, alerting ou resolved — nesse caso o alerta é aceito e descartado. Envie firing ou omita o campo. Se foi uma recuperação (resolved), ela nunca cria acionamento.A recuperação respondeu 400
A recuperação respondeu 400
Falta o
externalId ou ele está vazio, só com espaços ou não é texto/número. Envie o mesmo externalId usado na abertura.Acionamentos duplicados
Acionamentos duplicados
O
externalId está mudando entre os envios (por exemplo, incluindo um timestamp). Use um identificador estável por problema.Acionamento sem serviço ou sem responsável
Acionamento sem serviço ou sem responsável
O campo
service não bate com nenhum serviço da organização, ou o serviço não tem time responsável com escala ativa.A recuperação não resolveu o acionamento
A recuperação não resolveu o acionamento
Confira se o
externalId é exatamente o mesmo da abertura e se a recuperação foi enviada para a mesma fonte. Acionamentos abertos sem externalId não são resolvidos de forma confiável pelo webhook — resolva pelo painel ou pelo app.