Reporting and budget

Read time : 

8
 mins

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.

By

•
October 27, 2026
Flowchart: Salesforce pipeline and Heeet attribution become a weekly Claude report in 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.

  1. Pipeline created this week, by first-touch channel and campaign, read from the Heeet first-touch fields on each new Opportunity.
  2. Pipeline influenced this week, by campaign: influences created this week on open Opportunities, with Heeet_Campaign_Revenue_Influence__c for context.
  3. Spend this week by channel, from the hourly cost sync on the Campaign records.
  4. Cost per lead this week against the trailing four weeks, from CPL__c and Net_New_Leads__c.
  5. 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.
  6. Deals closed-won this week, each with its journey: first channel, marketing touches, sales touches, days from first touch to close.
  7. 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

WhoWhere they workWhat Heeet gives them
RevOps or marketing opsClaude, connected to SalesforceSeven queries over Heeet's records, run the same way every Monday
CMO, CRO and financeThe pinned Slack postSeven sentences, each with an owner and a record behind it
Anyone who disputes a lineThe Salesforce record it links toThe Campaign, the Opportunity and its journey, open for checking
Marketing, mid-weekSalesforce and SlackAnalyst 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

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.

Want a Monday report nobody argues with?

Heeet puts campaign cost, pipeline influence and closed-won revenue on the Salesforce records, so every line in the digest has a source sales can open.

Book a demo

Summary

Talk to us

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.

Talk to us