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 |
|---|---|---|
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:
Entity still exists (could have been deleted since evaluation)
Entity in compatible state — e.g.
relaunchrequires an ad inactivestate; if it becamepaused, action skippedCooldown still respected — re-checked at execute time (could have been hit by parallel rule)
No pending action in 30-min window for same entity (prevents duplicates)
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 scannedentities_matched— passed conditionsentities_acted— actually changedentities_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_createrule_updaterule_deleterule_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_executionfor 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
Conditions + operators — the IF part
Protections + cooldown — how protections gate actions
Execution history — review what happened