WP Webhooks / Docs / create_notification_rule
AI Ability since v3.3.0

create_notification_rule

Create a notification rule — Alert someone when a delivery reaches a state: the event, optional filters, the channels, an optional template, quiet time and digest.

$

Creates a notification rule. event is one of success, recovered, failed_attempt, retry_scheduled, permanently_failed, skipped. webhook_id scopes the rule to one webhook (a plan may reference a webhook created earlier as {{step_N.id}}); omit it for a site-wide rule. channel_ids come from list_notification_channels. filters are all optional: attempts (which attempt numbers), http_codes ("5xx", "429", "500-504", "transport"), reason (exhausted | non_retryable, permanently_failed only), triggers ("woocommerce_*"), only_after_retry, include_tests. template is {subject, title, body, short} with {{ path | modifier }} placeholders — the shared linter checks it against the webhook's captured payload and rejects unknown paths with the list of what is available, so the model corrects itself instead of storing a template that renders blanks. throttle_seconds quiets repeats per webhook; digest batches them hourly or daily. Registered as the WordPress Ability flowsystems-webhook-actions/create-notification-rule, so external AI tools (Claude Code, Cursor) can call it over MCP, or over the Abilities REST route with a scoped API token.

/ Plan step shape

{ "ability": "create_notification_rule", "input": { "event":, "channel_ids": [], "webhook_id":, "filters": {}, "template": {} } }

/ Scope & confirmation

Minimum API-token scope for external (MCP/REST) callers: full. Runs without a confirmation pause (the overall plan is still user-approved before execution starts). The result includes a rendered preview of the message so the plan review shows what will be sent.

/ Input fields

NameInTypeReqDescription
eventparamstringyes`success` | `recovered` | `failed_attempt` | `retry_scheduled` | `permanently_failed` | `skipped`.
channel_idsparaminteger[]yesFrom `list_notification_channels`.
webhook_idparamintegerScope to one webhook; omit for site-wide.
nameparamstring
filtersparamobject`attempts`, `http_codes`, `reason`, `triggers`, `only_after_retry`, `include_tests`.
templateparamobject`subject`, `title`, `body`, `short` — linted against the captured payload.
throttle_secondsparamintegerAt most one message per webhook in this window.
digestparamstring`hourly` | `daily`.
is_enabledparambooleanDefault true.

/ Examples

Plan step as Build with AI proposes it

{
  "id": "step_4",
  "ability": "create_notification_rule",
  "summary": "Post to #ops-alerts when the HubSpot sync gives up",
  "input": {
    "webhook_id": "{{step_1.id}}",
    "event": "permanently_failed",
    "channel_ids": [3],
    "template": {
      "body": "Order {{ payload.order.id }} did not reach HubSpot: {{ delivery.error_message | truncate:120 }}"
    }
  }
}

/ Related

Ready

Your next automation is
one sentence away.

$ wp plugin install flowsystems-webhook-actions --activate