Build a cross-channel marketing performance reality brief agent
Reconcile channel delivery, web behavior, lead quality, and CRM outcomes into an executive brief that explains what changed, what may explain it, what remains uncertain, and what to inspect next.
What you will have
A recurring, evidence-backed performance brief with reconciled metrics, pipeline reality, competing explanations, data caveats, decisions, and assigned investigations.
Setup time
8-14 hours
Time saved
8-12 hours per reporting cycle
Estimated cost
$150 to $900 per month
Tools used
4 tools
Why this works
Channel dashboards can be internally accurate while still giving leadership the wrong business picture. This workflow reconciles definitions and identifiers before narrative generation, then separates observations from hypotheses so AI cannot turn correlation or bad joins into a confident story. Repeated inspections create a learning system rather than a one-off report.
Step-by-step workflow
Preview the workflow
The first 2 steps are open. Pro unlocks the remaining steps, copy-paste prompts, pro tips, tool-by-tool setup guidance, and implementation details.
1
Agree on the business questions and reporting grain
45-60 min
45-60 min
Write the questions the brief must answer before selecting metrics. Define reporting windows, comparison periods, currency, time zone, account and contact deduplication rules, and whether pipeline is sourced, influenced, or both. Name the owner for each metric family and identify which decisions leadership expects to make from the brief. Exclude metrics that have no decision use or cannot be reconciled to a source. Record the operation against stable identifiers such as reporting_period, source_system, metric_key, metric_value, currency, preserve the raw source reference and capture time, and write any transformation or decision into the system’s change history rather than replacing the prior value. Before the step is marked complete, marketing and RevOps sign off on metric definitions, reconciliation exceptions, and the publishability decision; if that check fails, hold the brief when definitions conflict, identifiers do not reconcile, or source freshness falls outside the approved reporting window.
Output
A signed reporting contract with decision questions, time windows, and metric ownership.
Google Sheets
Pro tip
Start with the decision, not the dashboard. If nobody can state what action a metric could change, it probably belongs in an appendix.
2
Create the metric dictionary and source-of-truth map
60-90 min
60-90 min
Build a Google Sheets dictionary with metric ID, business definition, formula, numerator, denominator, source system, source field, filter, attribution rule, refresh cadence, owner, and known limitation. Map spend and delivery to channel sources, web behavior to analytics exports, and lifecycle outcomes to HubSpot. Include exact stage IDs and internal property names rather than relying only on display labels. Version the dictionary whenever a definition changes. Create a dedicated Claude Project named `cross-channel-marketing-performance-reality-brief-agent-ops` with `instructions.md`, `field-dictionary.json`, `source-register.csv`, `review-rubric.md`, `approved-examples.md`, and `changelog.md`; assign a named owner and use `vYYYY.MM` releases. Refresh the named source exports on the workflow cadence, archive superseded inputs by source ID and date, and review instructions, examples, permissions, and maintenance needs quarterly. Run this template in the workflow’s persistent Claude Project after attaching or linking the approved source records named for this step.
Output
A versioned metric dictionary tied to exact source fields and formulas.
Google SheetsHubSpotClaude
Pro tip
Record internal IDs for stages, owners, and campaigns. Friendly labels can change without warning and break historical comparisons.
Prompt template
ROLE
You are the governed analysis and operations assistant supporting the marketing analytics lead and RevOps reviewer. You are working inside the cross-channel performance reconciliation model, where traceability, stable identifiers, and human authority matter more than producing a polished but unsupported answer.
OBJECTIVE
Complete workflow step 2, “Create the metric dictionary and source-of-truth map,” and produce this operational outcome: A versioned metric dictionary tied to exact source fields and formulas. The result must be immediately usable by the named operator without inventing records, silently changing approved state, or obscuring uncertainty.
INPUTS
1. SOURCE RECORDS: {{create_the_metric_dictionary_and_source_of_truth_source_records}}
2. FIELD DICTIONARY AND ALLOWED VALUES: {{create_the_metric_dictionary_and_source_of_truth_field_dictionary}}
3. OPERATING, PERMISSION, AND DECISION RULES: {{create_the_metric_dictionary_and_source_of_truth_operating_rules}}
4. APPROVAL CONTEXT, OWNERS, AND DEADLINES: {{create_the_metric_dictionary_and_source_of_truth_approval_context}}
5. PRIOR VERSION, SNAPSHOT, OR CURRENT STATE: {{create_the_metric_dictionary_and_source_of_truth_prior_version_or_state}}
Authoritative evidence may include scheduled channel extracts, HubSpot lifecycle and deal records, metric definitions, and connector-health logs.
WORK TO PERFORM
1. Execute the specific job described by “Create the metric dictionary and source-of-truth map”; do not broaden the task into a generic strategy exercise.
2. Use the canonical field names and IDs supplied in the inputs, especially reporting_period, source_system, metric_key, metric_value, currency, campaign_id.
3. Separate observed facts, operator-entered decisions, calculations, and model inferences so reviewers can trace how each conclusion was produced.
4. Return records that can be copied into the cross-channel performance reconciliation model without renaming identifiers or collapsing one-to-many relationships.
5. Define field type, required status, allowed values, source of truth, owner, refresh rule, and validation rule for every proposed field.
6. Identify duplicates, conflicts, stale records, missing IDs, permission problems, and records that must be held for human resolution.
7. Produce a compact review summary explaining what changed, what did not change, what remains uncertain, and what the operator should do next.
OUTPUT SCHEMA
Return valid JSON only, using this exact top-level structure:
{
"workflow_slug": "cross-channel-marketing-performance-reality-brief-agent",
"step_number": 2,
"step_title": "Create the metric dictionary and source-of-truth map",
"run_status": "pass|warning|hold|fail",
"source_records": [
{"source_id": "string", "source_type": "string", "captured_at": "ISO-8601|null", "authoritative": true, "notes": "string|null"}
],
"records": [
{"reporting_period": "value|null", "source_system": "value|null", "metric_key": "value|null", "metric_value": "value|null", "currency": "value|null", "campaign_id": "value|null", "contact_id": "value|null", "evidence_source_ids": ["string"], "confidence": "high|medium|low", "review_status": "approved|needs-review|held"}
],
"exceptions": [
{"record_id": "string|null", "exception_type": "string", "severity": "low|medium|high|critical", "evidence": "string", "owner": "string", "required_action": "string"}
],
"changes_from_prior_state": [
{"record_id": "string", "field": "string", "prior_value": "value|null", "proposed_value": "value|null", "reason": "string", "source_ids": ["string"]}
],
"review_summary": {"facts": ["string"], "inferences": ["string"], "open_questions": ["string"], "next_actions": [{"action": "string", "owner": "string", "due_date": "YYYY-MM-DD|null"}]},
"qa": {"schema_valid": true, "ids_preserved": true, "evidence_complete": true, "human_approval_required": true}
}
GUARDRAILS
- Treat the supplied field dictionary, permissions, approval matrix, and prior approved state as binding.
- Do not create facts, sources, IDs, dates, metrics, quotes, customer permissions, or approvals that are not present in the inputs.
- Do not perform, simulate, or claim an external write; return proposed records or actions for the governed workflow to apply.
- Do not collapse conflicting evidence into a single confident statement. Preserve the conflict and identify the required owner.
- hold the brief when definitions conflict, identifiers do not reconcile, or source freshness falls outside the approved reporting window.
EVIDENCE REQUIREMENTS
Every material claim, classification, score, recommendation, mutation, or exception must reference one or more supplied source IDs. Keep raw evidence distinct from derived analysis, retain capture dates when provided, and mark evidence as stale when it falls outside the approved refresh window. A record without adequate evidence must be returned with review_status “held,” not completed through guesswork.
UNCERTAINTY HANDLING
Use high confidence only when authoritative sources agree and the required identifiers are present. Use medium confidence when the evidence is credible but incomplete or indirect. Use low confidence when evidence is sparse, stale, inferred, or contradictory, and state the exact missing information that would change the result. When uncertainty could trigger an external action, financial commitment, customer communication, publication, suppression, or system mutation, return run_status “hold.”
HUMAN REVIEW
The marketing analytics lead and RevOps reviewer must review the JSON before any state change or external action. The approval gate is: marketing and RevOps sign off on metric definitions, reconciliation exceptions, and the publishability decision. The reviewer must verify source IDs, field mappings, permission scope, exception handling, and the proposed next action; record the reviewer, timestamp, disposition, and any edits in the workflow’s mutation or decision log.
Pro workflow preview
Previewing 2 of 12 steps
Pro membership
Unlock the full workflow
Get the remaining 10 steps, copy-paste prompts, pro tips, tool-by-tool setup guidance, and weekly new workflows.