Actions — what your rules can do

Last updated: May 19, 2026

Actions — what your rules can do

Rules support 6 actions: pause, activate, increase_budget_pct, decrease_budget_pct, relaunch (Meta-only), notify_only. Actions are dispatched via SQS workers (execute-rule-action.worker.ts) and respect platform minimums + pre-execution checks. Every action writes to automation_rule_execution table + audit log.

Who is this for

Anyone designing the THEN part of an if-then rule.

The 6 actions

pause

Stops the matching entity. Status flips to paused on the platform. Reversible (you or another rule can activate).

Use cases: kill losers, frequency-cap exhausted audience, end-of-day shutdown.

activate

Resumes a paused entity. Status flips to active.

Use cases: time-based campaigns (activate weekday mornings), automatic recovery after upstream issue.

increase_budget_pct

Scales the entity's daily budget up by N%. Computes the new budget value and pushes to platform.

Parameters:

  • pct — % delta (e.g. 20 = +20%)

  • Respects budget_change_limit_pct (single-action cap)

  • Respects budget_daily_cap (cumulative cap per day)

Use cases: scale winners, ramp up at launch.

decrease_budget_pct

Scales budget down by N%. Same parameter logic as increase.

Use cases: cool off, scale down ahead of weekend, hard-cap rising spend.

relaunch (Meta-only)

Copies an ad with a new creative + handles multilanguage asset feed specs. Only available on Meta. Other platforms: action not selectable.

Use cases: creative fatigue recovery — auto-rotate to fresh creative when frequency / CTR signals decay.

notify_only

No entity change. Just sends a notification (in-app / Telegram / email) per the rule's notification settings.

Use cases: alerting only, learning a new rule's behavior before letting it act, oversight on sensitive decisions.

Platform budget minimums

Budget actions are blocked if the resulting budget would fall below the platform minimum:

Platform

Entity level

Minimum

Google

campaign

$1

TikTok

campaign

$50

TikTok

adset

$20

Meta / Snapchat / Taboola / LinkedIn

any

$2

If a decrease_budget_pct would breach minimum: action skipped + recorded as entities_errored with reason. Rule does not retry until next eval window.

Pre-execution checks

Before executing, the worker validates:

  1. Entity still exists (could have been deleted since evaluation)

  2. Entity in compatible state — e.g. relaunch requires an ad in active state; if it became paused, action skipped

  3. Cooldown still respected — re-checked at execute time (could have been hit by parallel rule)

  4. No pending action in 30-min window for same entity (prevents duplicates)

  5. Daily cap not exceeded for the rule

Skips are recorded with reason in entities_skipped for visibility.

Multiple actions per rule

A rule can have multiple actions. They execute in order. Example:

actions:
  - notify_only
  - pause

Result: notification fires + entity pauses on each match.

Common pairing: action + notify_only to ensure audit trail beyond execution log.

Per-platform handlers

The action is dispatched via platform-specific handlers:

  • Meta — native Marketing API

  • Google Ads — Google Ads API

  • TikTok — TikTok Marketing API

  • Taboola — Taboola API

  • Snapchat — Snapchat Marketing API

  • LinkedIn — no-op + logged (action skipped with reason; LinkedIn integration in progress)

Execution details

Every action execution records to automation_rule_execution table:

  • entities_evaluated — total scanned

  • entities_matched — passed conditions

  • entities_acted — actually changed

  • entities_skipped — matched but skipped (reasons in details JSON)

  • entities_errored — execution failed (API error, validation failure)

  • Per-entity: before / after values (for budget actions), metric snapshot at evaluation time

See rul-111 execution history.

Audit log

Each rule execution writes audit log entries with action: rule_execution_fired. Per-rule lifecycle actions:

  • rule_create

  • rule_update

  • rule_delete

  • rule_toggle (pause / activate)

  • rule_duplicate

Available via /api/v1/audit-logs (filterable by resource_type=rule).

Common mistakes

  • No notification on destructive action: enable notify_on_execution for any rule that pauses or changes budget. You want to know.

  • Aggressive % delta: increase_budget_pct: 100 (double) can trip auction systems. Stay under 30% per single action.

  • No budget_daily_cap: rule fires 10× per day with 20% increase each → 6× original budget. Always set budget_daily_cap.

  • Relaunch on non-Meta: action not available outside Meta — rule will skip with reason.

Related