Developer Docs
85 pages — how-to guides, features, AI abilities, filters, and action hooks.
/ How to
/ Features
Action Scheduler Support
Automatically uses Action Scheduler (when available) instead of WP-Cron for queue processing.
Activity History
Persistent audit log of every admin and API-token action with actor identity, structured diffs, and AI prompt capture.
AI Dev Trace
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
Use any WordPress do_action hook as a webhook trigger — no built-in integration needed.
API Tokens
Scoped API tokens for REST API access — create tokens with read, operational, full, or agent scope.
Async Delivery Queue
Webhook events are written to a persistent queue and delivered outside the request cycle.
Build with AI
An in-admin AI agent that turns plain-language requests into working, tested webhook integrations — plan-first, with confirmation before anything goes live.
Code Glue
Attach short PHP snippets per webhook+trigger to enrich payloads before dispatch.
Conditional Dispatch
Events are only delivered when payload field values match configured rules; non-matching events are logged as skipped.
Configurable HTTP Methods
Each webhook can send requests as GET, POST, PUT, PATCH, or DELETE.
Contact Form 7 Integration
Built-in normalization of CF7 submission objects into clean JSON payloads.
Credentials Vault
Store reusable authentication secrets encrypted at rest and reference them from webhooks instead of pasting raw Authorization headers.
Custom Request Headers
Add static or payload-resolved key/value headers sent with every delivery.
Delivery Logs
Every delivery attempt is stored with HTTP status, response body, headers sent, and full attempt history.
Developer Extensibility
16 filters and 6 action hooks let you customize every aspect of dispatch, payload, headers, and retry behavior.
Dynamic URL Templates
Use `{{ field.path }}` placeholders in endpoint URLs — resolved per-event against the live payload.
Dynamic URLs via Filter
Rewrite the webhook endpoint URL per-event from PHP using the `fswa_webhook_url` filter.
Event Identity & Deduplication Headers
Every dispatched event gets a UUID and ISO 8601 timestamp embedded in the payload and request headers.
External Cron
Replace unreliable visitor-triggered WP-Cron with a fully managed external pinger — no server crontab needed.
Internationalization (i18n)
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
Built-in normalization of IvyForms field objects and enrichment of submission payloads.
Payload Mapping
Rename, restructure, or exclude fields in the outgoing JSON before dispatch using dot-notation paths.
Per-Webhook Backoff Strategy
Choose exponential, linear, or fixed backoff strategy and delay parameters per webhook.
Per-Webhook Retry Settings
Override the global maximum retry attempt count for individual webhooks.
Post-Dispatch Scripting
Run PHP code after a successful delivery to process the response and write data back to WordPress.
REST API
Full operational REST API at `/wp-json/fswa/v1/` for managing webhooks, logs, queue, credentials, and tokens.
Smart Retry with Exponential Backoff
Failed deliveries retry automatically with exponential backoff; 4xx failures are classified as permanent.
Synchronous Execution
Optionally fire a webhook inline during the WordPress request, bypassing the queue for the first attempt.
Test Delivery
Fire a test webhook instantly or via the queue without triggering real WordPress events.
Unlimited Conditions
Define unlimited condition rules and groups with AND/OR logic between groups.
URL Query Parameters
Append static or payload-resolved query parameters to the endpoint URL at dispatch time.
Webhook Chains
A webhook completing with a 2xx response can automatically trigger one or more downstream webhooks.
Webhook Replay
Re-send any logged event — successful, failed, or condition-skipped — using its original payload.
/ AI Abilities
assign_credential
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
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.
create_chain
Create a webhook chain — Create a named chain that wires 2xx completions of one webhook to downstream webhooks.
create_chain_link
Add a chain link — Add a source→target edge to a chain.
create_snippet
Create a Code Glue snippet — Create a Code Glue PHP snippet (inert until assigned to a webhook).
create_webhook
Create a webhook — Create a new webhook (always created DISABLED until the user enables it).
delete_snippet
Delete a Code Glue snippet — Permanently delete a Code Glue snippet.
delete_webhook
Delete a webhook — Permanently delete a webhook and its triggers / mapping.
enable_webhook
Enable / disable a webhook — Enable (go live) or disable a webhook.
get_logs
Get delivery logs — Read recent delivery logs (optionally for one webhook) to verify what was sent and how the endpoint responded.
get_snippet
Get a Code Glue snippet — Get a single Code Glue snippet by id, including its full PHP code.
get_trigger_schema
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
Get a webhook — Get a single webhook by id, including triggers, mapping, conditions, headers and credential assignment.
list_credentials
List credentials — List vault credentials (names, types and masked hints only — secrets are never returned).
list_snippets
List Code Glue snippets — List saved Code Glue PHP snippets (id, name, tags — use get_snippet for the code).
list_triggers
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
List webhooks — List all configured webhooks with their triggers and status.
preview_snippet
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
Probe a target endpoint — Make a guarded test HTTP call to validate an endpoint before going live.
set_conditions
Set conditions — Set conditional-dispatch rules for a webhook+trigger so only matching events leave the site.
set_mapping
Set field mapping — Set the payload field mapping for a webhook+trigger (rename / restructure / exclude / type-cast fields with dot-notation paths).
test_dispatch
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.
update_snippet
Update a Code Glue snippet — Update an existing Code Glue snippet's name, code or tags.
update_webhook
Update a webhook — Update an existing webhook (endpoint, method, triggers, headers, credential).
/ Filters
fswa_ability_definitions
Filters the ability definitions that make up the AI agent toolset and the WordPress Abilities / MCP exposure.
fswa_ability_permitted
Filters whether the current request may invoke a Webhook Actions ability through the Abilities API surface.
fswa_ai_transport
Overrides the LLM transport the Build with AI agent talks through, bypassing built-in provider resolution.
fswa_available_triggers
Filters the grouped list of available triggers returned by the triggers REST endpoint.
fswa_backoff_delay
Controls the retry delay in seconds between failed delivery attempts.
fswa_capture_payload
Filters the payload stored as the example capture — does not affect what is dispatched.
fswa_headers
Filters the HTTP headers sent with each webhook request.
fswa_http_args
Filters the full `wp_remote_request()` arguments array before the HTTP call.
fswa_http_connect_timeout
Sets the TCP connection timeout in seconds (separate from the read timeout).
fswa_http_timeout
Sets the total HTTP request timeout in seconds.
fswa_max_attempts
Sets the maximum number of delivery attempts before a webhook is marked permanently failed.
fswa_normalize_object
Converts custom PHP objects in hook arguments into plain arrays for JSON serialization.
fswa_payload
Filters the base webhook payload after it is built from the WordPress hook arguments, before it is queued.
fswa_queue_batch_size
Sets the number of queue jobs processed per batch run.
fswa_require_https
Controls whether webhook endpoint URLs must use HTTPS.
fswa_should_dispatch
Controls whether a webhook should be dispatched for the current trigger event.
fswa_webhook_data
Filters webhook data before it is returned in REST API responses.
fswa_webhook_payload
Filters the per-webhook outgoing payload after field mapping, immediately before HTTP dispatch.
fswa_webhook_url
Rewrites the webhook endpoint URL per-event before dispatch.
/ Actions
fswa_cron_token_regenerated
Fires immediately after the external cron secret is regenerated.
fswa_error
Fires after a webhook delivery fails — covers both HTTP error responses and transport errors.
fswa_glue_post_dispatch
Fires after a successful (2xx) delivery with the full response and both pre/post-mapping payloads.
fswa_glue_error
Fires when an assigned Code Glue snippet errors during a real dispatch (the delivery itself proceeds with the unmodified payload).
fswa_skipped
Fires when a webhook is skipped because its conditions did not pass.
fswa_success
Fires after a webhook is delivered successfully (2xx response received).
fswa_webhook_response
Fires after every HTTP response is received — success or error — with full response context.
fswa_webhook_saved
Fires after a webhook is created or updated via the REST API.