Authoring a rule — the four-step wizard

Open Pinion Admin → ApprovalsNew approval flow. The wizard has four steps and a sticky brand-themed header so you always know where you are.

Step 1 — Basics

Give the chain a name (e.g. “Discount escalation”), pick the target object (Quote / Opportunity), set the chain Mode (Sequential / Parallel / AnyOf / AllOf) and Match Policy. Match Policy controls which firing steps advance the chain:

  • All (default, back-compat). Every step whose criteria match must approve. Use this for “Manager, then Sales Ops, then CFO” stacks where every escalation level still has to sign.
  • Any (First Match). Only the first step whose criteria match fires; its decision is final. Use this for tiered routing — “if discount > 30%, CFO; else if > 20%, VP; else manager.” Higher tiers shadow lower ones.
  • Any (Fallback). The first matching step’s approval ends the chain; if it rejects, the next matching step’s approver is invited. Use this when an approver should have right of first refusal but the chain should keep escalating if they say no.

Step 2 — Steps

This is the split-pane editor. The left rail lists the steps in the chain; the right pane edits the selected step’s firing criteria and approver. Click Add step for each rule.

Each step has:

  • A name (rendered on the runtime request and the chain card).
  • One or more firing conditions — the “when does this fire?” criteria.
  • A scope product (optional) — restricts the whole step to deals carrying that product. See Scope Product.
  • An approver assignment — see Approvers.

You can drag steps to reorder them; the wizard re-numbers Order__c on save.

Step 3 — Policy

Per-chain knobs:

  • Consolidate Redundant Approvers. When on, if the same user appears on multiple steps, their approval on an earlier step carries forward — later steps for that user auto-approve. Off by default. Turn on if your org has a CFO who sits on three steps of the same chain and shouldn’t get three notifications.
  • Editable After Approval (per rule). When off (default), the configuration is locked once the rule’s approval is granted. If multiple active rules fire, the strictest one wins.
  • Allow Bulk Approve. Off by default. When on, approvers can sign off on requests from this rule in batches from the bulk-approve dashboard. Leave off for high-stakes rules.
  • SLA Hours. Optional. Hours-to-decision; breached requests are picked up by ApprovalEscalationBatch and re-routed to the Escalation Approver. Blank = no SLA. The sweep is scheduled automatically on install (job name Pinion Approval Escalation, cron 0 0 * * * ? — top of every hour). To disable escalations, leave the job running and turn off SLA on the rules that should opt out (set SLA Hours to blank or 0), or abort the job in Setup → Scheduled Jobs.
  • Reroute On Fields. Comma-separated field paths (e.g. Account.OwnerId, Opportunity.StageName). If any of these change while a request is Pending, the approver is re-resolved. Fixes the “Account Owner moved teams mid-approval and the old owner is still on the hook” problem.
  • Smart Approval. When on, if the same approver previously approved an unchanged version (Pinion diffs the snapshot JSON), the new request auto-skips with a Skipped_SmartApproval trace note.

Step 4 — Review

A read-only summary of the chain. The wizard runs author-time validation here: per-step missing approvers, per-condition missing fields, and null-RHS rejection (a Greater Than condition with a blank value would silently never fire — the wizard refuses to save it). Fix any flagged items and click Save.