---
title: "Blog Engineering Notes"
description: "Failure modes, architecture, and the boring infrastructure choices that decide whether your events arrive at 2am. Written by the people who maintain the plugin."
url: "https://wpwebhooks.org/blog/"
---

/Blog · Engineering notes

# Notes on running webhooks in production.

Failure modes, architecture, the boring infrastructure choices that decide whether your events arrive at 2am. Written by the people who maintain the plugin.

/ AI integration 2026-07-02 · 8 min

## WordPress Abilities API: Expose Plugin Features to AI

What the WordPress Abilities API is, how wp\_register\_ability() works, and how to expose plugin features to AI agents and MCP clients safely.

#ai#abilities-api#wordpress

[Read →](https://wpwebhooks.org/blog/wordpress-abilities-api-ai-agents/)

/ AI integration 2026-06-29 · 8 min

## WordPress AI Client: wp\_ai\_client\_prompt() Explained

How the WordPress 7.0 AI Client works: provider Connectors, wp\_ai\_client\_prompt(), model fallback chains, and when you still need your own API key.

#ai#wordpress#php

[Read →](https://wpwebhooks.org/blog/wordpress-ai-client-wp-ai-client-prompt/)

/ AI integration 2026-06-26 · 9 min

## Build an AI Agent in a WordPress Plugin: Architecture

Inside an in-admin AI agent for WordPress: plan-first JSON envelopes, typed ability steps, confirmation gates, undo stacks, and trace logging.

#ai#architecture#wordpress

[Read →](https://wpwebhooks.org/blog/wordpress-ai-agent-plugin-architecture/)

/ Architecture 2026-06-25 · 8 min

## ActionScheduler\_DBStore Deadlock: The Fix & Resolution

ActionScheduler\_DBStore::claim\_actions throws MySQL deadlocks under concurrent WooCommerce queue runners — why it happens and the exact fix.

#action-scheduler#woocommerce#wordpress

[Read →](https://wpwebhooks.org/blog/woocommerce-action-scheduler-mysql-deadlocks/)

/ WordPress internals 2026-06-22 · 7 min

## Action Scheduler: Prevent Duplicate Scheduled Actions

Stop Action Scheduler queuing duplicate jobs with the $unique parameter and as\_has\_scheduled\_action() — exact signatures, behaviour, and gotchas.

#action-scheduler#wordpress#php

[Read →](https://wpwebhooks.org/blog/action-scheduler-prevent-duplicate-actions/)

/ Architecture 2026-06-19 · 8 min

## Webhook Retry Policy: Exponential Backoff & Schema

Design a webhook retry policy: exponential backoff timing, what to retry, max attempts, dead-lettering, and the database schema to track deliveries.

#webhooks#architecture#reliability

[Read →](https://wpwebhooks.org/blog/webhook-retry-policy-exponential-backoff/)

/ Gravity Forms 2026-06-18 · 6 min

## Gravity Forms Hooks: Developer Reference & Examples

A developer reference to the most useful Gravity Forms hooks: submission, validation, field, entry, and notification filters — with examples.

#gravity-forms#wordpress#webhooks

[Read →](https://wpwebhooks.org/blog/gravity-forms-hooks-reference/)

/ Comparisons 2026-06-16 · 7 min

## WP Webhooks Pro Alternative: Webhook Actions Compared

Looking for a WP Webhooks Pro alternative? A fair comparison of Webhook Actions vs WP Webhooks — delivery reliability, features, free tiers, and pricing.

#comparison#webhooks#wordpress

[Read →](https://wpwebhooks.org/blog/wp-webhooks-alternative/)

/ Comparisons 2026-06-12 · 7 min

## WordPress to HubSpot: Plugin vs Zapier vs Webhooks

Three ways to connect WordPress to HubSpot compared: the official HubSpot plugin, Zapier middleware, and direct webhooks — cost, control, and reliability.

#comparison#hubspot#integrations

[Read →](https://wpwebhooks.org/blog/wordpress-hubspot-integration-methods/)

/ WordPress internals 2026-06-05 · 8 min

## WordPress External Cron: Services, Setup, and Free Options

Fix unreliable WP-Cron with a free external cron service. Covers cron-job.org, EasyCron, UptimeRobot setup, DISABLE\_WP\_CRON config, and the zero-config Webhook Actions option.

#wordpress#cron#reliability

[Read →](https://wpwebhooks.org/blog/wordpress-external-cron-services/)

/ Gravity Forms 2026-06-02 · 7 min

## gform\_after\_update\_entry Hook: Gravity Forms Webhook

How the gform\_after\_update\_entry hook fires on Gravity Forms entry edits — its parameters, original vs updated values, and sending a webhook on update.

#gravity-forms#wordpress#webhooks

[Read →](https://wpwebhooks.org/blog/gravity-forms-gform-after-update-entry-webhook/)

/ WordPress integrations 2026-05-30 · 8 min

## wpcf7\_mail\_sent Hook: Contact Form 7 to Webhook Guide

How wpcf7\_mail\_sent fires, what get\_posted\_data() returns, and the reliable way to send Contact Form 7 submissions to any webhook endpoint.

#contact-form-7#wordpress#webhooks

[Read →](https://wpwebhooks.org/blog/wordpress-wpcf7-mail-sent-hook/)

/ WordPress internals 2026-05-24 · 7 min

## as\_enqueue\_async\_action: PHP Signature & Parameters

as\_enqueue\_async\_action documentation: PHP signature, the $unique parameter, plus as\_schedule\_single\_action and cancel functions with code examples.

#action-scheduler#wordpress#background-jobs

[Read →](https://wpwebhooks.org/blog/action-scheduler-api-functions/)

/ Architecture 2026-02-19 · 8 min

## Non-Blocking Webhook Architecture in WordPress

How to implement async webhooks in WordPress and WooCommerce. Queue-based dispatch, exponential backoff, failure handling, logging, and production alternatives.

#async#wordpress#woocommerce

[Read →](https://wpwebhooks.org/blog/async-webhooks-wordpress/)

/ Architecture 2026-02-28 · 10 min

## Why WordPress Webhooks Fail in Production (And the Fix)

WordPress webhooks work locally but drop events in production. Four root causes — WP-Cron, queues, retry logic, observability — and the production fix.

#wordpress#webhook#reliable

[Read →](https://wpwebhooks.org/blog/why-wordpress-webhooks-silently-fail-in-production/)

/ Architecture 2026-03-03 · 7 min

## WP-Cron Isn't Enough: Build Reliable WordPress Webhooks

WP-Cron fires on page loads, not on a schedule. Webhooks drop silently under load. Build an async dispatch queue with retry logic — full architecture and code.

#wordpress#wp#reliable

[Read →](https://wpwebhooks.org/blog/async-webhooks-wordpress-wp-cron-not-enough/)

/ Architecture 2026-03-09 · 7 min

## WordPress Webhook Retry, Replay & Dead-Letter Queue

Learn how to build reliable WordPress webhooks using payload storage, automatic retries for failures, and replay for successful events that need reprocessing.

#wordpress#webhook#api

[Read →](https://wpwebhooks.org/blog/wordpress-webhook-retry-replay-system/)

/ Architecture 2026-03-19 · 10 min

## WordPress Webhooks REST API: Retry, Replay & Delivery Logs

Retry failed webhooks, replay any event, and monitor queue health from a REST API — no wp-admin. Full endpoint reference for the WP Webhooks plugin.

#wordpress#webhook

[Read →](https://wpwebhooks.org/blog/wordpress-webhooks-rest-api/)

/ Architecture 2026-03-26 · 8 min

## Create and Manage WordPress Webhooks via REST API

Learn how to create and manage WordPress webhooks via REST API. Control endpoints, enable/disable integrations, and automate setups without code deployments.

#create#wordpress#manage

[Read →](https://wpwebhooks.org/blog/create-manage-wordpress-webhooks-rest-api/)

/ Architecture 2026-03-30 · 12 min

## WordPress Cron Job: Why WP-Cron Fails (And How to Fix)

WordPress cron job not running? WP-Cron only fires on page load. Replace it with a real system cron in two lines — full setup with WP-CLI and Action Scheduler.

#cron#wp#wordpress

[Read →](https://wpwebhooks.org/blog/cron-job-for-wordpress/)

/ Architecture 2026-04-22 · 14 min

## From do\_action to HTTP: WordPress Webhook Delivery

How WordPress webhook plugins discover hooks, register listeners, and build delivery payloads. Engineering internals with real code.

#wordpress#do#webhook

[Read →](https://wpwebhooks.org/blog/wordpress-webhook-delivery-engineering/)

/ Architecture 2026-05-07 · 13 min

## Action Scheduler WordPress: Full Docs & Reference

Action Scheduler WordPress documentation: queue runner, retry logic, concurrency tuning, and webhook delivery — official function reference.

#action#as#wordpress

[Read →](https://wpwebhooks.org/blog/action-scheduler-wordpress/)

/ Architecture 2026-05-07 · 11 min

## Contact Form 7 to Webhook: Send CF7 to Any Endpoint

Send Contact Form 7 submissions to n8n, Zapier, or any webhook URL. wpcf7\_before\_send\_mail hook, field mapping, retry on failure — with Webhook Actions.

#contact#cf7#wpcf7

[Read →](https://wpwebhooks.org/blog/contact-form-7-webhook/)

/ Architecture 2026-05-07 · 12 min

## gform\_after\_submission Hook Reference: Gravity Forms Webhook

Complete gform\_after\_submission reference — hook parameters, accessing entry fields, async dispatch patterns, and Webhook Actions plugin setup.

#gform#gravity#wordpress

[Read →](https://wpwebhooks.org/blog/gravity-forms-gform-after-submission-webhook/)

/ Architecture 2026-05-17 · 8 min

## action\_scheduler\_queue\_runner\_concurrent\_batches Docs

action\_scheduler\_queue\_runner\_concurrent\_batches filter docs: official parameters, batch-size tuning, and code examples for Action Scheduler.

#action#woocommerce#wp

[Read →](https://wpwebhooks.org/blog/action-scheduler-concurrent-batches-filter/)

/ Architecture 2026-05-17 · 8 min

## Send Gravity Forms Submissions to n8n via Webhook

Forward Gravity Forms entries to n8n with a reliable, retry-capable webhook — payload mapping, HMAC signing, error handling, and end-to-end test recipe.

#gravity#gform#n8n

[Read →](https://wpwebhooks.org/blog/gravity-forms-to-n8n-webhook/)

/ Architecture 2026-05-17 · 8 min

## WP-Cron Documentation: Every Function, Constant & CLI

The WP-Cron documentation WordPress never wrote: wp\_schedule\_event, wp\_doing\_cron, spawn\_cron, DISABLE\_WP\_CRON, and every WP-CLI cron command.

#wordpress#wp#spawn

[Read →](https://wpwebhooks.org/blog/wp-cron-developer-reference/)

/ Architecture 2026-05-24 · 8 min

## WooCommerce Webhooks via Action Scheduler: Retry & Replay

Send WooCommerce order events as reliable webhooks with Action Scheduler — async queue, retries with backoff, conditional dispatch, and one-click replay.

#woocommerce#wordpress

[Read →](https://wpwebhooks.org/blog/woocommerce-webhooks-action-scheduler/)

/ Architecture 2026-05-24 · 8 min

## WordPress Background Jobs: Async Queue Without Blocking

Process WordPress background jobs asynchronously — non-blocking dispatch, an Action Scheduler queue, retries with backoff, and reliable webhook delivery.

#wordpress#wp#action

[Read →](https://wpwebhooks.org/blog/wordpress-async-background-processing/)

## Structured data

```json
{"@context":"https://schema.org","@type":"Blog","name":"WP Webhooks Engineering Blog","url":"https://wpwebhooks.org/blog/","description":"Failure modes, architecture, and the boring infrastructure choices that decide whether your events arrive at 2am.","publisher":{"@type":"Organization","name":"WP Webhooks","url":"https://wpwebhooks.org"}}
```
