Approval queues
Why this matters for your business
For agencies and large brands, automation power is a liability without governance. A junior marketer's well-intentioned "auto-discount returning customers" rule could give away hundreds of thousands in margin. A new client's misconfigured auto-bid rule could blow out a quarter's ad budget. Even the right rules can fire on the wrong customers when conditions drift.
Approval queues add a human checkpoint. For configured action types, every fire pauses at a queue — a designated approver sees the proposed action with full context (what customer, what data, what the rule says, what it would cost) and approves or denies in one click. Only approved fires execute.
The trade-off is latency: approval-gated rules don't fire in real time. The benefit is governance: nothing happens that a trained human didn't agree to.
What this typically unlocks
| Outcome | Result |
|---|---|
| High-stakes mistakes per quarter | 0 with approval gates active |
| Junior team member autonomy with safety net | high — they can build, approval gate catches mistakes |
| Audit-grade "who approved what?" trail | complete |
| Multi-stakeholder sign-off (compliance, legal) | possible without out-of-band tooling |
What you actually get
| Capability | Description |
|---|---|
| Per-action-category gates | Configure approval requirements per action type (paid spend, mass tags, price changes, etc.) |
| Multi-reviewer chains | Require 1, 2, or N approvers; first-to-approve OR all-must-approve |
| Approver groups | "Marketing leads", "Legal", etc. — group-based assignment |
| Time-out behaviour | Default behaviour after N hours unanswered (auto-deny / auto-approve / escalate) |
| Audit trail | Every approval decision logged with reviewer, timestamp, reasoning |
| Bulk approval UI | Approve 50 fires at once for similar items (with cap) |
| Mobile-friendly approval UX | Approve from phone notifications |
| Slack integration | Approval requests post to designated channel |
Configuration
Per-action approval matrix (example)
| Action type | Approval required? | Approvers | Time-out | After time-out |
|---|---|---|---|---|
| Paid ad bid changes | Yes | Any of: marketing-lead | 24h | Auto-deny |
| Mass-tag (> 1K customers) | Yes | All of: ops-lead, marketing-lead | 48h | Escalate |
| Price changes (catalog) | Yes | All of: pricing-lead, finance | 72h | Auto-deny |
| Send transactional email | No | — | — | — |
| Tag single customer | No | — | — | — |
| Customer-facing copy change | Yes | Any of: brand-lead | 24h | Escalate |
You set this matrix once per shop; rules respect it automatically.
How it works
Real merchant scenarios
Scenario A — Agency client safety
Agency has a junior marketer building rules for client X. Approval matrix requires marketing-lead sign-off for any rule that touches paid spend.
Junior builds: "Auto-bid up 30% on top-LTV decile." Saves the rule live. First fire: queued for approval.
Marketing lead reviews preview: "$200/day spend impact, 850 customers affected. Rule firing weekly per LTV refresh." Lead sees the same runaway pattern that dry-run would have caught, denies the fire with note "rule fires weekly — needs first-time guard."
Junior fixes the rule. Re-submits. Lead approves. No money spent on a buggy rule.
Scenario B — Compliance gate for regulated brand
Pharma brand under regulatory oversight. Any customer-facing copy change requires compliance review.
Rule: "Send post-purchase email with usage tips." Rule fires on every order — but the action requires compliance approval the first time a new email template is used.
First fire: queued. Compliance reviews template, approves. Subsequent fires of same template auto-execute (template hash unchanged).
When the brand updates the template copy: hash changes; next fire re-queues for compliance. Always-current sign-off without slowing every send.
Scenario C — Time-out policies in action
Brand sets: "Mass-tag actions auto-deny after 48h unanswered."
Rule: "Tag VIP customers when LTV crosses threshold."
Triggered overnight while approver on holiday. Queue fills.
At 48h mark: 12 fires auto-denied with reason approval_timeout.
Approver returns: sees the denials in failures dashboard, understands what happened, manually approves backlog. No silent "did this happen?" mystery.
Best practices
✅ Configure timeout policies explicitly. "What happens at midnight when nobody's around?" should have a documented answer.
✅ Use Slack integration for high-volume queues. In-app queues miss things; Slack pings get attention.
✅ Group approvers, don't list individuals. "Marketing-lead group" stays current as people join/leave.
✅ Bulk-approve carefully. Bulk-approve 50 fires that look the same is fine; bulk-approving without inspecting is what approval queues are designed to prevent.
❌ Don't require approval on everything. Approval friction slows real-time workflows; reserve gates for genuinely high- stakes actions.
❌ Don't let queues grow. A 200-fire backlog means people will start rubber-stamping. Tune the rule, the matrix, or the approver capacity.
Plan tiers
| Capability | Free | Starter | Pro | Agency | Enterprise |
|---|---|---|---|---|---|
| Approval queues | — | — | — | ✓ | ✓ |
| Per-action matrix | — | — | — | ✓ | ✓ |
| Multi-reviewer (any-of / all-of) | — | — | — | ✓ | ✓ |
| Approver groups | — | — | — | ✓ | ✓ |
| Time-out policies | — | — | — | ✓ | ✓ |
| Slack integration | — | — | — | ✓ | ✓ |
| Mobile approval UX | — | — | — | ✓ | ✓ |
| Bulk approval UI | — | — | — | ✓ | ✓ |
| Approval analytics (avg time, denial rate) | — | — | — | — | ✓ |
| Custom approval webhook | — | — | — | — | ✓ |
See also
- Automations overview
- Dry-run mode — alternative for solo / Pro merchants
- Rules & executions
- Sales engine campaigns — has its own approval workflow specific to campaigns