Skip to main content
Open Settings → Action policy to choose Ask or Full and configure outcome checks. Agents can supply reasoning and proposals, but they cannot edit these settings or bypass provider verification. The same page has Account rules. Authorized Write keys can create or edit those rules through MCP; this permission does not change the workspace’s execution mode or loss threshold. Only the workspace owner can save policy changes. Other workspace members can review the current settings. When the owner changes a policy setting, Plainrouter appends a workspace-scoped policy.updated event to the v2 audit chain. The event identifies the owner and records the complete policy before and after the change. Saving the same values again does not add a duplicate event. Policy changes are saved atomically with their audit event. If the audit event cannot be recorded, the change is not saved. Recheck the displayed policy after an error; do not assume a mode switch succeeded.

Execution mode

New workspaces default to Ask. Existing workspace policies were migrated to Ask; selecting Full is an explicit owner decision. The selected mode is copied into each proposal as an immutable snapshot. Changing the current mode does not rewrite an older proposal. Older batches can retain suggest_only, auto_with_limits, or full_auto snapshots. A historical suggest_only approval still ends without execution. These are historical values, not choices for a new policy.
Canonical pause, resume, increase_budget, and decrease_budget actions, JPEG/PNG uploads, and paused ad copies follow Ask or Full before execution. Both modes enforce admission checks; a refused change cannot be approved. The legacy set_status and adjust_budget types remain recommendations only. Video upload execution remains disabled.

Two policy gates

Executable Meta work passes policy twice:
  1. Proposal-time admission checks validate scope, authorization, evidence, and supported actions. Ask requires a person to approve every admitted change first; Full queues admitted changes automatically except rule-generated budget increases.
  2. At dispatch, execution-time policy re-reads authoritative provider state and must return allow before any write.
Changing policy does not promote or rewrite an existing proposal. A missing driver, unavailable critical provider field, revoked authorization, or other non-allow result blocks the queued batch before provider execution.

Outcome safety

Outcome check after

Sets the delay before checking a verified creative action’s provider outcome. The accepted range is 1–168 hours. Resume and daily-budget changes use a separate window of three complete account-local days after the provider-write day, with the first check scheduled one hour after that window ends. See outcome windows and prerequisites.

Loss threshold

Sets the percentage used to classify a measurable management outcome as held or lost. The accepted range is 1–999.99%; the API retains the field name anomaly_threshold_percent. Inbox records the threshold used with the comparison. The comparison uses eligible counted arrivals and retained Meta spend, not purchase CPA or aggregate Signals reconciliation. A lost verdict can create a separate inverse proposal, with current-state checks and Ask/Full approval behavior. It does not directly compensate the original action. Check the recorded proposal before submitting another change; neither verdict guarantees future performance.

Verification and compensation

Plainrouter does not treat a successful provider response as proof that an action Landed. It persists an execution receipt and re-reads the exact object.
  • Image upload verification matches the receipt asset, frozen content hash, and provider readiness.
  • Ad-copy verification matches the receipt ad, authorized account, selected creative, and PAUSED state at creation.
  • An IN_PROCESS copy can enter durable asynchronous verification for up to 48 hours.
  • Execution or verification failures can require compensation; check the exact receipt and recovery result.
  • Compensation is itself verified: an uploaded image must be absent after deletion, and a copied ad must be ARCHIVED after rollback.
If commit state is unknown, Plainrouter reconciles before retrying. It does not issue unsafe compensation without a trustworthy receipt target. Later outcome measurement is separate from this recovery process. Insufficient arrival volume, unavailable spend, or an exhausted outcome check does not by itself undo a verified action.

Current enforcement boundary

Approval is not proof of execution. Confirm the receipt and verification result for the specific target in Inbox and Audit. Next, review a proposal against its frozen mode and current constraints. Find policy changes and execution-time refusals in the audit log.