Self-Healing Webhooks Criar conta

Webhooks que se consertam

Fica entre quem manda o webhook e o seu sistema. Guarda cada evento, reentrega quando o destino cai e, quando o fornecedor renomeia um campo, entrega o JSON no formato que o seu sistema espera.

Grátis até 10 mil eventos por mês, sem cartão.

Eventos de loja ao vivo
  1. 14:02:31 order.paid Recusado HTTP 422: customer_name is required
  2. 14:02:07 order.paid Recusado HTTP 422: customer_name is required
  3. 13:58:44 order.paid Entregue HTTP 200
order.paid confiança alta · 90%

O campo customer_name agora chega como client.fullName.

Nome
100%
Formato do valor
100%
Posição
30%
payload.customer_name ??= payload?.client?.fullName;

O formato muda sem aviso

Nenhum fornecedor avisa quando muda o webhook.

Um dia o customer_name vira client.fullName, o seu sistema responde 422 e os pedidos param de entrar. Você descobre pelo cliente, horas depois.

Fila com reentrega resolve o destino fora do ar. Não resolve o formato que mudou: mandar o mesmo JSON mil vezes dá o mesmo erro mil vezes.

O Self-Healing aprende o formato de cada tipo de evento, percebe o campo que sumiu e o que apareceu no lugar, e preenche o antigo na entrega. O evento original fica guardado como chegou.

Ontem
{
  "type": "order.paid",
  "id": 48213,
  "customer_name": "Ana Souza",
  "email": "ana@exemplo.com",
  "total": 129.90
}
Hoje, sem aviso
{
  "type": "order.paid",
  "id": 48214,
  "client": { "fullName": "Bruno Lima" },
  "email": "bruno@exemplo.com",
  "total": 89.50
}

422 Resposta do seu sistema: customer_name is required

Como funciona

POST /in/loja
202 Aceito
guardado em 3 ms · evt_7Kq2

Primeiro, o evento chega e fica guardado.

order.paid formato travado
  • customer_name texto
  • email e-mail
  • total decimal
10 eventos vistos

Depois, o formato é aprendido.

sumiu customer_name
apareceu client.fullName
mesmo dado, nota 90%

Então a troca de nome aparece.

order.paid Entregue
HTTP 200
corrigido com customer_name

Por fim, a entrega sai corrigida.

Edite os dois lados. A análise é a mesma do produto e roda no servidor; nada é guardado.

Teste com

Mudanças percebidas2
  • apareceuclient
  • sumiucustomer_name
Correção sugeridaconfiança alta · 90%

O campo customer_name agora chega como client.fullName.

Nome
100%
Formato do valor
100%
Posição
30%
payload.customer_name ??= payload?.client?.fullName;

O seu sistema recebe

{
  "type": "order.paid",
  "id": 48214,
  "client": {
    "fullName": "Bruno Lima"
  },
  "email": "bruno@exemplo.com",
  "total": 89.5,
  "customer_name": "Bruno Lima"
}

O que vem incluído

Corrige sozinho quando tem certeza

Correções com nota de 75% ou mais, e folga sobre a segunda opção, entram ativas sem esperar você. As outras ficam sugeridas no painel.

Tenta de novo quando seu sistema cai

Até 12 tentativas, com espera crescente de 5 segundos a 6 horas. O Retry-After do seu servidor é respeitado.

Guarda o corpo exatamente como chegou

Byte a byte: a assinatura do fornecedor continua valendo e 98765432109876543210 não vira 98765432109876540000.

Avisa no Slack, e-mail ou webhook

Um aviso por mudança, com a linha de código e o JSON Patch prontos para colar no seu sistema.

Assina cada entrega que sai

Cabeçalho x-selfheal-signature com HMAC e o segredo do endpoint, para o seu sistema conferir que veio do proxy.

Preços por mês

R$ 249por mês

250.000 eventos por mês, até 10 endpoints, correção automática e eventos guardados por 14 dias.

Começar no Starter

Pagamento por Pix, boleto ou cartão. Ao passar do limite do mês há 10% de folga; depois disso a entrada responde 429 até o mês virar ou você mudar de plano. Cancele quando quiser: o plano vale até o fim do mês pago.

Perguntas

E se a correção sugerida estiver errada?

Uma sugestão não muda nada até você ativar. Só as de confiança alta entram sozinhas, e só se você ligar a correção automática no endpoint. Dá para desligar uma correção a qualquer momento e reenviar os eventos afetados.

O evento original é alterado?

Não. O proxy guarda o corpo exatamente como chegou e aplica a correção só na cópia que vai para o seu sistema. No painel você vê os dois.

Funciona com qualquer serviço que manda webhook?

Com qualquer um que mande POST, PUT ou PATCH por HTTP. Você troca a URL de webhook no serviço de origem pelo endereço que o proxy te dá. Como o corpo é guardado byte a byte, a assinatura do fornecedor continua conferindo no seu sistema.

A origem espera a entrega no meu sistema?

Não. O proxy responde 202 assim que guarda o evento, então a origem nunca vê o seu sistema fora do ar. A entrega sai em seguida e, se falhar, volta para a fila.

Meu sistema fica numa rede interna. Dá?

Não. Por segurança, o proxy só entrega em endereços públicos na internet; IPs internos e localhost são recusados.

Por quanto tempo os eventos ficam guardados?

3 dias no grátis, 14 no Starter, 30 no Growth e 90 no Business. Eventos ainda na fila não são apagados.

Tem API?

Tem. Tudo o que o painel faz (endpoints, eventos, correções, avisos, chaves) tem rota em /api, com a chave de API da conta.

Troque uma URL hoje

Crie a conta, crie um endpoint e troque a URL de webhook no serviço de origem pelo endereço do proxy. O grátis não pede cartão.

Criar conta

Plano grátis: 10 mil eventos por mês e 2 endpoints.