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 4 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 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%)
  • 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):

PlatformEntity levelMinimum
Googlecampaign$1
TikTokcampaign$50
TikTokadset$20
Meta / Snapchat / Taboola / LinkedInany$2

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:

  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

Rule lifecycle actions are written to the audit log with dot-notation names:

  • rule.create
  • rule.delete
  • rule.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_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.

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.