Below is exactly what runs. Each scenario is a Make.com flow chaining real modules — Google Sheets, a brand-memory data store, Claude, the ads APIs, and Slack — into one autonomous loop. Scroll through to see every step reveal in sequence.
A linear, 12-module scenario. Watches the Briefs tab. When a new row arrives flagged for Google, it pulls brand memory, sends a prompt to Claude, parses the JSON, iterates the campaigns, writes them as strategy rows, then pings Slack.
Polls the Briefs tab every 15 min. Picks rows where platforms ∈ Google, Both AND google_status is empty. Flips status to Researching.
Reads the Make data store record keyed by brand. Voice, audience, geo, competitors, historical KPIs, conversion IDs — all loaded.
Sonnet 4.6 returns JSON: 4 campaigns × 15 RSAs each, with keywords, negatives, geo targeting. The JSON module parses it.
The iterator unpacks each campaign. Two parallel addRow modules populate GoogleStrategy and seed the Benchmarks tab. Aggregator collects results.
Flips google_status to Strategy_Ready. Slack pings the strategist: "Google strategy ready — review on Sheet."
Same trigger, three different jobs depending on the row's state. Approved-but-not-built → Build. Live-and-24h-old → Health check. Live-and-72h-since-last-optimisation → Search-terms optimiser. Routes per row.
Reads GoogleStrategy rows for the brief, hits Google Ads mutate API to create the campaigns PAUSED, marks status Built, pings Slack: "Built — flip live in Ads UI."
Pulls last-7-day GAQL performance, hands it to Claude for diagnosis against Benchmarks, logs to OptimizationLog, pings Slack with verdict.
Pulls last-7-day search terms (top 200) + last-7-day perf. Claude proposes negatives only for clearly out-of-context terms. Logs proposal, pings Slack — human 👍 applies via mutate API.
Same backbone as G1, different prompt. Watches the Briefs tab for Meta or Both. Pulls brand memory, asks Claude for 2 static + 2 carousel + 1 video concept with hook, copy, and visual direction. Writes to MetaStrategy.
Same trigger as G1, but filters for platforms ∈ Meta, Both AND meta_status empty. Flips to Researching so the team knows it's in flight.
Reads the same brand record. Includes preferred creative angles, banned imagery, voice rules, and competitor creative landscape.
Returns JSON with 5 concepts: 2 static + 2 carousel + 1 video. Each has a hook line, body copy variants, and visual direction the designer can act on.
Iterator unpacks each concept. AddRow writes to MetaStrategy + seeds Benchmarks with Meta KPI defaults. Aggregator confirms count.
Flips meta_status to Strategy_Ready. Slack: "Meta creative brief ready — 5 concepts for designer." Designer drops assets in Drive.
Same router pattern as G2 but talks to the Meta Graph API over HTTP. Build branch creates campaigns + ad sets PAUSED. 24h branch watches CPL, CTR, frequency. 72h branch detects ad fatigue and proposes 2-3 fresh creative angles.
Reads MetaStrategy rows, POSTs to Meta Graph API to create campaign + ad sets PAUSED. Marks Built. Slack: "Built — flip live in Ads Manager."
GETs last-7-day insights (spend, CPL, CTR, frequency). Claude compares to Benchmarks. Logs verdict. Slack alerts only on tolerance breach.
GETs last-14-day ad-by-ad insights. Claude detects fatigue (CTR decay, frequency thresholds) and proposes 2-3 new angles. Designer picks up after thumbs-up.
The system board ties all four scenarios, the brand memory layer, the Campaign Hub Sheet, and every human gate into a single flowing diagram.