# WP Webhooks > Say what you want, get a working WordPress automation. Webhook Actions by Flow Systems is a free open-source plugin with a built-in AI agent — **Build with AI**. Describe the outcome in one plain sentence ("When someone submits my contact form, add them to my CRM"); the agent plans the integration, builds it, test-fires it against the site's real data, and hands over the switch. Underneath sits a senior-grade delivery engine that turns any WordPress `do_action` — including future ones — into a first-class REST API event: captured, mapped into a JSON payload, and dispatched asynchronously with queue, retry, replay, idempotency headers, and a full delivery log. Compatible with n8n, Make, Zapier, HubSpot, Pipedrive, Notion, Airtable, Slack, and any HTTPS endpoint. The same toolset is exposed to external AI tools via the WordPress Abilities API and the MCP Adapter, and scoped REST API tokens — including a write-capable `agent` scope that never exposes stored secrets — let AI agents (Claude Code, Cursor) and CI/CD pipelines drive the queue from the outside. A Credentials Vault stores auth secrets encrypted at rest (AES-256-GCM) so webhooks reference credentials by name instead of pasting raw Authorization headers. Markdown (`.md`) versions of every page on this site, for AI agents and crawlers. Each link below points to the clean Markdown twin of a page. The full text of every page is also inlined in [/llms-full.txt](https://wpwebhooks.org/llms-full.txt). ## Pages - [Say What You Want. Get a Working WordPress Automation.](https://wpwebhooks.org/index.md): A free plugin with a built-in AI agent: describe the automation — it plans, builds, and test-fires the integration on senior-grade infrastructure. n8n, CRMs, Zapier, AI agents. - [WordPress AI Webhook Plugin: Async Queue, Retry & Logs](https://wpwebhooks.org/wordpress-webhook-plugin.md): Free WordPress AI webhook plugin: describe the integration and the built-in agent builds it. Async queue, retries, full delivery log, replay, REST API. - [REST API Reference](https://wpwebhooks.org/webhook-wordpress-plugin-api.md): Complete REST API reference for the Webhook Actions WordPress plugin — 77 endpoints across 16 resource groups. Authentication, parameters, request bodies, response schemas, and curl examples. - [WordPress Webhooks: Setup, Examples, and Why They Fail](https://wpwebhooks.org/wordpress-webhooks.md): How WordPress webhooks work, why they fail silently in production, and what a reliable setup looks like — with Gravity Forms and WooCommerce examples. - [Pricing — Webhook Actions Pro](https://wpwebhooks.org/pricing.md): Unlock the full webhook toolkit. AI credits included — build integrations by describing them. External Cron, dynamic endpoints, Code Glue, conditional dispatch. Starter from $249/yr. - [Plugin Changelog](https://wpwebhooks.org/changelog.md): Full release history for Webhook Actions, the free WordPress webhook plugin by Flow Systems. Every fix, feature, and improvement since v1.0.0 — updated with each release. - [Pro Changelog — Webhook Actions Pro](https://wpwebhooks.org/pro-changelog.md): Full release history for Webhook Actions Pro — the premium WordPress webhook plugin by Flow Systems. Every fix, feature, and improvement since v1.0.0. - [About](https://wpwebhooks.org/about.md): Webhook Actions is a WordPress plugin for reliable webhook delivery — async queue, retry, replay, and a full REST API. Built by Mateusz Skorupa. ## Documentation - [Action Scheduler Support](https://wpwebhooks.org/docs/action-scheduler.md): Automatically uses Action Scheduler (when available) instead of WP-Cron for queue processing. - [Activity History](https://wpwebhooks.org/docs/activity-history.md): Persistent audit log of every admin and API-token action with actor identity, structured diffs, and AI prompt capture. - [AI Dev Trace](https://wpwebhooks.org/docs/ai-dev-trace.md): A diagnostic panel for Build with AI that records the exact prompts, raw requests, and raw responses exchanged with the AI model — API keys always redacted. - [Any Hook as a Trigger](https://wpwebhooks.org/docs/any-hook-integration.md): Use any WordPress do_action hook as a webhook trigger — no built-in integration needed. - [API Tokens](https://wpwebhooks.org/docs/api-tokens.md): Scoped API tokens for REST API access — create tokens with read, operational, full, or agent scope. - [assign_credential — AI Ability](https://wpwebhooks.org/docs/ability-assign-credential.md): Assign a vault credential to a webhook — Reference a stored vault credential from a webhook by id (the secret is injected at dispatch time and never exposed). - [assign_snippet — AI Ability](https://wpwebhooks.org/docs/ability-assign-snippet.md): Assign a Code Glue snippet to a webhook — Attach a snippet to a webhook+trigger as its pre-dispatch (payload transform) or post-dispatch (after-response side effects) Code Glue and enable it. - [Async Delivery Queue](https://wpwebhooks.org/docs/async-queue.md): Webhook events are written to a persistent queue and delivered outside the request cycle. - [Build with AI](https://wpwebhooks.org/docs/build-with-ai.md): An in-admin AI agent that turns plain-language requests into working, tested webhook integrations — plan-first, with confirmation before anything goes live. - [Captured payload anonymization](https://wpwebhooks.org/docs/payload-anonymization.md): Personal data in captured example payloads is replaced with placeholders before a build leaves your site. - [Code Glue](https://wpwebhooks.org/docs/code-glue.md): Attach short PHP snippets per webhook+trigger to enrich payloads before dispatch. - [Conditional Dispatch](https://wpwebhooks.org/docs/conditional-dispatch.md): Events are only delivered when payload field values match configured rules; non-matching events are logged as skipped. - [Configurable HTTP Methods](https://wpwebhooks.org/docs/http-methods.md): Each webhook can send requests as GET, POST, PUT, PATCH, or DELETE. - [Contact Form 7 Integration](https://wpwebhooks.org/docs/cf7-integration.md): Built-in normalization of CF7 submission objects into clean JSON payloads. - [create_chain — AI Ability](https://wpwebhooks.org/docs/ability-create-chain.md): Create a webhook chain — Create a named chain that wires 2xx completions of one webhook to downstream webhooks. - [create_chain_link — AI Ability](https://wpwebhooks.org/docs/ability-create-chain-link.md): Add a chain link — Add a source→target edge to a chain. - [create_snippet — AI Ability](https://wpwebhooks.org/docs/ability-create-snippet.md): Create a Code Glue snippet — Create a Code Glue PHP snippet (inert until assigned to a webhook). - [create_webhook — AI Ability](https://wpwebhooks.org/docs/ability-create-webhook.md): Create a webhook — Create a new webhook (always created DISABLED until the user enables it). - [Credentials Vault](https://wpwebhooks.org/docs/credentials-vault.md): Store reusable authentication secrets encrypted at rest and reference them from webhooks instead of pasting raw Authorization headers. - [Custom Request Headers](https://wpwebhooks.org/docs/custom-headers.md): Add static or payload-resolved key/value headers sent with every delivery. - [delete_snippet — AI Ability](https://wpwebhooks.org/docs/ability-delete-snippet.md): Delete a Code Glue snippet — Permanently delete a Code Glue snippet. - [delete_webhook — AI Ability](https://wpwebhooks.org/docs/ability-delete-webhook.md): Delete a webhook — Permanently delete a webhook and its triggers / mapping. - [Delivery Logs](https://wpwebhooks.org/docs/delivery-logs.md): Every delivery attempt is stored with HTTP status, response body, headers sent, and full attempt history. - [Developer Docs — Webhook Actions for WordPress](https://wpwebhooks.org/docs.md): Reference and how-to docs for the Webhook Actions WordPress plugin — guides, features, AI abilities, filters, and action hooks with code examples. - [Developer Extensibility](https://wpwebhooks.org/docs/developer-extensibility.md): 16 filters and 6 action hooks let you customize every aspect of dispatch, payload, headers, and retry behavior. - [Dynamic URL Templates](https://wpwebhooks.org/docs/dynamic-url-templates.md): Use `{{ field.path }}` placeholders in endpoint URLs — resolved per-event against the live payload. - [Dynamic URLs via Filter](https://wpwebhooks.org/docs/dynamic-urls.md): Rewrite the webhook endpoint URL per-event from PHP using the `fswa_webhook_url` filter. - [enable_webhook — AI Ability](https://wpwebhooks.org/docs/ability-enable-webhook.md): Enable / disable a webhook — Enable (go live) or disable a webhook. - [Event Identity & Deduplication Headers](https://wpwebhooks.org/docs/event-identity.md): Every dispatched event gets a UUID and ISO 8601 timestamp embedded in the payload and request headers. - [External Cron](https://wpwebhooks.org/docs/external-cron.md): Replace unreliable visitor-triggered WP-Cron with a fully managed external pinger — no server crontab needed. - [fswa_ability_definitions — Filter Hook](https://wpwebhooks.org/docs/fswa-ability-definitions.md): Filters the ability definitions that make up the AI agent toolset and the WordPress Abilities / MCP exposure. - [fswa_ability_permitted — Filter Hook](https://wpwebhooks.org/docs/fswa-ability-permitted.md): Filters whether the current request may invoke a Webhook Actions ability through the Abilities API surface. - [fswa_ai_transport — Filter Hook](https://wpwebhooks.org/docs/fswa-ai-transport.md): Overrides the LLM transport the Build with AI agent talks through, bypassing built-in provider resolution. - [fswa_available_triggers — Filter Hook](https://wpwebhooks.org/docs/fswa-available-triggers.md): Filters the grouped list of available triggers returned by the triggers REST endpoint. - [fswa_backoff_delay — Filter Hook](https://wpwebhooks.org/docs/fswa-backoff-delay.md): Controls the retry delay in seconds between failed delivery attempts. - [fswa_capture_payload — Filter Hook](https://wpwebhooks.org/docs/fswa-capture-payload.md): Filters the payload stored as the example capture — does not affect what is dispatched. - [fswa_cron_token_regenerated — Action Hook](https://wpwebhooks.org/docs/fswa-cron-token-regenerated.md): Fires immediately after the external cron secret is regenerated. - [fswa_error — Action Hook](https://wpwebhooks.org/docs/fswa-error.md): Fires after a webhook delivery fails — covers both HTTP error responses and transport errors. - [fswa_export_doc — Filter Hook](https://wpwebhooks.org/docs/fswa-export-doc.md): Attach top-level blocks to a Build export document before it is serialized. - [fswa_export_trigger — Filter Hook](https://wpwebhooks.org/docs/fswa-export-trigger.md): Attach per-trigger data to a webhook trigger block during export. - [fswa_glue_error — Action Hook](https://wpwebhooks.org/docs/fswa-glue-error.md): Fires when an assigned Code Glue snippet errors during a real dispatch (the delivery itself proceeds with the unmodified payload). - [fswa_glue_post_dispatch — Action Hook](https://wpwebhooks.org/docs/fswa-glue-post-dispatch.md): Fires after a successful (2xx) delivery with the full response and both pre/post-mapping payloads. - [fswa_headers — Filter Hook](https://wpwebhooks.org/docs/fswa-headers.md): Filters the HTTP headers sent with each webhook request. - [fswa_http_args — Filter Hook](https://wpwebhooks.org/docs/fswa-http-args.md): Filters the full `wp_remote_request()` arguments array before the HTTP call. - [fswa_http_connect_timeout — Filter Hook](https://wpwebhooks.org/docs/fswa-http-connect-timeout.md): Sets the TCP connection timeout in seconds (separate from the read timeout). - [fswa_http_timeout — Filter Hook](https://wpwebhooks.org/docs/fswa-http-timeout.md): Sets the total HTTP request timeout in seconds. - [fswa_import_extra_root_keys — Filter Hook](https://wpwebhooks.org/docs/fswa-import-extra-root-keys.md): Whitelist additional top-level keys so a Build import document passes strict validation. - [fswa_import_trigger — Action Hook](https://wpwebhooks.org/docs/fswa-import-trigger.md): Restore per-trigger data after a webhook is recreated from a Build import. - [fswa_max_attempts — Filter Hook](https://wpwebhooks.org/docs/fswa-max-attempts.md): Sets the maximum number of delivery attempts before a webhook is marked permanently failed. - [fswa_normalize_object — Filter Hook](https://wpwebhooks.org/docs/fswa-normalize-object.md): Converts custom PHP objects in hook arguments into plain arrays for JSON serialization. - [fswa_payload — Filter Hook](https://wpwebhooks.org/docs/fswa-payload.md): Filters the base webhook payload after it is built from the WordPress hook arguments, before it is queued. - [fswa_queue_batch_size — Filter Hook](https://wpwebhooks.org/docs/fswa-queue-batch-size.md): Sets the number of queue jobs processed per batch run. - [fswa_require_https — Filter Hook](https://wpwebhooks.org/docs/fswa-require-https.md): Controls whether webhook endpoint URLs must use HTTPS. - [fswa_should_dispatch — Filter Hook](https://wpwebhooks.org/docs/fswa-should-dispatch.md): Controls whether a webhook should be dispatched for the current trigger event. - [fswa_skipped — Action Hook](https://wpwebhooks.org/docs/fswa-skipped.md): Fires when a webhook is skipped because its conditions did not pass. - [fswa_success — Action Hook](https://wpwebhooks.org/docs/fswa-success.md): Fires after a webhook is delivered successfully (2xx response received). - [fswa_webhook_data — Filter Hook](https://wpwebhooks.org/docs/fswa-webhook-data.md): Filters webhook data before it is returned in REST API responses. - [fswa_webhook_payload — Filter Hook](https://wpwebhooks.org/docs/fswa-webhook-payload.md): Filters the per-webhook outgoing payload after field mapping, immediately before HTTP dispatch. - [fswa_webhook_response — Action Hook](https://wpwebhooks.org/docs/fswa-webhook-response.md): Fires after every HTTP response is received — success or error — with full response context. - [fswa_webhook_saved — Action Hook](https://wpwebhooks.org/docs/fswa-webhook-saved.md): Fires after a webhook is created or updated via the REST API. - [fswa_webhook_url — Filter Hook](https://wpwebhooks.org/docs/fswa-webhook-url.md): Rewrites the webhook endpoint URL per-event before dispatch. - [Get a free Google AI Studio API key — How-to Guide](https://wpwebhooks.org/docs/get-google-ai-studio-api-key.md): Get a free Gemini API key from Google AI Studio in about two minutes and connect it to Build with AI — no credit card required. - [get_logs — AI Ability](https://wpwebhooks.org/docs/ability-get-logs.md): Get delivery logs — Read recent delivery logs (optionally for one webhook) to verify what was sent and how the endpoint responded. - [get_rest_route_schema — AI Ability](https://wpwebhooks.org/docs/ability-get-rest-route-schema.md): Read a REST route's argument contract on this site — every argument with its type and whether it is required. - [get_snippet — AI Ability](https://wpwebhooks.org/docs/ability-get-snippet.md): Get a Code Glue snippet — Get a single Code Glue snippet by id, including its full PHP code. - [get_trigger_schema — AI Ability](https://wpwebhooks.org/docs/ability-get-trigger-schema.md): Get captured payload + mapping for a trigger — Return the last captured example payload, field mapping and conditions for a webhook+trigger so the agent can map against the real payload shape. - [get_webhook — AI Ability](https://wpwebhooks.org/docs/ability-get-webhook.md): Get a webhook — Get a single webhook by id, including triggers, mapping, conditions, headers and credential assignment. - [Import & Export](https://wpwebhooks.org/docs/import-export.md): Move webhooks and chains between sites as a portable JSON document. - [Install the plugin — How-to Guide](https://wpwebhooks.org/docs/install-the-plugin.md): Install Webhook Actions from the zip this site hands you, from your WordPress dashboard, or with one WP-CLI command. - [Internationalization (i18n)](https://wpwebhooks.org/docs/internationalization.md): The entire admin interface and all server-side strings are translatable — English by default, with Polish, Simplified Chinese, and Dutch bundled, plus WPML and Polylang compatibility. - [IvyForms Integration](https://wpwebhooks.org/docs/ivyforms-integration.md): Built-in normalization of IvyForms field objects and enrichment of submission payloads. - [list_credentials — AI Ability](https://wpwebhooks.org/docs/ability-list-credentials.md): List credentials — List vault credentials (names, types and masked hints only — secrets are never returned). - [list_snippets — AI Ability](https://wpwebhooks.org/docs/ability-list-snippets.md): List Code Glue snippets — List saved Code Glue PHP snippets (id, name, tags — use get_snippet for the code). - [list_triggers — AI Ability](https://wpwebhooks.org/docs/ability-list-triggers.md): List available triggers — List every WordPress do_action hook discovered on this site (runtime + static scan) that can be used as a webhook trigger. - [list_webhooks — AI Ability](https://wpwebhooks.org/docs/ability-list-webhooks.md): List webhooks — List all configured webhooks with their triggers and status. - [Markdown descriptions](https://wpwebhooks.org/docs/markdown-descriptions.md): Document what each webhook and chain does, in Markdown, with a live preview. - [Payload Mapping](https://wpwebhooks.org/docs/payload-mapping.md): Rename, restructure, or exclude fields in the outgoing JSON before dispatch using dot-notation paths. - [Per-Webhook Backoff Strategy](https://wpwebhooks.org/docs/per-webhook-backoff.md): Choose exponential, linear, or fixed backoff strategy and delay parameters per webhook. - [Per-Webhook Retry Settings](https://wpwebhooks.org/docs/per-webhook-retry.md): Override the global maximum retry attempt count for individual webhooks. - [Post-Dispatch Scripting](https://wpwebhooks.org/docs/post-dispatch-scripting.md): Run PHP code after a successful delivery to process the response and write data back to WordPress. - [preview_snippet — AI Ability](https://wpwebhooks.org/docs/ability-preview-snippet.md): Preview (test-run) a Code Glue snippet — Test-run a snippet (by snippet_id, or raw code) against a real captured payload WITHOUT dispatching anything. - [probe_endpoint — AI Ability](https://wpwebhooks.org/docs/ability-probe-endpoint.md): Probe a target endpoint — Make a guarded test HTTP call to validate an endpoint before going live. - [Publish a build](https://wpwebhooks.org/docs/publish-a-build.md): Put a build on wpwebhooks.org as a public page others can import — and earn AI credits for it. - [REST API](https://wpwebhooks.org/docs/rest-api.md): Full operational REST API at `/wp-json/fswa/v1/` for managing webhooks, logs, queue, credentials, and tokens. - [set_conditions — AI Ability](https://wpwebhooks.org/docs/ability-set-conditions.md): Set conditions — Set conditional-dispatch rules for a webhook+trigger so only matching events leave the site. - [set_mapping — AI Ability](https://wpwebhooks.org/docs/ability-set-mapping.md): Set field mapping — Set the payload field mapping for a webhook+trigger (rename / restructure / exclude / type-cast fields with dot-notation paths). - [Share a build](https://wpwebhooks.org/docs/share-a-build.md): Export exactly what one Build with AI conversation created — optionally with the conversation itself. - [Smart Retry with Exponential Backoff](https://wpwebhooks.org/docs/smart-retry.md): Failed deliveries retry automatically with exponential backoff; 4xx failures are classified as permanent. - [Synchronous Execution](https://wpwebhooks.org/docs/synchronous-execution.md): Optionally fire a webhook inline during the WordPress request, bypassing the queue for the first attempt. - [Test Delivery](https://wpwebhooks.org/docs/test-delivery.md): Fire a test webhook instantly or via the queue without triggering real WordPress events. - [test_dispatch — AI Ability](https://wpwebhooks.org/docs/ability-test-dispatch.md): Test-dispatch a webhook — Send a synchronous test delivery for a webhook using a provided or captured payload, and return the HTTP result so the agent can verify the integration end to end. - [Unlimited Conditions](https://wpwebhooks.org/docs/unlimited-conditions.md): Define unlimited condition rules and groups with AND/OR logic between groups. - [update_snippet — AI Ability](https://wpwebhooks.org/docs/ability-update-snippet.md): Update a Code Glue snippet — Update an existing Code Glue snippet's name, code or tags. - [update_webhook — AI Ability](https://wpwebhooks.org/docs/ability-update-webhook.md): Update a webhook — Update an existing webhook (endpoint, method, triggers, headers, credential). - [URL Query Parameters](https://wpwebhooks.org/docs/url-query-params.md): Append static or payload-resolved query parameters to the endpoint URL at dispatch time. - [Webhook Chains](https://wpwebhooks.org/docs/webhook-chains.md): A webhook completing with a 2xx response can automatically trigger one or more downstream webhooks. - [Webhook Replay](https://wpwebhooks.org/docs/webhook-replay.md): Re-send any logged event — successful, failed, or condition-skipped — using its original payload. - [WP Webhooks AI](https://wpwebhooks.org/docs/wp-webhooks-ai.md): Hosted AI credits included with every Pro license — run Build with AI on our servers with no provider signup and no API keys to paste. ## Integrations - [Record newly published posts into Airtable — Integration](https://wpwebhooks.org/integrations/record-newly-published-posts-into-airtable.md): New post lands as a row in an Airtable base. No plugin dependency. - [WordPress Integrations](https://wpwebhooks.org/integrations.md): Ready-made WordPress webhook integrations for HubSpot, n8n, Slack, Google Sheets and more. Import a working build into your site in one file — with retries, logging and replay built in. ## Automations - [Create a WordPress user from a Contact Form 7 submission — Automation](https://wpwebhooks.org/automations/create-a-wordpress-user-from-a-contact-form-7-submission.md): A Contact Form 7 submission is mapped onto the WordPress REST API and creates a user account. Code Glue derives the username from the email address and… - [New WordPress post to LinkedIn, X and Facebook — Automation](https://wpwebhooks.org/automations/new-wordpress-post-to-linkedin-x-and-facebook.md): Sends every newly published WordPress post to one n8n webhook, which fans it out to LinkedIn, X (Twitter) and Facebook — retried, logged and replayable. - [WordPress Automations](https://wpwebhooks.org/automations.md): Ready-made WordPress automations: multi-step webhook chains, conditional deliveries and flows that write back into WordPress. Import a working build into your site in one file. ## Blog - [WordPress Stripe Webhook: Verify Signatures Correctly](https://wpwebhooks.org/blog/stripe-webhook-wordpress.md): WordPress Stripe webhook guide: verify the Stripe-Signature header against the raw body, survive canonical redirects, and handle duplicate, out-of-order events. - [post_submitbox_misc_actions: Docs & Block Editor Fix](https://wpwebhooks.org/blog/post-submitbox-misc-actions.md): post_submitbox_misc_actions documentation: the exact signature, why the hook never fires in the block editor, and the PluginPostStatusInfo equivalent that does. - [WooCommerce SMS Order Notification: Build It on Twilio](https://wpwebhooks.org/blog/woocommerce-sms-order-notification-twilio.md): Build WooCommerce SMS order notifications on Twilio: the right status hook, E.164 phone normalisation, per-segment cost maths, and signed delivery callbacks. - [WPForms Webhook: Send Form Entries to Any Endpoint](https://wpwebhooks.org/blog/wpforms-webhook.md): WPForms webhook setup: the Elite-only Webhooks addon, and the free wpforms_process_complete hook for when you need your own payload and headers. - [Twilio Verify WordPress: Build an SMS & Email 2FA Flow](https://wpwebhooks.org/blog/twilio-verify-wordpress-2fa.md): Add Twilio Verify 2FA to WordPress: the two API calls, the REST routes that wrap them, and the abuse controls Twilio will not handle for you. - [DISABLE_WP_CRON Is Set to True: WP-Cron Spawning Fix](https://wpwebhooks.org/blog/disable-wp-cron-warnings.md): The DISABLE_WP_CRON constant is set to true, WP-Cron spawning is disabled, and Maximum simultaneous queues already in progress — what each warning means. - [woocommerce_checkout_order_created Hook: Docs & Timing](https://wpwebhooks.org/blog/woocommerce-checkout-order-created.md): woocommerce_checkout_order_created documentation: the signature, where it sits in the checkout hook sequence, and why it never fires on the blocks checkout. - [LLM API Pricing 2026: Real Cost Per Call, Compared](https://wpwebhooks.org/blog/llm-api-pricing-cost-per-call.md): LLM API pricing compared across OpenAI, Google, Anthropic and Chinese models like Kimi K3 — with the token math for what one real AI call costs. - [action_scheduler_run_queue: Queue Runner Hook Docs](https://wpwebhooks.org/blog/action-scheduler-run-queue-hook.md): action_scheduler_run_queue is the WP-Cron hook behind every Action Scheduler queue pass: how it is registered, its every_minute schedule, and how to trigger it. - [Elementor Forms Webhook: Send Submissions Anywhere](https://wpwebhooks.org/blog/elementor-forms-webhook.md): Elementor forms webhook setup, two ways: the built-in Webhook action in Elementor Pro, and the elementor_pro/forms/new_record hook when you need real control. - [wp_actionscheduler_actions: Table Schema & Columns](https://wpwebhooks.org/blog/action-scheduler-database-tables.md): wp_actionscheduler_actions database schema — every column in the actions, claims, groups and logs tables, their indexes, and how the queue runner uses them. - [WP Engine Cron Jobs: Alternate Cron Explained](https://wpwebhooks.org/blog/wp-engine-cron-jobs.md): How WP Engine runs cron jobs: the traffic-based default, WP Engine Alternate Cron that curls wp-cron.php every minute, and when to reach for real system cron. - [WordPress Job Queue: Run Background Jobs Reliably](https://wpwebhooks.org/blog/wordpress-job-queue.md): A WordPress job queue moves slow work out of the request into a database-backed worker. How queue tables, claiming, retries and your library options actually work. - [Gemini JSON Mode Can Drop the Final Closing Brace](https://wpwebhooks.org/blog/gemini-json-mode-truncated-response.md): A real bug post-mortem: Gemini’s JSON mode returned our agent’s envelope without its closing brace — twice, deterministically — and the conservative repair that recovers it without ever inventing content. - [ivyforms/form/after_submission Webhook: Hook Reference](https://wpwebhooks.org/blog/ivyforms-after-submission-webhook.md): ivyforms/form/after_submission documentation: hook parameters, numeric field IDs, a wp_remote_post code example, and reliable async webhook dispatch. - [AI Agent Capability Drift: When the Prompt Lies About Tools](https://wpwebhooks.org/blog/ai-agent-capability-drift.md): A real bug post-mortem: a class_exists check made our agent’s prompt advertise tools the executor silently dropped — and the three fixes that shipped in 2.2.0. - [as_schedule_single_action: Signature & Parameters](https://wpwebhooks.org/blog/as-schedule-single-action-reference.md): as_schedule_single_action documentation: full PHP signature, the timestamp and $unique parameters, return value, and code examples for delayed jobs. - [WordPress to Zapier Webhook: Trigger Zaps from Any Hook](https://wpwebhooks.org/blog/wordpress-zapier-webhook.md): Connect WordPress to Zapier: send any post, form, or WooCommerce event to a Zap via webhook — Catch Hook setup, payload format, and a self-hosted alternative. - [as_schedule_recurring_action: Signature & Interval](https://wpwebhooks.org/blog/as-schedule-recurring-action-reference.md): as_schedule_recurring_action documentation: PHP signature, first-run timestamp, interval seconds, group and $unique parameters, with recurring code examples. - [WordPress Abilities API: Expose Plugin Features to AI](https://wpwebhooks.org/blog/wordpress-abilities-api-ai-agents.md): What the WordPress Abilities API is, how wp_register_ability() works, and how to expose plugin features to AI agents and MCP clients safely. - [WordPress AI Client: wp_ai_client_prompt() Explained](https://wpwebhooks.org/blog/wordpress-ai-client-wp-ai-client-prompt.md): 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. - [Build an AI Agent in a WordPress Plugin: Architecture](https://wpwebhooks.org/blog/wordpress-ai-agent-plugin-architecture.md): Inside an in-admin AI agent for WordPress: plan-first JSON envelopes, typed ability steps, confirmation gates, undo stacks, and trace logging. - [ActionScheduler_DBStore Deadlock: The Fix & Resolution](https://wpwebhooks.org/blog/woocommerce-action-scheduler-mysql-deadlocks.md): ActionScheduler_DBStore::claim_actions throws MySQL deadlocks under concurrent WooCommerce queue runners — why it happens and the exact fix. - [as_has_scheduled_action: Prevent Duplicate Actions](https://wpwebhooks.org/blog/action-scheduler-prevent-duplicate-actions.md): as_has_scheduled_action() checks whether a matching action is already pending — signature, the hook, args and group parameters, return value, and dedup gotchas. - [Webhook Retry: Exponential Backoff & Database Schema](https://wpwebhooks.org/blog/webhook-retry-policy-exponential-backoff.md): Design a webhook retry policy: exponential backoff timing, what to retry, max attempts, dead-lettering, and the database schema to track deliveries. - [Gravity Forms Hooks: Developer Reference & Examples](https://wpwebhooks.org/blog/gravity-forms-hooks-reference.md): A developer reference to the most useful Gravity Forms hooks: submission, validation, field, entry, and notification filters — with examples. - [WP Webhooks Pro Alternative: Features & Pricing Compared](https://wpwebhooks.org/blog/wp-webhooks-alternative.md): A WP Webhooks Pro alternative, compared honestly: free tiers, pricing, delivery reliability, retries and logging — what each plugin actually does. - [WordPress to HubSpot: Plugin vs Zapier vs Webhooks](https://wpwebhooks.org/blog/wordpress-hubspot-integration-methods.md): Three ways to connect WordPress to HubSpot compared: the official HubSpot plugin, Zapier middleware, and direct webhooks — cost, control, and reliability. - [WordPress External Cron: Services, Setup, and Free Options](https://wpwebhooks.org/blog/wordpress-external-cron-services.md): 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. - [gform_after_update_entry Hook: Gravity Forms Webhook](https://wpwebhooks.org/blog/gravity-forms-gform-after-update-entry-webhook.md): 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. - [wpcf7_mail_sent Hook: Contact Form 7 to Webhook Guide](https://wpwebhooks.org/blog/wordpress-wpcf7-mail-sent-hook.md): How wpcf7_mail_sent fires, what get_posted_data() returns, and the reliable way to send Contact Form 7 submissions to any webhook endpoint. - [as_enqueue_async_action: PHP Signature & Parameters](https://wpwebhooks.org/blog/action-scheduler-api-functions.md): as_enqueue_async_action documentation: PHP signature, the $unique parameter, plus as_schedule_single_action and cancel functions with code examples. - [WooCommerce Webhooks via Action Scheduler: Retry & Replay](https://wpwebhooks.org/blog/woocommerce-webhooks-action-scheduler.md): Send WooCommerce order events as reliable webhooks with Action Scheduler — async queue, retries with backoff, conditional dispatch, and one-click replay. - [WordPress Background Jobs: Async Queue Without Blocking](https://wpwebhooks.org/blog/wordpress-async-background-processing.md): Process WordPress background jobs asynchronously — non-blocking dispatch, an Action Scheduler queue, retries with backoff, and reliable webhook delivery. - [action_scheduler_queue_runner_concurrent_batches Docs](https://wpwebhooks.org/blog/action-scheduler-concurrent-batches-filter.md): action_scheduler_queue_runner_concurrent_batches filter docs: official parameters, batch-size tuning, and code examples for Action Scheduler. - [Send Gravity Forms Submissions to n8n via Webhook](https://wpwebhooks.org/blog/gravity-forms-to-n8n-webhook.md): Forward Gravity Forms entries to n8n with a reliable, retry-capable webhook — payload mapping, HMAC signing, error handling, and end-to-end test recipe. - [WP-Cron Documentation: Every Function, Constant & CLI](https://wpwebhooks.org/blog/wp-cron-developer-reference.md): The WP-Cron documentation WordPress never wrote: wp_schedule_event, wp_doing_cron, spawn_cron, DISABLE_WP_CRON, and every WP-CLI cron command. - [Action Scheduler WordPress: Full Docs & Reference](https://wpwebhooks.org/blog/action-scheduler-wordpress.md): Action Scheduler WordPress documentation: queue runner, retry logic, concurrency tuning, and webhook delivery — official function reference. - [Contact Form 7 to Webhook: Send CF7 to Any Endpoint](https://wpwebhooks.org/blog/contact-form-7-webhook.md): 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. - [gform_after_submission Hook Reference: Gravity Forms Webhook](https://wpwebhooks.org/blog/gravity-forms-gform-after-submission-webhook.md): Complete gform_after_submission reference — hook parameters, accessing entry fields, async dispatch patterns, and Webhook Actions plugin setup. - [From do_action to HTTP: WordPress Webhook Delivery](https://wpwebhooks.org/blog/wordpress-webhook-delivery-engineering.md): How WordPress webhook plugins discover hooks, register listeners, and build delivery payloads. Engineering internals with real code. - [WordPress Cron Job: Why WP-Cron Fails (And How to Fix)](https://wpwebhooks.org/blog/cron-job-for-wordpress.md): 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. - [Create and Manage WordPress Webhooks via REST API](https://wpwebhooks.org/blog/create-manage-wordpress-webhooks-rest-api.md): Learn how to create and manage WordPress webhooks via REST API. Control endpoints, enable/disable integrations, and automate setups without code deployments. - [WordPress Webhooks REST API: Retry, Replay & Delivery Logs](https://wpwebhooks.org/blog/wordpress-webhooks-rest-api.md): 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 Retry, Replay & Dead-Letter Queue](https://wpwebhooks.org/blog/wordpress-webhook-retry-replay-system.md): Learn how to build reliable WordPress webhooks using payload storage, automatic retries for failures, and replay for successful events that need reprocessing. - [WP-Cron Isn't Enough: Build Reliable WordPress Webhooks](https://wpwebhooks.org/blog/async-webhooks-wordpress-wp-cron-not-enough.md): 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. - [Why WordPress Webhooks Fail in Production (And the Fix)](https://wpwebhooks.org/blog/why-wordpress-webhooks-silently-fail-in-production.md): WordPress webhooks work locally but drop events in production. Four root causes — WP-Cron, queues, retry logic, observability — and the production fix. - [Non-Blocking Webhook Architecture in WordPress](https://wpwebhooks.org/blog/async-webhooks-wordpress.md): How to implement async webhooks in WordPress and WooCommerce. Queue-based dispatch, exponential backoff, failure handling, logging, and production alternatives. - [Blog Engineering Notes](https://wpwebhooks.org/blog.md): Failure modes, architecture, and the boring infrastructure choices that decide whether your events arrive at 2am. Written by the people who maintain the plugin. ## Examples - [Ask Claude Code to Set Up a WooCommerce Webhook](https://wpwebhooks.org/examples/woocommerce-order-webhook-claude-code.md): Claude Code sets up a WooCommerce order webhook with an order total condition — REST API calls, field-path correction, and live fix. - [Contact Form 7 to Webhook: CF7 Setup with AI](https://wpwebhooks.org/examples/cf7-to-webhook.md): Contact Form 7 to webhook: set up CF7 delivery with Build with AI — describe it in one sentence and get trigger, field mapping, and retries wired to n8n. - [Gravity Forms Webhook Plugin: Build It with AI](https://wpwebhooks.org/examples/gravity-forms-webhooks.md): Gravity forms webhook plugin setup — no Elite Webhooks Add-On needed. Describe it to Build with AI and gform_after_submission fires to any endpoint with retries. - [HubSpot WooCommerce Integration: Create & Update Deals](https://wpwebhooks.org/examples/hubspot-create-deal-woocommerce.md): Build a HubSpot WooCommerce integration that creates a deal on order placed and moves it to Closed Won on completion — REST API, Code Glue, 2026-03 endpoint. - [HubSpot WooCommerce Product Sync: Push & Update Products](https://wpwebhooks.org/examples/hubspot-product-sync-woocommerce.md): Mirror your WooCommerce catalog into HubSpot — push products on publish, PATCH on update — with the 2026-03 HubSpot CRM API and Code Glue. Free + Pro paths. - [HubSpot WordPress Integration: Sync Contact on User Register](https://wpwebhooks.org/examples/add-customer-to-hubspot-on-woocommerce-order.md): Mirror every WordPress user registration into HubSpot CRM as a Contact — idempotent by email via the 2026-03 batch/upsert endpoint and Code Glue. Pre-populates user_meta so the Part 5 order chain hits the cheap PUT path on day one. - [HubSpot WordPress Plugin: Full Customer & Order Sync](https://wpwebhooks.org/examples/hubspot-wordpress-plugin-full-customer-order-sync.md): The capstone — tie contact, deal, line items, and products into one coherent HubSpot graph on every WooCommerce order, sequenced via Webhook Actions Webhook Chains with batch endpoints. Every hop logged and replayable. - [HubSpot WordPress Plugin: WooCommerce Integration Series](https://wpwebhooks.org/examples/hubspot-woocommerce-integration.md): The complete HubSpot WordPress plugin for WooCommerce — five examples covering deals, products, line items, customers, and the full HubSpot graph. - [IvyForms Webhook Plugin: Send Forms to n8n with AI](https://wpwebhooks.org/examples/ivyforms-to-webhook.md): IvyForms webhook plugin setup: the built-in IvyForms integration plus Build with AI sends form submissions to n8n with field mapping and automatic retry. - [WooCommerce HubSpot Integration: Sync Order Line Items to Deals](https://wpwebhooks.org/examples/woocommerce-order-line-items-hubspot.md): Chain-trigger every WooCommerce order to a HubSpot line_items batch with inline deal associations — full graph in a single outbound POST, every hop logged and replayable. - [WordPress Webhook Automation Examples](https://wpwebhooks.org/examples.md): Practical step-by-step examples showing how to build reliable WordPress webhook automations with retry, logging, and replay support. CF7, Gravity Forms, WooCommerce, HubSpot, and more. ## Videos - [Contact Form 7 to Webhook — End-to-End Walkthrough — Screencast](https://wpwebhooks.org/videos/contact-form-7-webhook-walkthrough.md): A 15-second end-to-end screencast following a Contact Form 7 submission through the full webhook delivery pipeline: CF7 form submitted in the browser, wpcf7_mai - [Create a Gravity Forms Webhook in WordPress — Screencast](https://wpwebhooks.org/videos/gravity-forms-create-webhook.md): A 20-second screencast showing how to create a new webhook in the Webhook Actions plugin targeting a Gravity Forms submission — adding the endpoint URL, selecti - [Gravity Forms to Webhook — Full Walkthrough — Screencast](https://wpwebhooks.org/videos/gravity-forms-webhook-full-walkthrough.md): A 22-second end-to-end screencast showing the complete Gravity Forms webhook integration: form submitted in the browser, gform_after_submission hook fires, Webh - [Gravity Forms Webhook Submission — Event Log & Payload — Screencast](https://wpwebhooks.org/videos/gravity-forms-webhook-submission.md): A 20-second screencast showing what happens in the WordPress admin after a Gravity Forms submission fires a webhook via Webhook Actions: the Event Log entry app - [WordPress Webhook Payload Mapping via Plugin UI — Screencast](https://wpwebhooks.org/videos/wordpress-webhook-payload-mapping.md): A 58-second screencast showing how to configure webhook payload mapping in the Webhook Actions plugin UI — selecting which WordPress hook context fields to incl - [WordPress Webhook Screencasts & Video Tutorials](https://wpwebhooks.org/videos.md): Screencasts showing WordPress webhook setup, payload mapping, smart retry, and form integrations with CF7, Gravity Forms, and n8n. Self-hosted, no YouTube required. - [WordPress Webhook Smart Retry in Action — Screencast](https://wpwebhooks.org/videos/wordpress-webhook-smart-retry.md): A 50-second screencast capturing a complete webhook retry cycle using Webhook Actions. A webhook fires to a temporarily unavailable endpoint — the plugin logs t ## Tools - [AI API Cost Calculator: Price Any LLM Call by Model](https://wpwebhooks.org/tools/llm-cost-calculator.md): Free AI cost calculator: set input and output tokens, pick from 36 LLM models, and see the real per-call, monthly and annual API bill. - [Free Developer Tools: AI Cost Calculator & Webhooks](https://wpwebhooks.org/tools.md): Small, focused calculators and utilities for people wiring WordPress to other systems — starting with an AI cost calculator covering 36 LLM models.