Audit logs and governance arrived at Synter as a pricing row: 7-day history on Solo, 90-day history on Scale, Unlimited / SIEM Export on Custom. A tidy ladder, and the shortest rung is the one a new agency signs first. The problem is not the ladder. It is that three other pages on the same domain describe different ladders — and one of them says there is no timer at all.
Synter is worth taking seriously, and not for the reason the category usually means. It publishes more constraint documentation than anyone else in the ad-MCP lane: budget caps enforced before the platform call, campaign creation coerced to a paused state, operations that cannot be classified as safe routed to a human, launches blocked when conversion tracking is missing. It also publishes the field list for its own audit log. That field list is genuinely good.
Which is exactly why the retention numbers matter. Everything above describes what the record contains. None of it decides how long the record exists. On that question, Synter’s own documentation gives six answers across four pages — and the answer with a price attached is the shortest one.
Start with what they get right
Credit first, because it is real and it is more than most. Synter documents its constraints as enforced infrastructure rather than as settings a model is politely asked to respect:
- New campaigns always launch paused. “Every campaign creation — regardless of the instruction source — is coerced to a paused state before reaching the platform API.”
- A hard budget cap, enforced server-side. “A configurable daily spend ceiling is enforced server-side before any platform API call. The agent cannot exceed this limit even if instructed to.”
- Unknown operations require approval. Any action that “cannot be statically classified as safe requires explicit human approval before execution, regardless of the workspace’s autonomy level.”
- A conversion tracking gate. Campaign launches are blocked if verified conversion tracking is not active — no spend running without measurement in place.
- Agent-Shield. An MIT-licensed framework using HMAC-SHA256 manifests and preflight attestation to stop skill-file tampering and prompt injection before a tool call executes. Protecting the agent’s own playbook is a real engineering answer to a real problem in this category.
The log itself is specified on Synter’s /security page, and the fields are the ones you would ask for: Timestamp in UTC, Actor (agent or authenticated user), Entity, Action, Before / After values, and Decision — allowed, coerced, blocked, or pending approval. Logs are immutable. They export as CSV or JSON.
Six lifetimes for one record
Same domain, same week. Here is every published answer to “how long does the audit log live.”
| Where it is published | How long the record lives |
|---|---|
| /security | retained for the life of the workspace and are never purged on a timer |
| /security-governance | immutable and retained for 2 years |
| /pricing — Solo | 7-day history |
| /pricing — Scale | 90-day history |
| /pricing — Custom | Unlimited / SIEM Export |
| /trust | retained only as long as needed … per our published retention schedule |
There is a seventh row, and it is the only one that is actually a setting. The /security-governance page tells customers they can “Choose log retention period (0, 30, or 90 days) for API request/response logs.” That control governs a different object — request and response payloads, not the change journal — and the distinction is worth keeping, because the shape of it is the point. The one retention control on the site that a customer can configure offers zero as one of its three options.
These are not two descriptions of one record
You could reconcile six numbers if they were six descriptions of the same object. They are not. The two security pages list different fields for the same log.
/security lists six: Timestamp, Actor, Entity, Action, Before / After, Decision. /security-governance lists seven: Timestamp, Actor, Entity, Field, Old/New Values, Rationale, Metrics Delta. The second adds the agent’s reasoning and its expected impact on CAC and ROAS. The first adds a decision state — allowed, coerced, blocked, or pending approval — that the second never mentions.
Two field lists means two objects. The roles drift as well: /security names them Owner, Editor and Viewer, while /security-governance names them Admin, Editor and Viewer. Same product, two permission models, two pages that both sit under the heading “Security & Compliance.”
Which one ships is not a documentation question. It is the question the price list answers, because retention is the only variable the paid feature exposes.
“Audit logs are retained for the life of the workspace and are never purged on a timer.”
If that sentence is the specification, then “Audit Logs & Governance” is not a tier — there is nothing left to tier. A feature row that sells 7 days, 90 days and unlimited is a feature row selling time, which means the thing being sold under the governance name is the retention window itself. Two surfaces, one of which has to be wrong. The wrong one is the surface with no price attached to it.
Why the tiering is the most honest thing on the site
Give the price list its due: it is the only surface that states the answer in the unit an agency actually has to plan in. Someone reading the pricing page learns in four seconds that retention is a purchased property. Someone reading the security page learns, in four seconds, the opposite — and has no reason to look further, because that is the page you open when you want reassurance.
And SIEM Export, held back for the sales-led Custom plan, is the tell. SIEM is a security-operations pipeline: it ships events to a SecOps console for correlation and alerting. It is not an evidence file, it is not addressed to a compliance lead, and it does not answer a question about one client’s March budget change. The highest governance tier ships the log somewhere else.
What the regulator actually asks
The FCA’s Nikhil Rathi, in “Rethinking regulation for the age of AI” (June 24, 2026):
Accountability for regulated activities and outcomes must remain clear.
Read that against a retention window. The question a financial-promotion review asks is not “was the budget change logged?” It is: on 14 March, who approved the increase on this client’s brand-search campaign, what did the account look like before and after, and can you show me. That question arrives months later, addressed to a named person, about a named client, in a named jurisdiction. No retention window answers a question about a date that falls outside it.
The vocabulary deserves a second pass, because an absence is a specification too. Across the homepage, /pricing, /mcp, /trust, /security and /security-governance — roughly 40,000 characters of documentation — the words jurisdiction, regulated, finance, forex and broker appear zero times. So does approver. “Client” appears eleven times on the product pages, and every one of those means a workspace or a white-label portal: a billing unit, not a regulated engagement.
The word audit is doing two jobs on one site. On /mcp, Synter’s audit is a media-buying workflow — one of the copy-and-paste operator prompts reads: “Audit Google search terms for the last 14 days and flag non-converting queries with >$50 spend as negative keywords.” That is an account-health audit. On /pricing, “Audit Logs & Governance” means record retention. Same word, two categories. When a vendor says audit log, ask which audit.
The retention clause test
Five steps. None of them need a security team, and all of them work on any AI agent vendor you are evaluating.
- Search the vendor’s domain for the retention claim. Do not read the page you were sent — read every page that answers the question.
- Count the answers and write the URL next to each one. Two or more answers is a finding, not a typo.
- Check whether the pages describe the same object. Compare field lists, setting names and role names. If they differ, you are not looking at inconsistent documentation — you are looking at two products described by one website.
- Find the retention setting. If it is configurable, check whether it offers a zero. A retention control with an off position is a control that will be off somewhere.
- Put the longest published number in the contract, name the URL you treat as authoritative, and have the vendor confirm it in writing. Otherwise assume the shortest number you can find is what you will get, because it is the one with a price attached.
What this looks like when the record is the product
Ott’s position is boring by comparison, because there is no retention tier to sell:
- Activity Logging records every campaign change — pauses, budget edits, creative swaps, bid and review changes — timestamped, attributed to the actor the platform reports, with before-and-after values. Stored independently of the platform that accepted the change, so a restricted ad account does not take the evidence with it.
- Budget Ledger keeps one prepaid ledger per brand, so a top-up, a manual correction and a balance reset are dated entries with notes rather than a spreadsheet somebody rebuilt.
- Agency Hierarchy runs Client → Brand → Account, so the record is filed against the engagement it belongs to rather than against whoever owns the ad account.
- Telegram conversion tracking writes channel joins and FTDs into the same account-level record through CAPI postbacks that survive the chat, so the Telegram side of a finance funnel lands beside the Meta side instead of in a spreadsheet.
- Client View lets the brand read its own slice without a shared password and without granting anything beyond its own brands.
- Flat CHF plans with no per ad account or per data source fees, and no retention ladder to reconcile.
We are not the same category as Synter, and this post is not a claim that we are. Synter executes campaigns across 27 ad platforms from an AI client; Ott does not write campaigns into ad platforms from a chat. Our lane is the record of what happened — in Meta’s ad manager, in a Telegram funnel, in a budget approval — and specifically the record of the decision, not just the change.
If Synter writes the two-year figure, or that “never purged” sentence, into a contract and confirms which surface is authoritative, the words become accurate and this objection disappears. It is a paperwork fix, not a rebuild, and four months of public documentation suggests somebody is trying. Until it happens, the safest assumption for a regulated agency is the shortest ladder on the price list — and an expired record makes the strongest claim on the site technically accurate and practically useless.
So the next time a vendor hands you an audit log, don’t ask for the page. Ask for the clause.