Como Usar Webhooks No WordPress Para Automação
- Home
- Como Usar Webhooks No WordPress Para Automação
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
-
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).
-
-
Cenários em nuvem
-
Make (Integromat), Zapier, n8n, Pabbly para orquestrar fluxos, transformar dados e reencaminhar para vários destinos.
-
-
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)
-
WooCommerce → Configurações → Avançado → Webhooks.
-
Adicionar webhook e defina:
-
Tópico: “Order created/updated/paid”.
-
URL de entrega.
-
Formato: JSON.
-
Status: Ativo.
-
-
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_LOGpara registrar entradas. -
Reproduza reenvios e falhas com Postman (simule
5xx, tempo de resposta, cabeçalhos). -
Verifique respostas
2xxno 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.


