Saltar para o conteúdo principal

Webhooks (Saída)

Webhooks permitem que o SalesOS chame o seu sistema quando algo acontece (um lead é ofertado, um ranking é publicado, uma mensagem é disparada). Você nos dá uma URL HTTPS e um segredo; nós fazemos POST de um payload JSON assinado sempre que um evento assinado dispara.
Esta página cobre webhooks de saída (SalesOS → seu endpoint). Para enviar dados para dentro do SalesOS, veja Atividades e API Keys.

Configurar um webhook no Dashboard

Vá em Integrações → Webhooks → Novo Webhook e preencha o formulário.
1

Básico

  • Nome (obrigatório) — ex.: Notificar CRM.
  • Chave — um identificador estável (ex.: notify_crm).
  • Descrição — opcional.
2

Eventos (gatilhos)

Escolha uma Categoria e selecione os eventos que disparam este webhook — esta é a sua assinatura (veja o catálogo). Deixe vazio para um webhook que você só dispara manualmente (botão Testar) ou via workflow.
3

Destino

  • MétodoPOST (padrão), PUT ou PATCH.
  • Timeout (segundos) — quanto esperamos pelo seu 2xx (padrão 30).
  • URL (obrigatório) — seu endpoint. Precisa ser https:// e público (hosts internos/loopback são bloqueados).
  • Autenticação — escolha HMAC para assinar cada entrega e, em Configuração de Autenticação (JSON), informe o segredo:
    (Outros esquemas disponíveis: Bearer, API Key, Basic, OAuth2.)
4

Avançado

  • Headers Customizados (JSON) — headers extras enviados em cada entrega.
  • Template do Payload (JSON com variáveis {{ }}) — molda o data do envelope a partir do contexto do evento, ex.: { "id": "{{event.id}}", "type": "{{event.type}}", "to": "{{event.to}}" }.
Os valores do template são interpolados em JSON. Use campos planos e escalares. Injetar um objeto aninhado via "{{event.data}}" pode não renderizar limpo hoje — confira sempre o Preview / envie um Teste antes.
5

Preview, testar e salvar

O formulário mostra um Preview ao vivo (headers + corpo). Clique em Salvar webhook e use Testar Webhook para enviar uma entrega de exemplo e confirmar que seu endpoint recebe — e verifica — o payload.

O envelope

No caminho de evento, cada entrega é um único objeto JSON:

Headers

Verificar a assinatura

Sempre verifique a assinatura antes de confiar numa entrega. Sem ela, qualquer um que descobrir sua URL poderia forjar eventos.
No caminho de evento, a assinatura cobre {id}.{timestamp}.{rawBody} (padrão Standard Webhooks), então autentica o payload e o timestamp (anti-replay). Recompute o HMAC com o seu segredo, compare em tempo constante e rejeite se o timestamp estiver mais de 300s fora.
Entregas de teste (o botão “Testar Webhook”) e gatilhos legados de workflow usam hoje um esquema mais simples: o corpo é o template renderizado cru (não o envelope) e o header de assinatura é X-Signature: <prefixo><hmac(corpo)>sem o prefixo id.timestamp., então sem anti-replay. Prefira o caminho de evento acima em produção.

Catálogo de eventos

Exemplo de data para ranking.weekly.published:
Os destinatários são chaveados por email — nomes e ids não são enviados; enriqueça do seu lado se precisar.

Confiabilidade

Responda rápido. Retorne um status 2xx rapidamente (antes de processamento pesado) para confirmar o recebimento. Idempotência. O mesmo evento pode ser entregue mais de uma vez (retentativas). Deduplique por X-SalesOS-Event-Id — ele permanece o mesmo entre retentativas.
Entregas falhas aparecem no painel Entregas (Dashboard → Integrações → Webhooks), onde você inspeciona status, tentativas e o último erro, e pode reenviar a partir da fila de dead-letter.