Oct 12, 2026 · 8 min read
Ommnium for Performance Marketing
Start with reporting. Agents answer "can you pull" asks, check pacing every morning and stay quiet when it's normal. Your yes moves every dollar.
Sam Okafor runs paid media at the Ruiz & Okafor studio. Most of his week is the same handful of questions. Can you pull last week's CPA for search? Did anything break overnight? Are we on pace for the lead goal? Each answer takes digging, and the questions arrive during meetings.
In Ommnium, Agents take the reporting first. They read the exports, sheets and ad accounts Sam already has, answer asks with the source and date, and check pacing every morning. They post only when something is off, in the same Channels where Sam and Ana Ruiz decide. They recommend; people move the money.
The team
| Agent | Its one job | It never |
|---|---|---|
| Project Manager (lead, Library) | Keeps briefs, creative and procurement threads moving; turns approved copy into briefs and pings design | Approves spend |
| Paid Media Report Desk (Library) | Drafts answers to "can you pull" asks; weekly and monthly reports | Sends an answer without your press of "Send" |
| Ad Spend Watch (gatekeeper, Library) | Daily spend and conversion check by channel; the only Agent near ad-account data | Pauses a campaign or changes a budget |
| Lead Pipeline Desk (Library) | Lead triage and pacing against the month's goal | Edits your CRM without a yes |
| Apple Search Ads Review (optional, Library) | Apple Search Ads spend against your CPI target, from exports | Changes a bid |
| Platform operators | One per ad platform: checks pacing inside the account, in its browser, and reports to Ad Spend Watch | Spends |
| Conversion checker | Checks in its browser that Tag Manager events still fire after each release | Publishes a tag change |
| Search coverage | Compares each week's product changes with your search campaigns | Creates campaigns |
All Library templates come from an outside creator; read their instructions before installing.
The people: Sam runs paid media. Ana approves budgets. Lea Brandt designs the creative.
The gatekeeper. Ad Spend Watch owns the ad numbers. Only it and the platform operators touch ad accounts: connect an ad-platform tool for Ad Spend Watch alone, and sign in to each account only in its operator's browser. Everyone else asks in the open. This is a habit, not a lock: Ommnium has no per-tool approval rules, so the rule lives in where you enable tools and in the instructions. Spend always goes through a person.
Set it up
- Create the Project. Click the + next to Projects in the sidebar, name it
paid-media, and click "Create project". - Add Channels. Project ⋯ → "New channel": create
reporting,pacingandcreative, each with a brief in "Description":#reporting: Answers and reports, each with its source and date.#pacing: Daily spend and conversion checks; posts only when something is off.#creative: Briefs and assets waiting on design or procurement.
- Install the Agents. Library → "Agents" → "Marketing" → "Paid Media Report Desk" → "Install agent". Pick the Project and install. Repeat for Ad Spend Watch, Lead Pipeline Desk, Project Manager and, if you run Apple Search Ads, Apple Search Ads Review.
- Put the numbers where Agents can read them. Keep a Google Sheet with one tab per channel, filled from your platform exports, plus tabs for the plan and goals. Quiet checks read the Sheet; bigger files can go in the Project's "Computer" tab ("Upload files").
- Connect tools. Library → "Marketplace" → Slack → "Connect", then Google Sheets. Add Notion for briefs and Hex if your numbers live in a warehouse. Salesforce needs your own app. Under "Enabled in", choose the Project.
- Make a team and deploy it. Agents → "Agent teams" → "New team" → "Create team": "Paid Media Team", the Agents, and "Team instructions": "The Project Manager leads and routes asks by @mention in the thread. Nothing changes in an ad account from this desk. Every number comes with its source and date. Stay quiet when it's normal." Then Project → "People & Agents" → "+" → "Deploy team" → all four Channels. Set each Agent's "Who can instruct" to "Anyone" if Ana and Lea will use them.
- Listen to Slack. On Slack's Library page, "Events" → "Set up events". Then sidebar "Automations" → "New automation": "Posts to"
#reporting, "When to run" → "Add trigger" → "Slack message", your reporting Slack channel and "Keyword"pull. Set "Agent" to Paid Media Report Desk, write the "Instruction" from below, and leave "Reply in the Slack or Teams thread" off → "Create". - Add the browser seats. + card → "Create agent" for one operator per ad platform (for example "Google Ads Operator"), the conversion checker and search coverage. On each profile, "Channels" → "Add to channel": the operators to a new
#platformsChannel with Ad Spend Watch, so no Channel passes six Agents; the conversion checker to#pacing; search coverage to#reporting. You sign in to each ad account and Tag Manager once in that Agent's browser yourself, including any two-factor step; Agents never type passwords.
Running launches too? The Marketing Studio team installs in one step from Agents → "Agent teams"; see Ommnium for Marketing.
What happens each day
Automations
Once, on a schedule, or when something happens in GitHub or Slack. A live demo with sample data; try it.
- 08:00 Ad Spend Watch checks yesterday's spend and conversions against the plan, quietly. All normal: nothing is posted.
- 08:30 Lead Pipeline Desk posts in
#pacing: LinkedIn leads are behind pace, and two new leads have no owner. One recommendation each. - 09:00 The platform operators check pacing inside each ad account and report to Ad Spend Watch in
#platforms. One campaign is ahead of plan, so Ad Spend Watch raises it in#pacingwith a recommendation for Sam. - 11:02 In Slack, someone asks "can you pull last week's search CPA by campaign?" The listener wakes Paid Media Report Desk. It posts the answer in
#reportingwith the tab and date, plus a Slack draft card. Sam checks the number and clicks "Send message". - 13:40 Ana approves new copy. The Project Manager writes the brief in Notion and @mentions Lea in
#creative. - Next day 08:00 One channel spent nothing overnight. Ad Spend Watch posts in
#pacingwith the numbers and @mentions Sam. Sam fixes it in the ad platform himself. - 10:00 After last night's release, the conversion checker walks Tag Manager in its browser. The signup event still fires, so it stays quiet.
- Monday 09:00 The weekly report arrives as an Output with a chart, and search coverage lists last week's product changes that no search campaign covers. The monthly report, on the 1st, is a draft for Sam.
Copy these prompts
The Slack listener's "Instruction":
Someone asked for numbers in Slack. Answer from the Reporting sheet: the metric, the date range and the tab you used. If the data isn't there, say which export is missing. Post the answer here and draft the Slack reply for me to send.
Ad Spend Watch, in #pacing:
@ad-spend-watch Every weekday at 8:00, check yesterday's spend and conversions per channel in the Sheet against the monthly plan and the last 7 days. Run it quietly in the background: post only double spend, zero spend or zero conversions. Save it switched off; I'll turn it on.
Lead pacing, in #pacing:
@lead-pipeline-desk Every weekday at 8:30, check new leads against this month's goal. Post only pacing misses and leads with no owner, with one recommendation each. Save it switched off.
The weekly report, in #reporting:
@paid-media-report-desk Every Monday at 9:00, write the weekly report from the Sheet: spend, CPA and conversions by channel against plan, one chart and what changed. Publish it as an Output and name any missing export. Save it switched off.
Rules, once, in #general:
Remember for this Project: budgets are in the Plan tab, the lead goal is in the Goals tab, and only Sam or Ana changes spend.
Rules that keep it healthy
- Reporting first. It's the easiest job to hand over, and it buys time for the rest.
- Nothing moves money without a person. Agents recommend; Sam or Ana acts.
- One gatekeeper. One Agent near ad data; others ask it in the open.
- Quiet when it's normal. Checks post only for real problems.
- Drafts before sends. Leave "Reply in the Slack or Teams thread" off until you trust the answers.
What it can't do yet
- Ad platform connectors. Ommnium has no Google, Meta or LinkedIn Ads connector of its own; the platform operators work in your ad accounts in their browsers. The Library lists Adspirer, a third-party connector we haven't verified end to end; if you try it, enable it for Ad Spend Watch only.
- Read a warehouse without a connector. Use Hex or a Sheet; Databricks has no connector.
- Connect a CRM in one click. Salesforce and HubSpot need your own app.
- Lock an action. There are no per-tool approval rules.
- Run on the first business day. Monthly runs use a fixed date.