How to send a Salesforce report to Slack every week

Salesforce can email a report on a weekly schedule, but posting it in a Slack channel with a written summary of what changed since last week takes an AI marketer that runs the report, compares it with the week before, finds the records behind each change, and posts the summary on your schedule.

Part of Get a weekly marketing report in Slack

Key Takeaways

  1. Salesforce's report subscriptions email a report on a daily, weekly, or monthly schedule. Getting that report into a Slack channel usually means forwarding the email to the channel or building an automation in a tool like Zapier.
  2. Either route delivers the report's numbers, but neither one tells the team what changed since last week or which records caused the change.
  3. Kite runs your existing Salesforce report, so the figures in Slack match the figures your team sees in Salesforce. Then it runs the same report for the previous week and compares the two.
  4. For every change worth mentioning, Kite looks up the opportunities, leads, or campaigns behind it and names them, so the post explains the numbers instead of just repeating them.
  5. The report runs as a recurring workflow that posts to the Slack channel you choose, and anyone can @mention Kite in the post's thread to ask a follow-up question.
On this page

How do I get a Salesforce report posted in Slack every week?

The simplest way to get a Salesforce report into Slack every week is to have it run on a schedule and post a short written summary to a channel, with a link back to the full report. Salesforce gets you partway there on its own. From any report in Lightning Experience, you can click Subscribe, pick a weekly day and time, and add recipients, and Salesforce emails the report to them on that schedule. You can also add conditions so the email only goes out when a number crosses a threshold, such as pipeline created this week falling below a target.

That email lands in inboxes, not in Slack. Teams that want it in a channel usually take one of two routes. On paid Slack plans, each channel can have its own email address, so you can forward the subscription email to that address and the report arrives in the channel as a forwarded email. Or you can build a scheduled automation in Zapier or Make that pulls the report and posts a message. Salesforce's own Slack apps help with sharing individual records and getting alerts when a record changes, and depending on your edition and setup they may also share report links into a channel.

All of these routes move the report. None of them reads it. The team still has to open the numbers, remember what they were last week, and work out why they moved. That's the part people skip, which is why a weekly report often gets posted and ignored.

A good weekly Salesforce post answers a few questions in under a minute:

  • What do this week's numbers say, compared with last week's?
  • Which changes are large enough to matter, and which are noise?
  • Which specific opportunities, leads, or campaigns caused those changes?
  • Is anything in the data wrong or missing, and what should someone do about it?

Kite does this work for you. It runs your Salesforce report, compares it with the previous week, finds the records behind the changes, and posts the summary to Slack on your schedule.

How to get started

Start by telling Kite which report you want and where it should go:

"Every Monday at 8, post our Pipeline Created by Source report in #revenue and tell us what changed from last week."

Kite is an AI marketer. It researches your business, builds a growth strategy, and ships the work that brings you new customers. Because it already knows your goals, your channels, and the marketing it has shipped, it can tell which figures in the report matter most to you and lead with those. If you'd like it to watch a particular number, such as the share of pipeline coming from paid search, say so in your request.

The quickest way to point Kite at the right report is to paste the report's link from Salesforce, because the link contains the report's ID. You can also give the report's name, and Kite looks for it among your Salesforce reports. Salesforce's report list only shows reports the connected user has opened recently, so the link is more dependable for a report that user hasn't viewed in a while.

You'll need to connect your Salesforce account through OAuth so Kite can run the report and read the records behind it. Kite sees what that Salesforce user can see, so connect an account that has access to the report and its data. You can work with Kite in your browser or in Slack, and to receive the report in a Slack channel, add Kite to Slack. Kite joins a public channel on its own, but someone needs to invite it to a private channel first.

The report only reads Salesforce and posts to your own channel, so Kite sets it up as soon as you've agreed on it. It tells you the schedule, the timezone, and when the first post will arrive. If you'd like to see a sample before then, ask Kite to run it once right away.

How Kite sends a Salesforce report to Slack every week

Which report, and what does it measure?

Kite starts by running the report once and reading how it's built, so it understands what each number means before it writes about any of them. A Salesforce report run returns its columns, its groupings, its filters, and its date range along with the totals. That tells Kite whether the report is grouped by lead source, by stage, by owner, or by campaign, and whether it covers a moving window like "This week" or a fixed set of records like all open opportunities.

This matters because the two kinds of report need different comparisons. A report filtered to a date range, such as opportunities created this week, can be compared with the previous week directly. A report that shows the current state of things, such as open pipeline by stage, can't be rerun for last week, because the records have changed since then.

Running this week's report

Each week, Kite runs the report exactly as it's saved in Salesforce, so the numbers in Slack match what anyone on your team sees when they open it. Kite reads the report's grand totals and the subtotal for each grouping, such as the total amount and record count for each lead source or each stage.

For a large report, Kite runs it in the background in Salesforce and collects the results when the run finishes. Salesforce returns at most 2,000 detail rows from a report run, so Kite relies on the report's own totals and subtotals for the headline figures and uses direct queries when it needs to look at individual records.

Comparing it with last week

Kite compares this week with last week using the method that fits the report. When the report is filtered to a date range, Kite runs the same report again with the date range moved back one week. It changes that date range for that one run only and leaves your saved report untouched. Both weeks then come from the same filters, groupings, and definitions, so the comparison is fair.

When the report shows a current snapshot, Kite reads last week's post in the Slack channel and compares this week's figures with the ones it reported then. Either way, Kite calculates the change for every total and subtotal and decides which ones are worth mentioning. A swing in a group with three records isn't a trend, and a small change in a big number can matter more than a large change in a small one. Kite leads with the changes that would change what someone on your team does this week.

Finding the records behind each change

The most useful part of the post is the explanation, and Kite builds it from your Salesforce records rather than from guesses. For each change worth mentioning, it queries the objects underneath the report.

For pipeline reports, Kite reads opportunities, including the opportunity name, account, amount, stage, close date, owner, lead source, and created date. It also reads opportunity history, which records every change to an opportunity's stage, amount, and close date. That lets it say which deals moved forward, which closed won or lost, which had their amount cut, and which had their close date pushed into next month.

For lead reports, Kite reads leads, including the lead source, status, owner, company, and created date. For campaign reports, it reads your campaigns and their campaign members, so it can see which campaign a new lead or opportunity responded to. When Kite shipped the marketing behind a change, such as a landing page or an email, it says so. That turns "pipeline from paid search fell by a third" into a sentence that names the two opportunities that slipped and the campaign that stopped running.

Kite keeps what the records show separate from what it infers. When a cause is likely but not proven, the post presents it as a likely explanation.

Checking the data before anyone reads it

Kite checks for the ordinary record problems that make a Salesforce report misleading, and it lists them in the post instead of quietly working around them. These include:

  • Open opportunities with no amount
  • Open opportunities whose close date has already passed
  • New leads with no owner or no lead source
  • A sudden jump in leads that came from a single import

When you ask, Kite can fix what it can confirm in Salesforce, such as filling in a missing lead source, or create a task for the opportunity owner to update a stale close date.

Posting the summary to Slack

Kite writes the summary to be read in under a minute and posts it to the channel you chose, as a recurring workflow on your schedule and in your timezone. The headline figures and their changes come first, then the records behind them, then anything that needs attention. Each post links to the report in Salesforce for anyone who wants the full view.

Each week's run starts fresh, runs the report again, and posts a new summary. When someone has a question, they can @mention Kite in the post's thread, for example to ask which opportunities from last week's webinar are still open, and Kite answers there. When the analysis needs more room than a Slack message, Kite can publish a hosted report with charts and tables and link to it from the post.

What the finished work contains

Every week, your Slack channel gets one short post built from your own Salesforce report, which the whole team can read without opening Salesforce.

The headline figures

The report's main totals for this week, each shown next to last week's figure and the change between them.

The changes that matter

The two or three movements in the report's groupings that are large enough to act on, such as one lead source falling off or one stage piling up.

The records behind them

The specific opportunities, leads, and campaigns that explain each change, with their amounts, owners, and what happened to them during the week.

Data that needs attention

Opportunities missing an amount or past their close date, leads with no owner or source, and anything else that distorts the totals.

A link to the report

A direct link to the report in Salesforce, plus a link to a hosted report with charts when the week calls for one.

Common questions

Can Salesforce post a report to Slack on its own?

Not directly in most setups. Salesforce report subscriptions send email, so the common workaround is to forward the subscription email to a Slack channel's email address, which Slack offers on its paid plans. The report then arrives in the channel as a forwarded email with the numbers but no explanation of what changed.

Does Kite change my Salesforce report or records?

No. Running the report and reading opportunities, leads, and campaigns doesn't change anything in Salesforce, and when Kite moves the date range back to get last week's figures, it does so for that run only. In this weekly report, Kite changes records only when you ask it to, such as filling in a missing lead source.

Which Salesforce edition do I need?

Kite works through Salesforce's API, which is included in Enterprise, Unlimited, and Performance editions. On Professional Edition, API access is usually an add-on, so check with your Salesforce admin before you connect.

Can Kite send a Salesforce dashboard instead of a single report?

Yes. Kite reads the dashboard's components and filters, finds the report behind each component, and runs those reports. The weekly post then covers the dashboard's figures the same way it covers a single report.

What if my team doesn't use Slack?

The weekly report works without Slack. For a team that hasn't added Kite to Slack, Kite emails each week's summary from your team's Kite address to the person who set it up, and replying to the email continues the conversation. You can also keep the report in the Kite web app, where each run appears as its own conversation.

Questions this page answers

  • How do I get a Salesforce report posted in Slack every week?
  • How can I use an AI marketing agent to send a Salesforce report to Slack every week?

Related use cases

1 more coming soon
  • Marketing influenced pipeline

About the author

Devon Wells leads product marketing at Kite, the AI marketer. He spent a decade marketing industrial AI, from self-driving trucks to computer vision, but now Kite handles most of the work itself.

Tell me your goal and I’ll get to work.

Get started for free