Weekly HubSpot pipeline health report in Slack

Every Monday at 9am, post a clear Slack summary of your open HubSpot deals, with a chart, the biggest risks, and what changed since last week.

Agentic Task
HubSpotDaytonaSlack BotSalesOperationsAI ReportsDaily Digests

Every Monday at 9am, post a sales pipeline health report to our team's Slack channel. This is an agent workflow because picking the top at-risk deals and writing the weekly commentary needs judgement on top of the raw numbers.

Pull our open deals from HubSpot using Search Deals, filtered to deals in our active sales pipelines and excluding anything already in closed-won or closed-lost stages. Include each deal's name, owner, amount, current stage, expected close date, and last activity date. Also call List Pipelines and Get Pipeline so the report uses real stage names and stage order, not internal IDs, and so the analysis can read each stage's probability for weighted pipeline value.

Spin up a fresh Daytona sandbox with Create Sandbox, then use Run Code in Sandbox to execute a Python script (pandas plus matplotlib) that computes: weighted pipeline value by stage (amount times stage probability), average days each deal has spent in its current stage, stuck deals with no activity in the last 14 days, and the week-over-week change in total pipeline value (compare to last week's snapshot, and persist this week's numbers so next week has a baseline). Render a single PNG chart of pipeline value by stage. Pull the chart out with Download File, then call Stop Sandbox so it does not sit on quota.

Post the report to our Slack sales channel as one message using Slack Bot's Send a Message, with the chart attached via Upload a File. Keep the Slack write-up tight so it reads cleanly on mobile: a one-line headline, the week-over-week pipeline value delta, the top five at-risk deals (name, owner, amount, days since last activity), and one or two sentences of commentary on what changed versus last week.

Make the Slack channel, the time of day, the at-risk threshold (default 14 days), and the pipelines or owners to include easy to change later. If HubSpot returns no open deals, post a short "no open deals to report this week" message instead of an empty chart.

Additional information

What does this prompt do?
  • Posts a fresh sales pipeline summary to your Slack channel every Monday at 9am
  • Attaches a chart of pipeline value by stage so you can see where the money is sitting
  • Calls out the top five at-risk deals with owner, amount, and days since last activity
  • Compares this week's pipeline to last week's so you know what moved, what stalled, and what slipped
What do I need to use this?
  • A HubSpot login that can see your team's deals and sales pipelines
  • A Slack workspace and a channel where the weekly report should post
  • A Daytona account, used to run the number crunching and render the chart
How can I customize it?
  • Change the day and time (ships as Monday 9am, but any cadence works)
  • Pick which Slack channel the report posts in, public or private
  • Adjust what counts as at risk (default is no activity in the last 14 days)
  • Filter to specific pipelines, deal owners, or deal amount ranges

Frequently asked questions

Will this work if my team uses HubSpot Free?
Yes. As long as you can see deals and pipelines in HubSpot, the report can be built. A few advanced filters depend on the properties your HubSpot plan exposes, but the core summary works on any tier.
Do I need to know Python to run this?
No. The agent writes the analysis for you and runs it inside a Daytona sandbox. You connect HubSpot, Slack, and Daytona once and the workflow handles the rest.
Can I send the report to a private Slack channel?
Yes. Pick any channel where the Slack app is a member, including private channels and team DMs.
How do I change which deals are counted?
Tell the workflow which pipelines, owners, or amount ranges to include. By default it focuses on open deals and skips anything already closed won or closed lost.
Does the Daytona sandbox stay running between weeks?
No. The workflow spins up a fresh sandbox each Monday, runs the analysis, downloads the chart, and shuts the sandbox down at the end so it does not sit on your quota.

Stop pulling pipeline reports together by hand on Sunday night.

Connect HubSpot, Daytona, and Slack once, and Geni runs this report for you every Monday morning.