Genera un plugin WordPress que dispara webhooks Zapier
Zapier es el pegamento de muchos pequeños negocios. La parte Zapier es fácil: Catch Webhook, copias la URL, a construir. La parte WordPress es donde se atascan los equipos. Instalan un plugin genérico que dispara webhook en cada save_post, y funciona hasta que marketing quiere un webhook distinto por formulario, con payload condicional, solo cuando el contacto viene de una campaña concreta.
Un plugin construido para tus Zaps específicos mantiene el contrato del payload apretado y predecible. Los Zaps se rompen cuando cambia el payload de entrada; un plugin a medida garantiza la forma del dato cada vez porque el código es determinista.
¿Por qué generarlo en vez de instalar un plugin existente?
WP Webhooks gratis cubre casos simples. Su premium (129€/año) abre URLs por trigger, disparo condicional e integración WC. Si tu flujo mapea a sus reglas, pagar vale. Si no, lidiar con su plantillado duele más que describir tu JSON exacto.
La app built-in "WordPress" de Zapier pide acceso admin a tu sitio, que algunos clientes rechazan por seguridad. Un plugin propio empujando webhooks outbound es un trust boundary más estrecho.
El manejo de fallos es donde los plugins genéricos fallan. Si Zapier está caído 30 minutos, ¿qué pasa con los 200 eventos que debían disparar? Un plugin con cola local y reintentos los maneja con gracia; uno fire-and-forget los pierde.
Prompt de ejemplo
Este es el tipo de descripción que genera este plugin. Puedes partir de aquí y ajustar lo que necesites antes de generar.
Nombre del plugin: Acme Zapier Triggers
Endpoints (Catch Hook URLs pegadas en admin):
- new_user_zap: user_register.
- new_order_zap: woocommerce_order_status_completed.
- new_submission_zap: wpforms_process_complete formulario ID 5.
Shapes:
- new_user: { event, timestamp, user_id, email, first_name, last_name, role }
- new_order: { event, timestamp, order_id, order_total, currency, customer_email, line_items: [...], billing_country }
- new_submission: { event, timestamp, form_id, submission_id, fields: { name, email, message } }
POST JSON con X-Acme-Event: <trigger> y firma X-Acme-Signature: hmac-sha256 con secret (en opciones).
Retry: en no-2xx, cola con backoff 1min / 5min / 30min / 1h / 4h. Tras final fail: log + email.
Condiciones:
- new_order_zap solo si total >= 50 EUR.
- new_submission_zap siempre.
Admin: URLs, secret, reglas condicionales, log recientes.
Compatible HPOS.Qué suele incluir el plugin generado
- Un POST por trigger con wp_remote_post timeout 10s
- Envelope consistente: event, timestamp, version
- Firma HMAC-SHA256 para verificar en el Zap
- Reintentos encolados con backoff escalado y dead letter tras 5
- Enable/disable + condiciones por trigger
- Log de últimas 50 ejecuciones con estado y snippet
- Lectura pedidos HPOS-compatible
Funciona idéntico con Make, Pipedream, n8n, Integromat o cualquier endpoint que acepte webhook. Cambia el endpoint, nada más.
Preguntas frecuentes
¿En qué se diferencia de la app WordPress de Zapier?
Esa pide credenciales admin y polea tu sitio. Un plugin custom empuja outbound con firma verificable. Trust boundary estrecho y normalmente más rápido.
¿Y si Zapier está caído?
El plugin encola y reintenta con backoff exponencial. Tras 5 fallos va a dead letter y email al admin como mucho una vez por hora.
¿Puedo firmar el payload?
Sí. Cada envío lleva header X-<YourPlugin>-Signature con HMAC-SHA256 del cuerpo usando un secret. El Zap puede verificar autenticidad.
¿Funciona con HPOS?
Sí. Lectura exclusiva por wc_get_order() y $order->get_meta(). Declara custom_order_tables.