Pular para o conteúdo

O que é um webhook?

Um webhook é um callback HTTP: um sistema envia uma requisição POST automática a uma URL que você controla no momento em que um evento escolhido acontece, em vez de esperar que você pergunte. É push, não polling — a origem envia os dados à medida que os eventos ocorrem, então seu endpoint os recebe em segundos, em vez de consultar em intervalos fixos.

Atualizado em 2 min de leituraPor fromHello

O essencial

  1. Um webhook é push, não polling: o sistema de origem envia os dados no instante em que um evento ocorre, e você dispensa as perguntas constantes de “tem algo novo?”.

  2. Duas direções importam nas plataformas de engajamento — nós de saída chamam sistemas externos no meio de uma jornada; receptores de entrada recebem eventos deles.

  3. Como qualquer um pode fazer um POST para uma URL pública, trate todo payload como não confiável: verifique a assinatura e responda rápido.

Como funciona um webhook?

Você registra uma URL — o endpoint — no sistema que guarda os dados e informa quais eventos interessam a você. Quando um desses eventos ocorre, esse sistema envia um HTTP POST ao seu endpoint com um payload que descreve o que aconteceu, em geral em JSON. Seu servidor lê o payload, faz o trabalho dele e devolve um status 2xx para confirmar o recebimento. Nenhuma requisição sua provocou a chamada — a iniciativa foi da origem. A maioria dos provedores assina cada requisição para que você possa confirmar que ela veio mesmo deles.

Webhook vs. polling de API: qual é a diferença?

O polling é o modelo pull: seu código pergunta a uma API “tem algo novo?” em intervalos fixos, tenha algo mudado ou não. O webhook é o modelo push: a origem chama você só quando há algo a informar. O polling desperdiça a maior parte das requisições e cria um atraso entre o evento e a sua reação; os webhooks entregam em segundos e ficam em silêncio no resto do tempo. A contrapartida é que seu endpoint precisa ser acessível publicamente e estar pronto para picos.

O webhook e os termos relacionados.

Como as plataformas de engajamento usam webhooks?

  • Saída — um nó de webhook dentro de uma jornada faz um POST para um sistema externo no meio do fluxo: avisar o Slack quando um lead converte, sincronizar um status com o seu CRM, iniciar uma etapa de fulfillment.
  • Entrada — um receptor recebe eventos de outras ferramentas: um provedor de pagamentos informa uma cobrança aprovada, uma ferramenta de formulários repassa um novo lead, e os perfis e as jornadas reagem sem uma importação noturna.
  • Essa integração nos dois sentidos é o que permite a uma plataforma de engajamento do cliente ficar no centro do seu stack. Serviços de entrega dedicados, como o Knock, se especializam só no lado de saída.

Por que isso importa para uma equipe pequena

Uma equipe de duas pessoas não pode ficar consultando mudanças, e cron jobs que verificam a cada poucos minutos acrescentam atraso e custo. Os webhooks permitem que uma ferramenta reaja a outra no momento em que algo acontece, sem ninguém vigiando. Dois cuidados: como qualquer um pode fazer um POST para uma URL pública, verifique a assinatura de cada requisição e trate o corpo como não confiável; e registre os eventos que você emite e recebe, para que eles batam com o seu plano de rastreamento em vez de virarem um canal paralelo sem controle.

FAQ

Perguntas frequentes

  • Qual é a diferença entre um webhook e uma API?

    Uma API é algo que você chama quando quer dados; um webhook é algo que chama você quando os dados mudam. Eles se complementam: muitas vezes você usa uma API REST para ler ou atualizar registros, e um webhook para ser avisado no momento em que um registro muda, sem precisar ficar perguntando.

  • Como proteger um endpoint de webhook?

    Trate toda requisição como não confiável. A maioria dos provedores assina o payload com um segredo compartilhado — recalcule a assinatura e rejeite tudo o que não bater. Use HTTPS no endpoint e devolva um 2xx rápido, deixando o trabalho lento para uma tarefa em segundo plano, para que o remetente não estoure o tempo limite e tente de novo.

  • O que acontece se meu endpoint estiver fora do ar quando um webhook for enviado?

    A maioria dos provedores tenta de novo as entregas que falharam, com backoff, por um tempo, e depois desiste, então uma queda breve costuma ser contornável. Mas as novas tentativas não são garantidas para sempre — torne seu handler idempotente, já que o mesmo evento pode chegar mais de uma vez, e faça a conciliação com a API de origem para tudo o que você não pode perder.

  • Preciso construir alguma coisa para receber webhooks?

    Você precisa de uma URL HTTPS acessível publicamente que aceite requisições POST e devolva um 2xx. Para webhooks de entrada em uma plataforma de engajamento, esse receptor costuma vir integrado — você cola sua URL na ferramenta que envia. Para chamadas de saída, o nó de webhook de uma jornada faz o envio por você.

fromHello é um software de automação de marketing de código aberto: mensagens acionadas pelo que as pessoas fazem.

O fromHello Cloud está disponível em acesso antecipado pela lista de espera.

Acesso antecipado

fromHello Cloud

Ninguém empreende para ficar pequeno.

O acesso antecipado ao fromHello Cloud é liberado em etapas. O onboarding é assistido: ajudamos você a configurar tudo e a trazer seus contatos.

Vamos avisar você por e-mail quando sua vaga for liberada. Sem spam.

Ainda não quer entrar? Ver no GitHub