Ads Management for Agencies. One Approval Queue.
The Ad Manager syncs Google and Meta campaigns into one workbench where the AI drafts staged change-sets — budgets, bids, pauses — with the reasoning attached. You approve, server-side guardrails enforce, and every captured lead lands in the CRM built to turn it into a client portal.
Two Ad Platforms. One Approval Queue.
Every client's campaigns sync hourly into one workbench. The AI reads performance and drafts its moves through 40+ typed propose_* tools — and every draft waits in an approval queue with its reasoning attached, never in your live account.
Google Ads, synced and drafted
- Accounts, campaigns, budgets, and pacing sync into the workbench
- Keyword research and search-term mining beside the campaigns they feed
- Drafted optimizations queue behind an explicit Approve or Reject
- Client-ready report pages, scheduled to send on your cadence
Meta, staged the same way
- Staged changes carry reasoning and expire after 24 hours if nobody acts
- Exactly-once execution — an approved change applies once, or not at all
- Meta lead-form leads land straight in the leads CRM
- Offline conversions flow back so bidding learns from real revenue
Both platforms, one answer
- Spend, CTR, and conversions side by side for every client
- Hourly syncs keep Google and Meta rollups fresh
- Budgets stay siloed per client — comparison never becomes commingling
Guardrails Live Server-Side. Not in the Prompt.
The AI proposes. You approve. The executor enforces — even a bad click can't outspend the rules.
Every check runs in the executor, after approval and before the ad platform — not in the model’s instructions.
Every Channel In. One Lead Record Out.
Instagram DMs, Meta lead forms, website forms, texts — even anonymous traffic. Every capture source writes to the same lead timeline, so nothing gets re-asked and nothing slips.
Open a DM, tap Draft, and a reply in your voice is ready to review; a teammate sends it, the lead is tagged, and every send is logged. By default nothing goes out on its own — only an automation you built can answer a phrase you chose.
The Visitor-ID add-on resolves anonymous website sessions into a lead feed — the people researching you at 11 PM show up in the CRM by morning.
Ad clicks, DMs, form fills, and texts land on one lead record — one conversation to read, one record to convert to a client portal.
The CRM Does the Busywork. You Do the Closing.
Every lead gets an owner inside a minute, a research brief without anyone googling, and a timeline that reads like one conversation — until the day it becomes a client portal.
The CRM in full — Lead Manager, Prospecting, Pipeline, Automations →
Workflows That Publish Like Releases.
Chain triggers to actions on a visual canvas — a form submission kicks off waits, emails, routing, even a queued voice call. Publishing freezes the graph: a running lead never has the workflow edited underneath it, and every change ships as the next version.
- 6 triggers × 8 node types — forms, new leads, stage changes, waits, emails, routing, calls
- Branches read lead fields and reply state before choosing a path
- Published graphs are immutable — edits become the next version, never a mutation


