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 19 days 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 background workers 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 rule's execution history, not the audit log. Lifecycle entries are available in the 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 is recorded in the rule's execution history with counts for entities evaluated, matched, acted, skipped, and 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; individual rule fires are not audit-log actions — they live in the execution history.