Over 10 years we help companies reach their financial and branding goals. Engitech is a values-driven technology agency dedicated.

Gallery

Contacts

411 University St, Seattle, USA

engitech@oceanthemes.net

+1 -800-456-478-23

Conecte seu WordPress a outros sistemas em tempo real e crie automações sem depender de integrações complexas

Webhooks permitem que o WordPress envie ou receba eventos em tempo real para automatizar processos entre seu site e ferramentas externas (CRM, ERP, e-mail marketing, planilhas, pagamento, WhatsApp, etc.).
Em vez de “perguntar” se algo mudou, um webhook avisa imediatamente quando um evento ocorre, reduzindo atritos, tempo e custos de integração.

A seguir, um guia prático para entender, configurar e usar webhooks no WordPress com plugins e código, incluindo segurança, testes e boas práticas.


O que é um webhook e quando usar

Um webhook é uma requisição HTTP enviada automaticamente quando um evento acontece.
Use quando precisar de automação em tempo real, por exemplo:

  • Captura de leads: formulário do WordPress → CRM.

  • E-commerce: novo pedido no WooCommerce → emissão de NFe, atualização no ERP, aviso no Slack.

  • Conteúdo: novo post publicado → disparo para newsletter.

  • Membros/assinaturas: assinatura criada/cancelada → liberar/revogar acesso em outro sistema.


Opções para trabalhar com webhooks no WordPress

  1. Plugins prontos (no/low-code)

    • WP Webhooks (envia/recebe eventos, mapeia campos, autenticação).

    • Uncanny Automator e AutomatorWP (automação visual: “se acontecer X, faça Y”).

    • Fluent Forms / Gravity Forms / Formidable (enviar para Webhook ao enviar formulário).

    • WooCommerce (nativo: Webhooks em Configurações → Avançado → Webhooks).

  2. Cenários em nuvem

    • Make (Integromat), Zapier, n8n, Pabbly para orquestrar fluxos, transformar dados e reencaminhar para vários destinos.

  3. Código customizado

    • Registrar endpoints REST para receber webhooks.

    • Usar wp_remote_post() para enviar webhooks a serviços externos.


Como enviar webhooks a partir do WordPress (saída)

Via plugin

  • Em WP Webhooks: escolha um gatilho (ex.: “user_created”, “post_published”, “woocommerce_order_created”), defina a URL de destino, cabeçalhos e mapeie os campos.

  • Em Fluent Forms / Gravity Forms: adicione a integração Webhook e cole a URL de recebimento do seu CRM/Make/Zapier.

Via WooCommerce (nativo)

  1. WooCommerce → Configurações → Avançado → Webhooks.

  2. Adicionar webhook e defina:

    • Tópico: “Order created/updated/paid”.

    • URL de entrega.

    • Formato: JSON.

    • Status: Ativo.

  3. Salve e teste um pedido para disparar.

Via código

 
// Exemplo simples: enviar webhook quando um post é publicado add_action('publish_post', function($post_id){ $payload = [ 'post_id' => $post_id, 'title' => get_the_title($post_id), 'url' => get_permalink($post_id), 'author' => get_the_author_meta('display_name', get_post_field('post_author', $post_id)), 'published' => current_time('c') ]; wp_remote_post('https://api.exemplo.com/webhook', [ 'headers' => ['Content-Type' => 'application/json'], 'body' => wp_json_encode($payload), 'timeout' => 10, ]); });

Como receber webhooks no WordPress (entrada)

Via plugin

  • WP Webhooks: crie um Receiver e ganhe uma URL do tipo https://seusite.com/wp-json/wpwebhooks/v1/receive?webhook_key=....

  • Mapeie os campos recebidos e defina ações (criar usuário, criar pedido, gerar post, disparar e-mail, etc.).

Via código com a REST API

 
// 1) Registrar rota para receber POST do webhook add_action('rest_api_init', function () { register_rest_route('custom/v1', '/inbound', [ 'methods' => 'POST', 'callback' => 'custom_handle_webhook', 'permission_callback' => '__return_true' ]); }); // 2) Validar e processar function custom_handle_webhook(WP_REST_Request $req){ $signature = $req->get_header('X-Signature'); // ex.: HMAC enviado pelo provedor $raw = $req->get_body(); $secret = 'SEU_SEGREDO_FORTE'; // Validação HMAC (se o provedor suportar) $calc = base64_encode(hash_hmac('sha256', $raw, $secret, true)); if (!$signature || !hash_equals($signature, $calc)) { return new WP_REST_Response(['ok'=>false,'error'=>'invalid_signature'], 401); } $data = $req->get_json_params(); // Exemplo: criar um rascunho de post a partir do webhook $post_id = wp_insert_post([ 'post_title' => sanitize_text_field($data['title'] ?? 'Sem título'), 'post_status' => 'draft', 'post_type' => 'post', 'post_content'=> wp_kses_post($data['content'] ?? '') ]); return new WP_REST_Response(['ok'=>true,'post_id'=>$post_id], 200); }

Teste a rota com curl ou Postman:

 
curl -X POST https://seusite.com/wp-json/custom/v1/inbound \ -H "Content-Type: application/json" \ -H "X-Signature: <assine com seu segredo>" \ -d '{"title":"Novo lead","content":"Chegou via webhook."}'

Segurança e conformidade

  • Valide a origem: use HMAC/Token secreto em cabeçalho (ex.: X-Signature, Authorization: Bearer <token>).

  • Restrinja IPs quando possível (Allowlist).

  • Use HTTPS sempre.

  • Rate limit e retries: trate duplicações (idempotência) salvando um event_id.

  • Sanitize/escape dados antes de salvar (sanitize_text_field, wp_kses_post).

  • Logs: registre entradas e respostas para auditoria (error_log, banco, serviços de log).


Padrões e boas práticas de automação

  • Idempotência: ignore eventos já processados.

  • Timeouts: mantenha resposta < 5–10s; para tarefas demoradas, enfileire (WP-Cron, Action Scheduler, Redis, filas externas).

  • Observabilidade: monitore falhas e reentregas.

  • Versione o payload: documente campos, alterações e contratos.

  • Mapeie campos entre sistemas e normalize datas (ISO-8601).


Exemplos prontos de cenários úteis

  • Lead do formulário → CRM: Fluent Forms → Webhook → Make/Zapier → CRM (com tag da campanha).

  • Pedido WooCommerce → ERP/NFe: Webhook nativo do pedido pago → conector fiscal → retorno de chave NFe ao pedido.

  • Publicação → Newsletter: post publicado → webhook → automação que cria e envia campanha.

  • Assinatura cancelada → revogar acesso: webhook de cancelamento do gateway → remover função de membro.

  • Suporte: ticket criado no Help Desk → webhook → cria usuário temporário no WP com permissões mínimas.


Testes e debugging

  • Use RequestBin/webhook.site para inspecionar o payload enviado.

  • Em staging, ative WP_DEBUG_LOG para registrar entradas.

  • Reproduza reenvios e falhas com Postman (simule 5xx, tempo de resposta, cabeçalhos).

  • Verifique respostas 2xx no provedor; sem isso ele pode reenviar o evento.


Perguntas frequentes

Preciso de plugin para usar webhooks?
Não. Plugins facilitam, mas você pode criar endpoints com a REST API e wp_remote_post().

Webhooks funcionam sem cron?
Sim. O webhook é síncrono. Use filas/cron apenas para tarefas demoradas disparadas pelo webhook.

Posso usar webhooks com WhatsApp/Telegram?
Sim. Muitos provedores oferecem APIs que recebem webhooks para automações de mensagens.

E se o provedor não suportar HMAC?
Use um token secreto em cabeçalho (Authorization) e valide no servidor.

Como evitar processar o mesmo evento duas vezes?
Guarde o event_id em tabela/meta e ignore se já existir.


Automatizar com webhooks no WordPress reduz trabalhos manuais, acelera operações e integra seu site ao ecossistema de ferramentas que você já usa.
Se quiser, eu monto um fluxo completo para seu caso (formulário → CRM → WhatsApp → planilha) com testes, logs e segurança prontos para produção.