This workflow corresponds to n8n.io template #8970 — we link there as the canonical source.
This workflow follows the HubSpot → Slack recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "99d822b5-2f86-4dee-94f2-8e0948a8d93e",
"name": "Get all contacts",
"type": "n8n-nodes-base.hubspot",
"position": [
656,
192
],
"parameters": {
"operation": "getAll",
"returnAll": true,
"authentication": "oAuth2",
"additionalFields": {
"propertiesCollection": {
"propertiesValues": {
"properties": [
"hs_v2_date_entered_lead"
],
"propertyMode": "valueOnly"
}
}
}
},
"credentials": {
"hubspotOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "bad7066e-ec34-495d-a83a-ab88afef0b98",
"name": "Filter leads added last week",
"type": "n8n-nodes-base.filter",
"position": [
880,
192
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fd0fe4fb-9957-4ba0-9fc8-2eaccb02ef5e",
"operator": {
"type": "dateTime",
"operation": "before"
},
"leftValue": "={{ $json.properties.hs_v2_date_entered_lead.value.toDateTime('ms') }}",
"rightValue": "={{ $today }}"
},
{
"id": "31eeb628-0bdf-4fa5-be83-05eb496c7d85",
"operator": {
"type": "dateTime",
"operation": "after"
},
"leftValue": "={{ $json.properties.hs_v2_date_entered_lead.value.toDateTime('ms') }}",
"rightValue": "={{ $today.minus(7, 'days') }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "ec02e91b-4f2e-4112-8a4f-0c6e3f8d43f4",
"name": "Count leads",
"type": "n8n-nodes-base.summarize",
"position": [
1104,
192
],
"parameters": {
"options": {},
"fieldsToSummarize": {
"values": [
{
"field": "vid"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "b3763fb5-90aa-44f4-80e0-cdb4e068bf13",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-208,
16
],
"parameters": {
"color": 5,
"width": 512,
"height": 528,
"content": "## Weekly HubSpot \u201cNew Leads\u201d \u2192 Slack\n\n### How it works\n1. **Schedule** runs weekly.\n2. **HubSpot (contacts):** fetch all contacts.\n3. **Filter:** `hs_v2_date_entered_lead` within last 7 days.\n4. **Count** the leads.\n5. **Slack:** post \u201cLast week we generated X leads.\u201d\n6. *(Optional)* **Deals branch:** filter **Closed Won** last week and sum value.\n\n### Setup\n* [ ] Connect **HubSpot** (contacts & deals if using the optional branch)\n* [ ] Connect **Slack** and pick a channel\n* [ ] Set the weekly day/time on **Schedule Trigger**\n\n### Customize\n* **Lifecycle Stage:** switch to other lifecycle properties or custom fields.\n* **Slack Message:** add emojis, include the optional deals total, or mention owners.\n* **Deals:** sum a monetary field (e.g., `amount`) and include currency in the Slack text."
},
"typeVersion": 1
},
{
"id": "f4572a98-acc0-4ca8-b777-e8632ab28729",
"name": "Send report to a Slack channel",
"type": "n8n-nodes-base.slack",
"position": [
1312,
192
],
"parameters": {
"text": "=Last week we generated a total of {{ $json.count_vid }} leads.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "="
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "b3f3fe78-6d15-43b7-a633-33d58a30ca16",
"name": "Schedule the report",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
432,
192
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
1
],
"triggerAtHour": 7
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ca6981d1-1741-4adc-a4d7-302375a0692c",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
624,
432
],
"parameters": {
"color": 7,
"width": 656,
"height": 240,
"content": "You can use this for deals too"
},
"typeVersion": 1
},
{
"id": "fee5c81d-5b90-4725-82da-c6130dbb3863",
"name": "Get all deals",
"type": "n8n-nodes-base.hubspot",
"disabled": true,
"position": [
656,
496
],
"parameters": {
"filters": {
"properties": [
"hs_is_closed_won",
"hs_closed_won_date"
]
},
"resource": "deal",
"operation": "getAll",
"returnAll": true,
"authentication": "oAuth2"
},
"typeVersion": 2.1
},
{
"id": "91303c21-d105-4b2d-afe2-682e13091100",
"name": "Filter won deals last week",
"type": "n8n-nodes-base.filter",
"position": [
880,
496
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "31eeb628-0bdf-4fa5-be83-05eb496c7d85",
"operator": {
"type": "dateTime",
"operation": "after"
},
"leftValue": "={{ $json.properties.hs_closed_won_date.value.toDateTime('ms') }}",
"rightValue": "={{ $today.minus(7, 'days')}}"
},
{
"id": "2fc45c0d-c105-4ada-ad35-9336507757cf",
"operator": {
"type": "dateTime",
"operation": "before"
},
"leftValue": "={{ $json.properties.hs_closed_won_date.value.toDateTime('ms') }}",
"rightValue": "={{ $today }}"
},
{
"id": "9be6ae28-501d-457b-a80c-aedd051c3a05",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.hs_is_closed_won.value }}",
"rightValue": "true"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "6df7a16f-a3ae-4428-b900-2604f142d252",
"name": "Sum deal value",
"type": "n8n-nodes-base.summarize",
"position": [
1104,
496
],
"parameters": {
"options": {},
"fieldsToSummarize": {
"values": [
{
"field": "vid",
"aggregation": "sum"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "fb9890a6-e524-44dd-84c5-ae25815df9e6",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
144
],
"parameters": {
"color": 7,
"width": 1120,
"height": 224,
"content": ""
},
"typeVersion": 1
}
],
"connections": {
"Count leads": {
"main": [
[
{
"node": "Send report to a Slack channel",
"type": "main",
"index": 0
}
]
]
},
"Get all deals": {
"main": [
[
{
"node": "Filter won deals last week",
"type": "main",
"index": 0
}
]
]
},
"Get all contacts": {
"main": [
[
{
"node": "Filter leads added last week",
"type": "main",
"index": 0
}
]
]
},
"Schedule the report": {
"main": [
[
{
"node": "Get all contacts",
"type": "main",
"index": 0
}
]
]
},
"Filter won deals last week": {
"main": [
[
{
"node": "Sum deal value",
"type": "main",
"index": 0
}
]
]
},
"Filter leads added last week": {
"main": [
[
{
"node": "Count leads",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
hubspotOAuth2ApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n template posts a quick weekly snapshot to Slack so your team sees last week’s funnel movement at a glance. It counts how many contacts entered the Lead stage in the past week—and optionally reports closed-won deals from the same period.
Source: https://n8n.io/workflows/8970/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
When tracking your contacts and leads in Hubspot CRM, every new contact might be a potential customer. To guarantee that you're keeping the overview you'd normally need to look at every new lead that
Automate your lead qualification pipeline — capture Typeform Webhook leads, enrich with APIs, score intelligently, and route to HubSpot, Slack, and Sheets in real-time.
*Smartlead to HubSpot Performance Analytics A streamlined workflow to analyze your Smartlead performance metrics by tracking lifecycle stages in HubSpot and generating automated reports.*
How it works This Lead Capture & Auto-Qualification workflow transforms raw leads into qualified prospects through intelligent automation. Here's the high-level flow: Lead Intake → Data Validation → E
This project automates the process of collecting and managing new leads submitted through a web form. It eliminates the need for manual data entry and ensures that each lead is: Properly recorded and