All workflows
HubSpot logoSlack logo

Weekly HubSpot lead report to Slack

Every Monday, posts the week's new HubSpot leads to Slack: how many, how that compares to last week, and who they are.

Every Monday at 07:002 apps2 steps

Apps it connects

Authenticate each one once and the workflow is ready to run.

What it does

The integration steps this workflow runs, in the order it first runs them.

  1. 1HubSpotSearch contacts
  2. 2SlackSend message

How it works

Everything the template sets up, and what to fill in before the first run.

Every Monday at 7am, in your workspace's timezone, this workflow reads the week's new contacts out of HubSpot and posts a single readable report to Slack, so the team starts the week knowing whether the top of the funnel moved without anyone opening a dashboard.

The report leads with the number that matters: how many contacts were created in the last seven days, and whether that is up, down, or level on the week before. Under it sits the shape of that number, the split by lifecycle stage and by original source, then the newest leads named individually with their title, company, and email so a rep can pick one up straight away.

How it works: 1. A weekly schedule wakes the run on Monday morning. 2. HubSpot's contact search returns everything created in the last seven days, newest first. A second search covers the week before it and reads only its total, which is what the comparison is built from. 3. A code step turns those contacts into the body of the report: it drops duplicates, re-checks each contact's create date against the window, groups them by lifecycle stage and by original source, and writes out the newest ones by name. 4. The counts and the week-on-week change are worked out as their own steps, so they are readable and editable in the builder rather than buried in code. 5. Slack gets one message.

Before you run it, edit the three settings at the top: - slackChannelId: the channel to post to. The run stops with a message asking for it if you leave it empty, rather than posting nowhere. - leadLimit: how many contacts to pull back (500 by default, 2000 at most). The headline count comes from HubSpot's own total for the window, so it stays correct however many leads there were; this limit only bounds how many feed the breakdowns and the named list. When it bites, the report says so. - maxNamed: how many leads to name individually (12 by default). The rest are counted, not listed, so the message stays readable in Slack.

Connections needed: HubSpot and Slack. Connect HubSpot with a service key (Settings > Integrations > Service keys); an existing legacy private app token works too. This report only reads contacts, so crm.objects.contacts.read is the one scope it relies on. Each run is two HubSpot search steps and one Slack post. The first search pages through HubSpot 200 contacts at a time, so a 500-lead limit is at most three requests; the comparison search is always one.

Two things worth knowing. The window is counted back from the moment the run starts, not from midnight, so a run at Monday 7am covers the previous Monday 7am onward. And "new lead" here means a contact record created in HubSpot during the window, whatever its lifecycle stage; the stage split is what tells you how many of them were genuinely qualified. To report on a narrower set, add a lifecycle stage or lead status check to the code step's loop.

To change the cadence, edit the schedule at the top: a daily standup version is FREQ=DAILY with the same steps, and a month-in-review is FREQ=MONTHLY with both windows widened to 30 days.

hubspotslackcrmleadsreportingweeklypipeline

Start from a workflow that already works.

Add "Weekly HubSpot lead report to Slack" to your workspace, connect its apps, and make it yours. No credit card required.

Free plan available · No credit card required