Approval Workflow — Three-Tier System
The approval workflow defines three tiers of human oversight for automated task outputs. Each tier matches a level of risk to a level of control.
Tier 1: Autonomous
Runs, writes output, no human needed. The agent acts on its own authority.
Applicable tasks: Monitoring alerts, ranking reports, audit scans, competitor snapshots, prospect audits.
Process flow:
Task executes → Output written → Brief updated → Optional notification sent
Notification style: Summary-only alerts. Example: “Weekly scan complete for Keystone Buffalo — 1 new finding. See report.”
Tier 2: Queue for Approval
Runs, produces a draft, holds until a human approves. Nothing goes live until approved.
Applicable tasks: GBP posts, review responses, local page content, client-facing reports.
Process flow:
Task runs → Draft created in drafts/ folder → Approval request sent
→ Human reviews:
APPROVED → execution proceeds → confirmation sent
REJECTED → draft archived → note logged
EDIT [notes] → draft revised → re-queued for approval
Approval request contents:
- What content was drafted
- Publication destination
- Content preview
- Action buttons (Approve / Reject / Edit)
Timeout behavior:
- Channel: Slack (preferred) or email, configured per brand
- First notification: immediate
- Reminder: 48 hours if no response
- Auto-archive: 72 hours — draft archived, flagged in brief
- Timeout action: configurable as
archiveorescalate
Tier 3: Notify Before AND After
Highest stakes. Agent notifies before execution, waits for explicit go-ahead, executes, then confirms completion.
Applicable tasks: Client-facing emails, GBP/website publishing, third-party actions.
Process flow:
Task prepares content → PRE-approval notification sent →
Human replies CONFIRM → Task executes →
POST-execution confirmation sent to agency + client
Pre-approval notification includes:
- Action description
- Recipient information
- Full content preview
- Explicit CONFIRM / CANCEL options
Post-execution notification includes:
- What was published/sent
- Timestamp
- Confirmation reference
- Recipients: agency reviewer + client contact (if configured)
Configuration
Approval settings live in _brand.brief.md:
Agency / Multi-User Setup
approval:
reviewer: agency
reviewer_channel: slack
reviewer_contact: #local-seo-alerts
client_notify: true
client_channel: email
client_contact: contact@client.com
client_notify_format: summary
approval_timeout_hours: 48
timeout_action: archive
Single-User Setup
approval:
reviewer: self
reviewer_channel: slack
reviewer_contact: #my-alerts
client_notify: false
Non-Negotiable Requirements
These actions always require explicit human approval regardless of configuration:
- Client GBP content publication
- Emails to clients or third parties
- Website content publishing
- Any action that is difficult to reverse
These cannot be overridden to autonomous tier. The system enforces these guardrails.
Platform Implementation
Claude Native: Uses Gmail MCP for email delivery and Slack MCP for Slack notifications. Confirmation via Slack reply, email response, or updating the Approval Required field in draft files.
Other platforms: Implement the same three tiers using whatever notification and confirmation mechanism fits your stack. The schema and status fields are platform-agnostic. Systems read Status: PENDING to manage approval interfaces.
Approval Status Tracking
Every queued or notify-tier output includes an Approval Required section:
## Approval Required
- Status: PENDING | APPROVED | REJECTED
- Reviewer: {who approved/rejected}
- Date: {action date}
- Notes: {reviewer comments}
The brief’s deliverables section tracks pending approvals. The session log records approval outcomes.
Learn More
To learn how approval workflows protect your client work, see the approval workflows overview.