Web Project Studios

Field notes

The client report that ships on time but says nothing useful

15 June 2026

marketing-agencyai-workflowreporting

A marketing director at a mid-sized agency told me something that has stuck. Her team had cut report production time from two days to forty minutes using a ChatGPT prompt chained to a Looker Studio export. The reports looked better than they ever had. Clients were receiving them earlier. Nobody was reading them.

That is the situation most agencies are now in, whether they have admitted it yet or not. The tooling got faster. The output got cleaner. The underlying problem got louder.

When agencies talk about automating their reporting, they usually mean one of two things: pulling data from GA4 and HubSpot into a Looker Studio template on a schedule, or feeding that export into a language model and asking it to write a summary. Both of those things work. Both of them produce a document. Neither of them produces an interpretation.

The distinction matters because interpretation is the only part of a report a client cannot do themselves. They have GA4 access. They can see that sessions dropped 18% in May. What they are paying for is someone to tell them whether that matters, why it happened, and what to do next. A prompt that says "summarise this data in three paragraphs" does not answer those questions. It rephrases the numbers in sentences.

The result is a report that is accurate, formatted, and on time, but contains no useful information.

There is a reason agencies built monthly report templates in the first place. A consistent format signals process. It signals that someone is watching. It gives clients something to point to in a board meeting. The template became, over time, a proxy for the work itself.

That proxy was always fragile. When a human analyst spent two days producing the report, the time cost forced some degree of thinking. You would not spend eight hours on a document without at least asking yourself what it was trying to say. Compress that to forty minutes with a language model and the thinking falls out first, because the thinking was never in the template to begin with.

I have seen Looker Studio dashboards with eleven charts, each one auto-populated, none of them annotated, shipped to a client with a subject line that says "May performance report." The client opens it, scrolls through, closes it. The agency marks the task complete. The relationship drifts. This is the pattern I wrote about in why most AI pilots fail: the tool gets adopted, the output gets produced, and the underlying process problem accelerates rather than resolves.

The agencies getting this right are not the ones who have stopped automating. They are the ones who have separated the data layer from the interpretation layer in their workflow design.

The data layer can be fully automated. Pull from GA4. Pull from HubSpot. Populate the Looker Studio template. Run the scheduled export. That is appropriate automation. It removes work that has no analytical value.

The interpretation layer cannot be automated in the same way, but it can be structured. The question is not "what happened this month?" The question is "what happened that we did not expect, and what does it change?" A prompt that asks a language model to compare this month's figures against the previous three months, flag anomalies above a defined threshold, and draft a one-paragraph hypothesis for each anomaly is doing something qualitatively different from a prompt that says "write a summary."

The output of that second prompt is still a draft. A human still needs to read it, correct it, and decide whether the hypothesis holds. But the structure forces the thinking to happen somewhere in the process, rather than assuming it will emerge from the data on its own.

report_workflow:
  data_layer:
    - source: GA4
      action: scheduled export, sessions / conversions / channel breakdown
      automation: full
    - source: HubSpot
      action: scheduled export, leads / pipeline movement / email engagement
      automation: full
    - source: Looker Studio
      action: populate template from exports
      automation: full
 
  interpretation_layer:
    - step: anomaly detection
      prompt_logic: >
        Compare this month against the prior 3-month average.
        Flag any metric that has moved more than 15% in either direction.
        For each flagged metric, draft one hypothesis explaining the movement.
      automation: assisted (AI draft, human review)
    - step: client-specific context
      prompt_logic: >
        Cross-reference flagged anomalies against known client activity this month
        (campaigns launched, site changes, seasonal factors).
        Revise or discard hypotheses that are explained by known activity.
      automation: human-led
    - step: recommended actions
      prompt_logic: >
        For each unexplained anomaly, propose one action the client should consider.
        State the expected outcome and the metric that would confirm it.
      automation: assisted (AI draft, human review)
 
  delivery:
    format: Looker Studio report plus written commentary section
    commentary_owner: account lead
    sign_off: required before send
    target_turnaround: 90 minutes total

The workflow above is not slower than a fully automated one. It is structured differently. The time saving from automating the data layer funds the time spent on the interpretation layer. The net result is a report that takes roughly the same time to produce and contains something a client can act on.

The first thing to do is read the last three reports you sent to your most important client. Not skim them. Read them as if you were the client and had no context. Count the number of sentences that tell the client what to do differently next month. If that number is zero or one, your reports are polished noise.

The fix is not a better template. The fix is a decision about what question each report is supposed to answer. That question should be written at the top of the document, above the data. Something like: "Did our activity in May move the needle on qualified leads, and if not, why not?" Every chart, every paragraph, every AI-generated summary should be in service of that question. If a section does not address it, the section should not be in the report.

Once you have the question, you can build the prompt structure around it. The language model becomes useful not as a report writer but as a first-pass analyst: find the anomalies, propose the hypotheses, draft the recommendations. The account lead reviews, edits, and owns the output. That is a defensible division of labour.

The agencies that will hold their clients through the next two years are not the ones shipping the most reports. They are the ones whose clients look forward to receiving them. That is a higher bar than it sounds, and it starts with deciding that interpretation is the product, not the PDF.

If your reporting workflow is producing volume without signal, the AI Workflow Audit is where to start. We map what your current process actually produces, identify where the thinking is being skipped, and redesign the workflow so the automation serves the analysis rather than replacing it. You might also find it useful to read the piece on how AI-generated property listings expose a brand problem, which covers the same dynamic in a different sector: when generation gets easy, the cost of having nothing to say becomes visible.