Skip to content

Approval Pipeline

How the War Room gets changes from "proposed" to "deployed" with Sam in the loop via Slack.

Slack Channel

Create a dedicated #google-ads-warroom channel in Slack. All War Room messages go here. This keeps ads management separate from general firm communications.

Message Format

SAIL Google Ads War Room — [date]

ACCOUNT HEALTH: [score]/100
  Attribution: [X]  |  Keywords: [X]  |  Ad Copy: [X]
  Assets: [X]  |  Bidding: [X]  |  Offline Conv: [X]

---

CRITICAL (N items — needs immediate attention)
  [ID] Description
  Risk: explanation
  Action: what needs to happen

---

NEEDS REVIEW (N items)

  [NK-003] Remove negative "slip and fall" (PHRASE) from Car Accidents
  Reason: Blocking all slip-and-fall PI queries, core practice area.
  Evidence: 0 impressions for related terms in 30 days.
  [Approve] [Reject]

  [AK-001] Add keyword "truck accident attorney louisville" (EXACT)
  Reason: 8 impressions, 2 clicks, 1 conversion. Not explicitly targeted.
  [Approve] [Reject]

---

AUTO-APPROVED (N items — already applied)

  [NK-001] Added negative "criminal defense attorney" (PHRASE) — account level
  [NK-004] Removed 12 exact duplicate negatives
  ... (expand for full list)

---

OBSERVATIONS (no action needed)
  - Brand Protection CTR: 14.04% (healthy)
  - Spanish campaign: 0 conversions in 30 days (too early, 12 days live)

---

Reply: "approve all" / "approve NK-003, AK-001" / "reject BS-001"

Approval Methods

  1. Reply with IDs: "approve NK-003, AK-001" or "reject BS-001 — too aggressive"
  2. Shorthand: "approve all" or "reject all"
  3. Defer: "hold BA-001 until next week"

Risk Tiers

Tier Examples Approval
Low / Safe Add obvious negative, remove duplicates, remove orphaned assets Auto-approved (shown in report)
Medium Remove a negative, pause a keyword, change bid modifier Requires Slack approval
High Budget change >10%, tCPA adjustment >15% Requires approval + highlighted
Critical Attribution/tracking changes, strategy change, campaign enable/disable Requires approval + urgent tag

Auto-Approve Criteria

A change can auto-approve ONLY if ALL of these are true: - risk_level is "safe" - auto_approve_eligible is true - reversible is true - Falls into one of these categories: - Adding negative for clearly off-topic term (>=$20 spend, 0 conversions) - Removing exact duplicate negatives - Removing redundant EXACT negatives where PHRASE exists - Removing orphaned assets from paused/removed campaigns - Uploading offline conversions with valid gclid mapping - Adding audience observation layers (no bid impact) - Attribution window tightening

NEVER Auto-Approve

  • Anything involving brand terms
  • Any budget change
  • Any bidding strategy change
  • Any ad copy creation or modification
  • Any keyword addition
  • Any geographic targeting change
  • Any conversion value >$50,000

Slack Integration Setup

Option A (simple, recommended for v1): - Create Incoming Webhook for #google-ads-warroom - POST formatted messages - Sam replies in-thread - Orchestrator polls for replies via Slack API

Option B (richer, for v2): - Create Slack App with interactive message buttons - Approve/Reject buttons per change - Scopes needed: chat:write, reactions:read, channels:history

Both options can route through Pipedream Connect (app slug: slack) if direct Slack API access is blocked.

Post-Deployment Confirmation

After executing approved changes, a follow-up Slack message:

War Room Deployment Complete — [date]

Executed: 12/14 approved changes
Failed: 2 (details below)

Failed:
  [AK-002] Add keyword "semi truck wreck" — Error: ad group criterion limit reached
  [BA-003] Set location modifier — Error: criterion not found

All other changes verified. Run logged to Notion.