Main Header

Request Rules

Updated on July 30, 2026

Request rules (Tier 2) filter events based on who triggered the capture and what kind of WordPress request was running — not based on event name or payload alone.

They complement Advanced Event Routing signal filters. Signal filters match on event name and metadata carried by the signal; request rules inspect the current user and HTTP request when sp_capture() runs.

Tier and permissions

  • Requires Tier 2 (Pro)signalpress_has_license_level( 2 )
  • Configured on each integration’s Routing tab, below Signal filters
  • Requires Manage routing permission (or administrator) — Permissions and Access

If your license drops below Tier 2, saved rules are retained but not enforced until Pro access returns.

Logic: AND within groups, OR between groups

  • Conditions inside one group use AND — every condition in the group must match.
  • Separate groups use OR — the service receives the event when any one group fully matches.
  • Empty rules ([]) allow every request that already passed event filters.

Example: deliver when (Role has Administrator AND Request path is /checkout/) OR (Request type is cron).

Condition types

TypeOperatorsValues
Useris, is notWordPress user IDs; 0 = logged-out visitor
Rolehas, does not haveWordPress role slugs
Request pathis, is not, starts_with, contains, matchesPath from REQUEST_URI (no domain or query string)
Request typeis, is notfrontend, admin, rest, ajax, cron, cli

Path wildcards support * and ? when using the matches operator.

Limits

Sanitization enforces:

  • Up to 10 OR groups
  • Up to 10 conditions per group
  • Up to 25 values per condition

Rules are stored per integration in routing_rules JSON alongside other routing settings.

Path and request-type caveats

  • WP-Cron and WP-CLI captures have no normal page URL — use Request type (cron or cli) instead of path rules.
  • REST and AJAX captures use the API endpoint path, not necessarily the page the visitor was viewing.
  • JavaScript capture REST requests are evaluated as REST requests.
  • Client-side analytics bypass server routing entirely.

Wire server-side captures from hooks as described in Loading SignalPress Safely.

Example: admin-only alerts to Slack

On Slack’s Routing tab, add one request-rule group:

  1. Role → has → administrator
  2. Request type → is → admin

Combine with event filters such as Routing Minimum Level: Warning and above so admin UI warnings reach Slack but storefront noise does not.

When request rules block delivery

Failed request rules return a filtered delivery log row (except Local, which skips filtered events entirely). The log message explains that the current user and request did not match any rule group.

Email Message templates

Each Email template row can include its own event filters and request rules. See Email Routing.