Why I Stopped Running Marketing Reports and Started Building Marketing Systems

The analyst who runs reports is replaceable. The analyst who builds the system that runs reports is not. Here is the shift in thinking that changed how I approach every marketing analytics engagement.

There is a version of the marketing analyst job that is mostly data retrieval: pull the weekly numbers, format the deck, present to the team, repeat. That version of the job is being automated.

The version that is not being automated is the one that designs what gets measured, decides how it connects to decisions, and builds the infrastructure that makes insight repeatable without human intervention each time.

I made a conscious shift toward the second version. This is what that looks like in practice.

The Report Is Not the Work

When a stakeholder asks for a marketing report, they are asking for a decision input, not a deliverable. The report is a means to an end: someone needs to decide whether to increase spend, change creative, shift channel mix, or hold steady.

If the report is recreated manually every week, the analyst is spending capacity on retrieval and formatting rather than on the reasoning that makes the report useful. That is a poor allocation of the scarce resource, which is analytical judgment.

The right response to a recurring report request is not to produce the report. It is to build a system that produces the report, so the analyst can focus on interpreting the output rather than generating it.

What an Orchestrated Analytics Stack Looks Like

An orchestrated stack has three layers. Ingestion moves data automatically from source systems into a structured store: no manual exports, no copy-paste. Transformation encodes business logic as version-controlled code: attribution rules, margin calculations, segment definitions. Delivery routes outputs to the right people on the cadence that matches their decision rhythm.

The analyst's job in this stack is to define the logic at each layer, monitor for drift, and update the system when the business changes. Not to run it manually each time.

01

Ingestion

  • Ad platforms
  • CRM systems
  • Web analytics
Scheduled · Fails loudly
02

Transformation

  • Attribution rules
  • Margin calculations
  • Segment definitions
Version-controlled · Auditable
03

Delivery

  • Slack @8am daily
  • Email weekly
  • Monthly review
Decision-cadence matched

// ORCHESTRATED_ANALYTICS_STACK — 3-LAYER ARCHITECTURE

Where AI Agents Enter

The newer layer is agents: AI systems that handle reasoning tasks within the pipeline, not just data movement.

A signal agent scans incoming campaign data and flags anomalies worth investigating before a human reviews the dashboard. A build agent drafts copy variants based on historical performance patterns. A gate agent evaluates outputs against defined quality criteria before they reach a stakeholder.

None of these replace analytical judgment. They compress the time between data and decision, and they handle the volume of routine evaluation tasks that would otherwise bottleneck a human analyst. The orchestrator designs the agent roles, sets the criteria, and reviews what escalates.

CAMPAIGN DATA INPUT
🔍
AgentSignal

Scans incoming campaign data

out: Flagged anomalies worth investigating
AgentBuild

Drafts based on historical performance patterns

out: Copy variants for review
AgentGate

Evaluates outputs against defined quality criteria

out: Validated output delivered to stakeholder
STAKEHOLDER DELIVERY

// AI_AGENT_PIPELINE — SIGNAL · BUILD · GATE

01 · TRIGGER

Gmail Trigger

Fires on every incoming email. Passes full payload — sender, subject, body — to the assessment chain.

Gmail API
🔍
02 · ASSESS

Intent Assessment

Gemini reads subject and body and returns a structured yes/no via JSON Parser. Newsletters, auto-replies, and noise are dropped here.

Gemini Chat Model 1JSON Parser
IF NEEDS REPLY
03 · CATEGORIZE

Category Classification

A second Gemini pass assigns one of four intent labels. Category Parser structures the output for the router downstream.

Gemini Chat Model 3Category Parser
Route by Category
📅RESERVATION

Confirms or clarifies reservation details. Fills in standard language for time, party size, and contact.

Gmail Draft
🍱CATERING

Responds to catering inquiries with pricing, minimums, and availability.

Gmail Draft
💬GENERAL

Handles hours, directions, menu questions, and general information requests.

Gmail Draft
COMPLAINT

No draft created. Escalates directly — the GM receives an immediate Telegram notification.

GM Alert
Gmail Draft
Reservation · Catering · General
🔔
GM Alert
Complaints escalate directly

// GMAIL_AI_WORKFLOW — ASSESS · CLASSIFY · ROUTE · DRAFT

The Mindset Shift

The practical difference between analyst-as-reporter and analyst-as-orchestrator is where you spend your time when a new request comes in.

📋
Reporter

Asks:

“How do I produce this output?”

Capacity: retrieval + formatting
Value: delivering the report
Risk: replaceable by automation
🎛
Orchestrator

Asks:

“Should this exist once, or recurring with minimal effort after setup?”

Capacity: reasoning + design
Value: the system itself
Outcome: compound leverage over time

Most recurring requests answer the recurring-vs-once-off question quickly. If the answer is recurring, the next question is: what is the minimum system that makes this sustainable?

That question changes the shape of the work. And the shape of the work changes what you are worth to an organization.

JV

Written by Jason H. Vo