The agent
Agent is the chat inside Tempio. It runs on the same org-scoped tool layer your own AI reaches over MCP, so it answers from the same numbers the dashboard draws and writes through the same gate everything else does.
Ask it in plain words. "Which campaigns lost money last week?" "Is a $40 cost per conversion good for this account?" "Draft a campaign, an ad group and an ad for the spring intake, twenty-five a day." It reads, it proposes, it drafts — and there it stops.
What it holds
The agent gets the whole tool layer minus the tools that apply things.
| Tools | What they do |
|---|---|
| Read | Connections, ad accounts, campaigns, metrics, and the account brief |
| Structure | What sits under a campaign — ad groups, ads, creatives, keywords — and the media library |
| Research | research_keywords, geo_search, get_search_terms, get_placements, get_change_events — the reads that answer what to target and what already moved |
| Write | draft_changes, update_draft, revert_draft: change requests at the gate, never a live change |
| Plans | Create and edit media plans, and materialize one into drafts |
| Raw platform requests | platform_api_request and platform_api_mutate, which answer only while a workspace owner has the escape hatch on. A raw write is drafted like everything else, and it is one no rule can clear |
The filter is exactly the approve scope: every tool that needs it —
approve and reject — is left out of the list the agent is built with,
rather than refused at run time, so "please just approve it" has no call behind
it. Applying a draft is yours, in Drafts, or a rule's, under
Approvals.
An MCP key can be minted with the approve scope, because a key is a
credential a person chose the reach of. The in-app agent is not, and never
carries it.
How it reads an account
Before it answers a question about how an account is doing, the agent reads that account's brief — the page of facts written after each sync, covering the last ninety days. That is what turns "is $40 good?" from a question about the industry into a question about your own account. A brief more than a week old is flagged stale, and the agent says when it was computed before quoting it.
Three rules shape everything it says about numbers, and they are the same rules the rest of Tempio holds to:
- A null ratio is undefined, not zero. No conversions yet means cost per conversion has no value, and the agent is required to say so rather than report nought.
- Money is minor units in the account's own currency, at that currency's own number of decimals. It never assumes dollars and never assumes a hundred minor units to the major one.
- Warnings come before the numbers. Every tool result carries a
warningslist. A figure reached by converting currencies is an estimate and gets called one; a figure from a connection that has not synced carries when it was last refreshed; something blocking is stated and the agent stops rather than answering around it.
Metrics is where those rules are written down.
How it drafts
Asked to build something, the agent checks what exists first, proposes concretely — budget, objective, naming — and then writes the whole thing as one batch: a campaign, the ad group inside it, the ad inside that, each entry naming the earlier one it depends on. It hands you the batch's review link when it is done, and says whether the batch is waiting for a person or was already cleared by one of your rules.
For anything spanning several campaigns or several months it plans first: a media plan, an item per campaign with its flight and its whole-flight budget, shaped with you, then materialized so the whole set reaches the gate together.
When a call is refused it reads the refusal and adjusts rather than retrying blindly. A guardrail refusal, a missing ad account, a payload the platform would not accept — each comes back as a code and a sentence, and the sentence is written as what to do about it.
Where it runs
Agent, at the right of the top bar, opens the chat in a panel beside the page you are on; on a phone it opens the agent's own page. The panel's header names the chat it holds and opens it full size. The + beside Chats in the sidebar starts a new conversation on the agent's own page. Chats are saved, listed under Chats, and private to you unless you share one. Elsewhere in the app, Ask the agent opens the chat with the question already typed — on an account brief card, for instance — ready to send or edit.
On the agent's own page the top bar names the chat, and at its right edge are New chat, Agent activity and More. More is where the person who started a chat sets who can open it, only them or everyone in the workspace, and deletes it. On a phone the bar keeps New chat and More, and Agent activity moves into More.
Agent activity lists each conversation you can open in this workspace, newest first and grouped by day, with the tools the agent called and the changes it drafted. A change request in the list opens in Review.
There is a model picker on the composer: Claude Sonnet, which is the default and the better one for campaign work, and Claude Haiku, which is faster. Both reach exactly the same tools.
Reading a reply
The work behind an answer folds into one line, such as 3 tools used. Open it to see the agent's reasoning and each call, and press a call to see what it sent and what came back. A call that failed is counted in the line, as in 3 tools used · 1 failed, and opens on its error. If you stop a reply, a call that had not finished reads Stopped.
A campaign, ad group, ad, plan, draft or any other record the agent names appears as a chip with the record's colour. Press it to open that page.
A change request is a card. Its header counts the changes and says where the batch stands, each change is a row, and an owner or admin sees Approve and Reject in its footer. Open in Review is there for everyone.
Metering
An agent message is a metered unit. Sending one spends from the workspace's monthly allowance first, and then from the oldest prepaid pack it holds.
- The allowance comes with the plan and resets each billing period.
- Packs are prepaid and roll over; they are the workspace's, not one person's.
- Tool calls, the model's own replies and retries inside one turn are not counted separately. One message you send is one unit.
There is also a soft daily cap, which is an abuse brake rather than a billing construct: it denies without spending anything. Either way, what you see is one line — you have reached your agent message limit — and the usage card on the dashboard shows which pool is empty, how much of the period is left, and how to top up. Billing covers the pools.
Reading is not free either: a question that makes the agent read ten campaigns is one message, the same as a question that makes it read one. The meter counts turns, not work.
What it is not
It is not an autopilot, and it is not a second gate. Every change it proposes is a change request on the record, applied when it is approved — by you, or by a rule you wrote. The record says which, and it says the agent drafted it: the audit log carries the actor type beside every action, so a change the agent wrote and a change you wrote are never the same row.
It is also not a separate integration. The agent, the app's own buttons and your own AI over MCP are three doors onto one tool layer, with one set of guardrails and one gate behind all of them.