Read time :
A weekly marketing report in Slack that sales trusts too, written by Claude from Salesforce
A weekly marketing report both teams trust: Claude reads pipeline created and influenced, spend, CPL and closed deals from Salesforce, then posts to Slack.

Last updated: 20 October 2026
Twelve to 25 live campaigns. About 95% of leads arriving by phone. Four systems to reconcile by hand every week.
That was Derek Martin's job running marketing at Driver Defense Team, a traffic-law firm, before Heeet. Google Analytics, Google Ads, CallRail and Salesforce, stitched together to produce a number the partners wouldn't argue with. His summary of the old reports: "They're showing vanity metrics, and I wanted to show dollars." Afterwards the campaigns reported on themselves inside Salesforce and return on ad spend for paid search tripled. His other line in the case study is that knowing each campaign is net positive "truly helps you sleep better at night."
A weekly marketing report is the smallest version of Derek's job. Most of them die within a quarter. Some die from effort. In November 2025 a CMO at a Paris influencer-marketing platform told Thomas and Romain that three years of building the analysis by hand had stopped scaling once the company reached seven markets in five languages. Most die from the way sales reads them: as marketing's opinion about marketing. This play builds the version both teams read, because every one of its seven lines traces to a Salesforce record either team can open. Claude writes it. Slack carries it. It lands before the pipeline meeting, not after.
What do you need to run this play?
RevOps owns the definitions. Marketing ops runs it. Thirty minutes to set up, plus one meeting nobody will enjoy and everybody needs.
- Heeet installed, with paid connectors synced (cost refreshes hourly onto the Campaign) and journeys on records.
- Claude connected to Salesforce (Salesforce in Claude, or Claude Desktop or Claude Code with the Salesforce Hosted MCP server,
sobject-reads) and to Slack. A scheduled task in Claude handles the Monday run. The Heeet Analyst Agent can carry parts of it instead, from scheduled Salesforce reports straight to Slack. - One Slack channel where sales, marketing and finance already are.
What goes into the weekly marketing report?
Seven lines, each with a record behind it.
- Pipeline created this week, by first-touch channel and campaign, read from the Heeet first-touch fields on each new Opportunity.
- Pipeline influenced this week, by campaign: influences created this week on open Opportunities, with
Heeet_Campaign_Revenue_Influence__cfor context. - Spend this week by channel, from the hourly cost sync on the Campaign records.
- Cost per lead this week against the trailing four weeks, from
CPL__candNet_New_Leads__c. - The five campaigns with the most closed-won influence over 90 days, under two models: First Touch (closest to "sourced") and Linear ("influenced"). Heeet has written both on every Marketing Influence each night since 12 October 2026.
- Deals closed-won this week, each with its journey: first channel, marketing touches, sales touches, days from first touch to close.
- Data gaps: Leads created this week with no first-touch channel, Campaigns with cost and no members, and Opportunities won with zero influences.
Line 7 is the one that earns trust. A report that publishes its own blind spots gets believed on the other six.
Where each person sees it
| Who | Where they work | What Heeet gives them |
|---|---|---|
| RevOps or marketing ops | Claude, connected to Salesforce | Seven queries over Heeet's records, run the same way every Monday |
| CMO, CRO and finance | The pinned Slack post | Seven sentences, each with an owner and a record behind it |
| Anyone who disputes a line | The Salesforce record it links to | The Campaign, the Opportunity and its journey, open for checking |
| Marketing, mid-week | Salesforce and Slack | Analyst Agent alerts on CPL, CAC, budget depletion and conversion drops |
How do you build the weekly marketing report?
Step 1: agree the seven definitions with sales
Thirty minutes, once. "Pipeline created" means Opportunities created this week, not leads. "Sourced" means First Touch and "influenced" means Linear, both named in the header. "Closed-won" means stage, not forecast category. Write each rule into the prompt as a sentence, because the prompt is where the argument goes to die.
Definitions that live in a person's head don't scale to seven markets. Definitions in a prompt do.
Step 2: the prompt
Build this week's GTM digest for the week ending [date]. Sourced = Heeet's
First Touch revenue fields; influenced = Linear. Use only Salesforce
records; where a number cannot be traced to a record, write "not available"
rather than estimate.
1. Opportunities created this week with amount, grouped by Heeet first-touch
channel and campaign; total, and change against the trailing 4-week average.
2. Heeet influences created this week on open Opportunities, grouped by
campaign, with the pipeline amount they touch.
3. Campaign cost added this week by channel, from the Campaign records.
4. CPL__c and Net_New_Leads__c by channel this week against the trailing
4 weeks.
5. Top 5 Campaigns by closed-won revenue, trailing 90 days, once under First
Touch and once under Linear.
6. Opportunities closed-won this week: first-touch channel, count of marketing
influences, count of sales-driven influences, days from first influence to
close.
7. Leads created this week with a blank Heeet first-touch channel (count and
%), active Campaigns with cost and no members, and Opportunities closed-won
this week with zero influences.
Run get_object_schema on Heeet's influence object first so the field names
are right.Expected output: seven tables. Ugly, complete, and about to be turned into seven sentences.
Step 3: the narrative rules
Now write the digest. One line per metric: the number, the change, and one
sentence saying what someone should do about it, with the owner's name if a
campaign or a rep is involved. No adjectives. If line 7 shows a gap above 10%,
put it first.Step 4: post it
Post to the channel through the Slack connector, pin it, and put the two models and the coverage percentage from line 7 in the first line. Anyone who disputes a number gets the record, not a slide.
Step 5: schedule the run
Set a scheduled task in Claude for Monday at 08:00 that runs Steps 2 to 4. If you'd rather stay inside Salesforce, the Heeet Analyst Agent schedules summaries from Salesforce reports and posts them to Salesforce and Slack; lines 3 to 5 map onto it directly, while lines 6 and 7 need the cross-object query Claude gives you.
Step 6: let alerts carry the mid-week
The Analyst Agent's alerts on CPL, CAC, budget depletion and conversion rates fire when something moves. The digest then confirms on Monday what the alert flagged on Wednesday. Nobody needs a second weekly report.
What do you do when sales disagrees with a line?
Treat it as a definitions dispute, never a numbers dispute. If sales says a deal wasn't marketing-influenced, the question is which influence types count and over what window. The answer goes back into the prompt for the next run. Line 5 already shows "sourced" and "influenced" side by side, because Heeet stores both on every touch. Leave them there until the argument gets boring. Sara, business analyst and Salesforce admin at Nel, described the endpoint in the case study: "The fact that we trust our data, for me, is bigger than time savings." She also said that after almost six years in the job, it was the first time she trusted what she was putting out there.
Why do both teams trust it?
Traceability, then consistency. A number that links to a record can be checked by the person who doubts it. A report built by the same query every Monday stops being anyone's opinion after about four weeks. The single digest also beats ten alerts. The channel where every alert lands becomes the channel everyone mutes. A Monday post that people expect gets read.
How do you make it recurring?
Every Monday at 08:00. On the first Monday of the month, swap line 5 for the budget change log from Play 3. At quarter end, extend line 6 into the QBR number (Play 21). Once a quarter, delete one line nobody has reacted to in twelve weeks and see whether anyone notices.
Related
- Plays: Marketing budget allocation by cost per pipeline-influenced opportunity (Play 3) · Audit attribution hygiene before you connect any agent (Play 8) · Build the marketing QBR number Claude can defend (Play 21)
- Features: Analyst Agent · Advanced CPL and CAC analysis · Multi-touch tracking and attribution
- Reading: Prove marketing influence on revenue with attribution reports built by analyst agents · What is an analyst agent? · Driver Defense Team case study
FAQ
Can the Heeet Analyst Agent do this without Claude?
Most of it. It schedules summaries from Salesforce reports and posts them to Salesforce and Slack, which covers spend, CPL and campaign influence. The journey line and the data-gaps line need a cross-object query, which is what Claude adds.
Which attribution model should the digest use?
Two, named in the header every week: First Touch for what marketing sourced and Linear for what it influenced. Changing either silently is how a report loses the room.
Does sales need Heeet or Salesforce licences to read it?
No. It's a Slack post. The records it links to open for anyone with a Salesforce login and the right permissions.
How do I keep it to seven lines?
Delete before you add. If someone wants an eighth line, ask which of the seven it replaces.
Does this work on HubSpot?
The HubSpot version arrives in January 2027 with the HubSpot remote MCP server. The seven definitions don't change.
Other articles

Marketing Budget Allocation by Cost per Pipeline Opportunity
Marketing budget allocation on the right denominator: Claude reads campaign cost and pipeline from Salesforce, tests it under two models and writes the log.

Salesforce Attribution Audit Before You Connect Claude
A Salesforce attribution audit in seven Claude queries: missing first-touch data, campaigns without cost, UTM variants, blank domains, missing Contact Roles.

Content Attribution: Closed-Won Pages to an AirOps Brief
Content attribution in Salesforce shows which pages appear in closed-won journeys. Claude turns the gaps into five briefs and AirOps produces the drafts.
Ready to track prospects from lead to close with Heeet?
Heeet gives marketers and sales professionals at IT & Security firms turn geuss work intro informed decisions that drive revenue while meeting the same secruity technical standards you provide your clients.




