Actions — what your rules can do
Six actions: pause, activate, increase / decrease budget %, relaunch (Meta), notify_only. Platform budget minimums apply. Audit log per execution.
Written By Salvatore Sinigaglia
Last updated About 5 hours ago
Six actions: pause, activate, increase / decrease budget %, relaunch (Meta), notify_only. Platform budget minimums apply. Audit log per execution.
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 toautomation_rule_executiontable + 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%)budget_change_limit_pct/budget_daily_cap— configurable cap fields on the rule. They are saved but not yet enforced at execution time (enforcement is coming); don't rely on them as a hard cap. See protections.
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 floored at the platform minimum. The new budget is computed as Math.max(minimum, current × multiplier):
If a decrease_budget_pct would take the budget below the minimum, the value is clamped to the minimum — the action still succeeds, it is not rejected or errored.
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 skipped - Cooldown 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 - pauseResult: 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
Rule lifecycle actions are written to the audit log with dot-notation names:
rule.createrule.deleterule.toggle(pause / activate)rule.duplicate
There is no rule.update audit entry and no per-execution audit action — rule fires are recorded in the automation_rule_execution table, not the audit log. Audit entries are available via /api/v1/audit-log.
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.
FAQ
What actions can a Wevion rule take?
Rules support 6 actions: pause (stop an entity), activate (resume it), increase_budget_pct and decrease_budget_pct (scale the daily budget by N%), relaunch (Meta-only — copy an ad with new creative), and notify_only (send a notification with no entity change). Actions dispatch via SQS workers and respect platform minimums and pre-execution checks.
Why isn't the relaunch action available on my platform?
Relaunch is Meta-only. It copies an ad with a new creative and handles multilanguage asset feed specs, so it's only selectable on Meta. On other platforms the action isn't offered, and if a rule targets a non-Meta entity with relaunch, Wevion skips it and records the reason.
What happens if a budget decrease would fall below the platform minimum?
Wevion clamps it to the minimum. The new budget is computed as Math.max(minimum, current × multiplier), so if a decrease would drop below the platform minimum (for example Google campaign $1, TikTok campaign $50, TikTok adset $20, others $2) the value is floored at the minimum and the action still succeeds — it is not rejected or recorded as an error.
Can a single rule run more than one action?
Yes. A Wevion rule can have multiple actions, and they execute in order. For example notify_only followed by pause sends a notification and then pauses the entity on each match. A common pairing is an action plus notify_only, ensuring an audit trail beyond the execution log.
Does Wevion record what each rule did?
Yes. Every action writes to the automation_rule_execution table with counts for entities_evaluated, entities_matched, entities_acted, entities_skipped, and entities_errored, plus per-entity before/after values and the metric snapshot at evaluation time. Rule lifecycle changes (rule.create, rule.delete, rule.toggle, rule.duplicate) are written to the audit log at /api/v1/audit-log; individual rule fires are not audit-log actions — they live in the execution table.