Open in browser → File → Save Page As PNG (or right-click SVG → Save image as) → drag into FigJam.
YARD AI-Native Performance Automation End-to-end campaign lifecycle for Astroport Sariska — 4 Make.com scenarios + 1 brand-memory layer + 1 Sheet. LEGEND Google Ads workflow Meta workflow Brand memory / Sheet AI agent (Claude) Slack notification Human action Data flow Trigger / poll H Human-in-loop step 🧠 BRAND MEMORY LAYER Make data store · YARD - Brand Memory · key = astroport-sariska • Voice + dos/don'ts • Audience + geo • Competitor list • Historical CPA / CTR / ROAS • Irrelevant keyword seeds • Preferred creative angles • Meta ad account: 11888…39 • Google customer: 8265511239 • YARD MCC login: 4990887790 H HUMAN INPUT Drop campaign brief in Briefs tab — platforms, budget, KPI, target value, landing URL. 📊 CAMPAIGN HUB GOOGLE SHEET Astroport Sariska — Campaign Hub · 6 tabs · the single source of truth for the team Briefs campaign intake + status 24 columns BrandMemory mirror of data store 23 columns MetaStrategy 5 concepts / brief 15 columns GoogleStrategy 4 campaigns / brief 15 columns Benchmarks target KPIs user confirms 14 columns OptimizationLog every check + proposal 14 columns PHASE 1 · PRE-LAUNCH · Brief → Research → Strategy → Sheet Polls every 15 min · zero human time until approval G1 · Google Pre-Launch (Make scenario 9215556) 1. TRIGGER Watch Briefs row where platforms ∈ {Google, Both} AND google_status = empty 2. MARK RESEARCHING Sheet update: google_status = Researching 3. READ BRAND MEMORY Data store: GetRecord key = astroport-sariska 4. AI STRATEGY (Claude) Claude Sonnet 4.6 returns JSON: 4 campaigns w/ keywords, 15 RSAs each, negatives, geo 5. WRITE STRATEGY For each campaign → addRow to GoogleStrategy + seed Benchmarks row 6. MARK STRATEGY READY Briefs row update: google_status = Strategy_Ready 7. SLACK PING "Google strategy ready — review on Sheet" H HUMAN REVIEW Strategist reads GoogleStrategy. Confirms target KPIs in Benchmarks. Sets google_status = Approved when ready. Output: → GoogleStrategy tab populated with 4 campaign rows → Benchmarks tab seeded with default Google targets M1 · Meta Pre-Launch (Make scenario 9215557) 1. TRIGGER Watch Briefs row where platforms ∈ {Meta, Both} AND meta_status = empty 2. MARK RESEARCHING Sheet update: meta_status = Researching 3. READ BRAND MEMORY Data store: GetRecord key = astroport-sariska 4. AI CREATIVE BRIEFS (Claude) Claude Sonnet 4.6 returns JSON: 2 static + 2 carousel + 1 video w/ hook, copy, visual direction 5. WRITE CONCEPTS For each concept → addRow to MetaStrategy + seed Benchmarks row 6. MARK STRATEGY READY Briefs row update: meta_status = Strategy_Ready 7. SLACK PING "Meta creative brief ready — 5 concepts for designer" H HUMAN REVIEW + DESIGN Designer drops assets in Drive. Strategist confirms Benchmarks. Sets meta_status = Approved when ready. Output: → MetaStrategy tab gets 5 concept rows → Benchmarks tab seeded with Meta defaults PHASE 2 · POST-LAUNCH · Approval → Build → 24h Health → 72h Optimisation Runs hourly · scans Briefs · routes to right branch per row G2 · Google Post-Launch (scenario 9215558 · hourly schedule) TRIGGER (hourly) Filter Briefs sheet for all Astroport campaigns READ BRAND MEMORY Loads brand context for Claude later ROUTER Per-row branch decision below BRANCH A · BUILD When: google_status = Approved AND launch_at empty 1. READ GoogleStrategy filterRows by brief_id 2. Google Ads API create campaigns PAUSED 3. Sheet update google_status = Built 4. SLACK PING "Built — flip live in Ads UI" H Human flips campaigns ENABLED in Ads UI + sets google_status = Live with timestamp BRANCH B · 24h HEALTH When: status=Live, ≥24h elapsed, check not done 1. PULL METRICS GAQL last_7d perf 2. CLAUDE DIAGNOSE vs Benchmarks 3. LOG addRow OptimizationLog 4. SLACK "Within tolerance" or alert 5. Mark google_24h_check_done = TRUE prevents re-firing on the same row BRANCH C · 72h OPTIMISE Search terms → negatives proposal · every 72h 1. SEARCH TERMS GAQL last_7d top 200 2. CLAUDE OPTIMISER out-of-context negatives only 3. LOG + STAMP last_optimization_at = now 4. SLACK PROPOSAL list of negatives + actions H Human reads Slack · 👍 to apply negatives YARD applies via Google Ads mutate API after thumbs-up M2 · Meta Post-Launch (scenario 9215559 · hourly schedule) TRIGGER (hourly) Filter Briefs sheet for all Astroport campaigns READ BRAND MEMORY Loads brand context for Claude later ROUTER BRANCH A · BUILD When: meta_status = Approved AND launch_at empty 1. READ MetaStrategy filterRows by brief_id 2. Meta Marketing API campaign + adsets PAUSED 3. Sheet update meta_status = Built 4. SLACK PING "Built — flip live in Ads Mgr" H Human flips ACTIVE in Meta Ads Manager + sets meta_status = Live with timestamp BRANCH B · 24h HEALTH When: status=Live, ≥24h elapsed, check not done 1. PULL INSIGHTS FB Graph last_7d perf 2. CLAUDE DIAGNOSE CPL, CTR, freq vs Benchmarks 3. LOG addRow OptimizationLog 4. SLACK "Within tolerance" or alert 5. Mark meta_24h_check_done = TRUE prevents re-firing on the same row BRANCH C · 72h FATIGUE + ANGLES Fatigue detection → 2-3 new ad-angle proposals 1. AD-LEVEL INSIGHTS last_14d ad-by-ad metrics 2. CLAUDE FATIGUE+ANGLES detect fatigue + propose 2-3 new 3. LOG + STAMP last_optimization_at = now 4. SLACK PROPOSAL "Pause fatigued ad · launch X" H Human reads Slack · 👍 to greenlight new angles Designer builds the new creatives · scheduled for next ad set OUTCOMES vs traditional agency ~95% faster brief→strategy days → hours ~90% faster strategy→launch days → hours < 24h anomaly detection lag vs 5-7 days (weekly review) ~65% less wasted spend 25-35% → 8-12% per campaign optimisation cadence every 72h vs weekly ~80% lower FTE per client 2.5 FTE → 0.5 FTE 30 min to onboard a new brand data store record + 4 scenario clones ∞ scale across all clients one architecture, many brands 0 surprises every action human-approved automation proposes · humans decide