Paste your campaign export into a general chatbot and ask why performance dropped, and you will get a fluent, plausible, well-organised answer within seconds. It will mention creative fatigue, audience saturation, seasonality, and increased competition in the auction. It will suggest refreshing creative and testing new audiences.
All of that is reasonable. None of it is about you.
What it is answering from
A general model has read a great deal of marketing writing. When you ask why CPCs went up, it produces the shape of answer that most commonly follows that question in the material it learned from. That is genuinely useful when you want the standard list of causes and cannot remember all of them. It is not diagnosis, because diagnosis requires knowing which of those causes applies to your account, and that requires data the model does not have.
The confidence is the dangerous part. The answer arrives in the same register whether the model is describing a well-established mechanism or generating a plausible-sounding cause it cannot check. There is no tonal difference between "creative fatigue is a real phenomenon" and "your creative is fatigued", and only the first of those is something it knows.
Three failure shapes worth recognising
Averaging away the thing you needed to see
Paste a campaign-level export and the model reasons about campaign-level numbers. But an ABM problem is almost always a distributional one: a tier being under-served, a segment failing to match, delivery concentrating on a responsive core. Those disappear in an aggregate export, so the model cannot find them — and, because it does not know they are missing, it will confidently explain the aggregate instead.
Confusing metrics with outcomes
Ask which creative is performing best and you will get the one with the best CTR, because that is what "performing" means in the data you supplied. In a named-account programme the right answer is usually a different ad — the one moving accounts through stages. The model cannot know that unless the export contains stage movement, and campaign exports do not.
Fabricating the parts it cannot see
If your export has a truncated column, an ambiguous header, or a date range the model has to infer, it will fill the gap with something reasonable rather than stopping. In a fifteen-column CSV joined across two date ranges, that filled gap is very hard to spot in a fluent answer.
The problem is not that a general model gets things wrong. It is that it gets things wrong in exactly the same voice it uses when it is right.
Where it genuinely helps
Being fair about this matters, because the category of task is real and useful:
- Explaining a mechanism. How the learning phase works, why small conversion volumes destabilise optimisation, what a frequency cap does to delivery. This is exactly what a well-read generalist is for.
- Drafting and iterating creative. Twenty headline variants in the vocabulary of a specific role is a good use of the tool, especially as a starting point you then cut down.
- Structuring an analysis. "What should I check, in what order, if account coverage is uneven" produces a genuinely useful checklist.
- Writing the narrative around numbers you have already verified. Give it the figures and the conclusions; let it write the paragraph.
What it cannot do is tell you which of your accounts moved last week and what they saw first, because that is a question about a specific database.
What a connected assistant needs
Four properties separate a useful analyst from a confident one. They are worth demanding of any tool, including ours.
Access to the resolved account graph, not the export. Campaign totals cannot answer account questions. The assistant needs the join between delivery, companies, job functions, stage history and CRM opportunities — the thing the export flattened away.
Visible queries. Every answer should expand into the filter, date range and row count it ran on. Not because you will check every time, but because you will check the one that surprises you, and knowing you can changes how much weight the answer deserves.
A refusal threshold. An assistant that will not call a difference on six data points is more valuable than one that always produces a number. "Not enough movement to distinguish these creatives yet" is a correct and useful answer, and general chatbots almost never give it.
No unsupervised spending. An agent that can propose budget changes is useful. An agent that can execute them without a human approving is a liability with a good demo.