Rishidocs

Nó Webhook: chamando sistemas externos

3 min de leituraAtualizado há 4 dias

Nó Webhook: chamando sistemas externos

O nó Webhook faz uma requisição HTTP pra uma URL externa com dados do fluxo. É o que te deixa integrar o Rishi com qualquer sistema terceiro — ERP, CRM, planilha online, n8n, Zapier, código próprio.

Quase tudo que tem URL aceita webhook. Use pra:

  • Atualizar o status do pedido no seu ERP quando o cliente avalia
  • Disparar uma automação no Make/Zapier
  • Notificar o time num canal de Slack/Discord
  • Enviar dados pra uma planilha do Google Sheets
  • Criar um chamado no Help Desk
  • Qualquer coisa que aceite POST/GET HTTP

Configurando

No Inspector do nó Webhook:

Campo Descrição
URL URL completa do endpoint (obrigatório)
Método GET, POST, PUT, PATCH, DELETE (padrão: POST)
Content-Type Padrão: application/json
Body Payload a enviar. Suporta variáveis {{...}}

Body com JSON

{
  "pedido": "{{order.external_id}}",
  "cliente": "{{customer.first_name}} {{customer.last_name}}",
  "email": "{{customer.email}}",
  "valor": "{{order.total}}",
  "status": "pago"
}

As variáveis são resolvidas antes do envio — o destinatário recebe os valores reais, não os placeholders.

GET com query string

Se o método é GET, o body é parseado como query string ou JSON e enviado como parâmetros de URL:

URL: https://meu-sistema.com/webhook
Método: GET
Body:  pedido={{order.external_id}}&cliente={{customer.email}}

Vai disparar:

GET https://meu-sistema.com/webhook?pedido=1234&cliente=joao@exemplo.com

Comportamento e timeout

  • Timeout: 8 segundos. Se o endpoint não responder em 8s, o webhook é considerado falho.
  • Sem retry de conteúdo. Se o servidor retorna 4xx ou 5xx, o erro é registrado mas o fluxo continua pro próximo nó. Não há nova tentativa automática.
  • Resposta do webhook não é salva no fluxo. O conteúdo retornado pelo endpoint não vira variável {{}} — é apenas logado.

Webhook que falha não interrompe o fluxo. Por design, o fluxo segue mesmo quando o endpoint externo dá erro. Se você precisa que o fluxo só continue se o webhook der sucesso, fale com o suporte sobre lógicas customizadas.

Logs e diagnóstico

Cada execução do nó Webhook registra um FlowNote com:

  • URL chamada
  • Método e payload enviados
  • Resposta recebida (status HTTP + corpo)
  • Mensagem de erro, se houver (webhook_failed)

Acesse pelo painel de execuções do fluxo. Útil pra debugar quando o sistema externo não está reagindo como esperado.

Casos de uso comuns

Notificar Slack quando alguém avalia

Gatilho: Avaliação feita
   ↓
Webhook:
  URL: https://hooks.slack.com/services/...
  Método: POST
  Content-Type: application/json
  Body: {
    "text": "Nova avaliação no pedido #{{order.external_id}} de {{customer.first_name}}!"
  }

Atualizar pedido em ERP externo quando paga

Gatilho: Pedido pago
   ↓
Webhook:
  URL: https://meu-erp.com/api/pedidos/{{order.external_id}}/pagar
  Método: PATCH
  Content-Type: application/json
  Body: {
    "pago_em": "{{order.paid_at}}",
    "valor": "{{order.total}}"
  }

Disparar fluxo no n8n

Gatilho: Carrinho abandonado
   ↓
Webhook:
  URL: https://n8n.meudominio.com/webhook/carrinho-abandonado
  Método: POST
  Body: {
    "cart_id": "{{cart_id}}",
    "url": "{{cart_url}}",
    "telefone": "{{customer.phone}}",
    "valor": "{{cart_total}}"
  }

Casos de borda

  • URL vazia → registra FlowNote de erro mas o fluxo continua.
  • URL malformada → mesma coisa: erro registrado, fluxo continua.
  • Timeout (8s) → registrado como webhook_failed no log.
  • Endpoint retorna 5xx → erro registrado, fluxo continua.
  • Variável vazia no body → o placeholder fica como string vazia ("").
  • Método HTTP inválido → cai pra POST por segurança.

Variáveis úteis pra webhook

Algumas variáveis são particularmente úteis em payloads:

Variável Quando usar
{{order.external_id}} Pra cruzar com o pedido no sistema externo
{{customer.email}} Identificador único cross-system
{{coupon_code}} Pra reportar cupom gerado pelo Rishi
{{cart_url}} Pra retomar carrinho do lado externo
{{customer.phone}} Pra disparar SMS/WhatsApp em outro sistema

A lista completa de variáveis disponíveis fica no painel Variáveis disponíveis aqui do Inspector.

Segurança

  • HTTPS recomendado. O Rishi aceita HTTP, mas dados sensíveis devem trafegar em HTTPS.
  • Sem autenticação built-in. Se o endpoint precisa de token/header de auth, inclua no Body (pra POST) ou na URL (como query param). Headers customizados não são configuráveis hoje — fale com o suporte se for um caso comum no seu cenário.
  • IPs do Rishi não são fixos. Se o seu sistema valida IP de origem, configure pra aceitar qualquer IP da Cloud (AWS) ou use validação por token no payload.

Próximos passos

Foi útil?