# Capture website leads to HubSpot or Google Sheets with Slack: n8n workflow

> Started by another system calling it, and works across Google Sheets, HubSpot and Slack. 24 steps, 5 branches: large, and worth reading before you trust it...

Source: https://millionrounds.com/workflow/capture-website-leads-to-hubspot-or-google-sheets-with-slack (Millionrounds; every figure on the page links to its filing or article)

[Automation library](https://millionrounds.com/workflows) · [Lead generation](https://millionrounds.com/workflows?category=Lead+generation#library)

# Capture website leads to HubSpot or Google Sheets with Slack

Started by another system calling it, and works across Google Sheets, HubSpot and Slack. 24 steps, 5 branches: large, and worth reading before you trust it with anything live.

Large

[Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fcapture-website-leads-to-hubspot-or-google-sheets-with-slack)

**24 steps** Large: read it before trusting it with anything live

**5** Branches: places the flow splits

**0** Loops or waits

**3** Services it connects to

## The flow

Starts it 6 Logic 11 Service 7

The steps in the order they run, from what starts it.

- 1 **Webhook Trigger** Webhook *Starts it*
- 2 **Parse Webhook body** Code *Logic*
- 3 **Normalize leads** Set *Logic*
- 4 **Code - Validate Lead** Code *Logic*
- 5 **IF node, Is Valid?** If *Logic*
- 6 **IF node, Enrichment enabled?** If *Logic*
- 7 **Respond to Webhook, 400 Bad Request (invalid path)** Respond To Webhook *Starts it*
- 8 **Set - Snapshot data** Set *Logic*
- 9 **HTTP Request - Enrich (Optional)** Http Request *Service*
- 10 **Set - Merge Enrichment into lead** Set *Logic*
- 11 **Merge** Merge *Logic*
- 12 **Switch - Choose destination (Sheets vs HubSpot)** Switch *Logic*
- 13 **Google Sheets- Lookup by email** Google Sheets *Service*
- 14 **Hubspot - Create/Update contacts** Hubspot *Service*
- 15 **IF - Sheets update Failed?** If *Logic*
- 16 **IF - HubSpot Failed?** If *Logic*
- 17 **Slack - update failed** Slack *Service*
- 18 **Slack - Successfully updated** Slack *Service*
- 19 **Slack - HubSpot update failed** Slack *Service*
- 20 **Slack - HubSpot Successfully updated** Slack *Service*
- 21 **Respond to Webhook - 500 - Sheets** Respond To Webhook *Starts it*
- 22 **Respond to Webhook - 200 - Sheets** Respond To Webhook *Starts it*
- 23 **Respond to Webhook - 500 - HubSpot** Respond To Webhook *Starts it*
- 24 **Respond to Webhook - 200 - HubSpot** Respond To Webhook *Starts it*

## How it's built

- **Starts on:** Another system calling it
- **Steps:** 24, with 5 branches
- **Size:** Large: read it before trusting it with anything live
- **Connects to:** Google Sheets, HubSpot, Slack
- **Model:** None. This is plumbing, not judgement

## Questions

What does it need to run?

An n8n account, plus your own Google Sheets, HubSpot and Slack accounts. You connect your own accounts after importing it; none are included.

What starts it?

It starts on another system calling it.

Does it use AI?

No. Every step is fixed logic or a call to a service, so it does the same thing every time.

How long does it take to set up?

Take your time. At 24 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

**Before you run it**

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 24 steps before you point it at anything that matters.

## Run it in n8n

- **Create your n8n account** Free to start. n8n is where the workflow runs. [Create an n8n account ↗](https://millionrounds.com/n8n)
- **Download the workflow** Free with a Millionrounds account. [Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fcapture-website-leads-to-hubspot-or-google-sheets-with-slack)
- **Paste it into n8n** Open a new workflow in n8n and paste. Then connect your own accounts.

Stored with the author's traces removed: canvas notes, instance identifiers, saved credential names and any live document they had left behind.

## Connects to

Each opens the other workflows that use it.

[Google Sheets](https://millionrounds.com/workflows?service=Google+Sheets#library)[HubSpot](https://millionrounds.com/workflows?service=HubSpot#library)[Slack](https://millionrounds.com/workflows?service=Slack#library)

## Workflows like it

Also lead generation, with the same services where possible, closest in size first.

- [**Generate and qualify LinkedIn leads with Apify and Clearbit** 24 steps · Airtable, Gmail](https://millionrounds.com/workflow/generate-and-qualify-linkedin-leads-with-apify-and-clearbit)
- [**Qualify Facebook leads with ElevenLabs and Supabase** 24 steps · Gmail, Slack](https://millionrounds.com/workflow/qualify-facebook-leads-with-elevenlabs-and-supabase)
- [**Real-time lead response across social channels with Llama** 24 steps · Gmail, Google Sheets](https://millionrounds.com/workflow/real-time-lead-response-across-social-channels-with-llama)
- [**AI-powered Google Maps business scraper with OpenRouter** 24 steps · calls a model · Google Sheets](https://millionrounds.com/workflow/ai-powered-google-maps-business-scraper-with-openrouter)
- [**Automate lead enrichment & personalized outreach with HubSpot** 24 steps · calls a model · Gmail, Google Sheets](https://millionrounds.com/workflow/automate-lead-enrichment-and-personalized-outreach-with-hubs)
- [**Digitize business cards with Thai OCR** 24 steps · calls a model · Gmail, Google Sheets](https://millionrounds.com/workflow/digitize-business-cards-with-thai-ocr)
