Lead Generation · n8n

Capture Every New Lead Automatically Into Google Sheets

Instantly log every new lead from any web form or CRM into a Google Sheet the moment it arrives. No manual data entry, no missed leads — your sales team always has an up-to-date list.

difficulty Beginnersetup 30 minresult Every new lead submitted via your form or tool is automatically appended as a new row in your Google Sheet with name, email, phone, and source.
  1. 1

    Set up the Webhook trigger to receive leads

    Add a Webhook node as the first node. Set HTTP Method to POST. Copy the generated webhook URL — you will paste this into your lead form, landing page tool (e.g. Typeform, Unbounce), or CRM webhook settings. The node listens for incoming lead payloads in real time.

  2. 2

    Extract and clean the lead fields

    Add a Set node after the Webhook. Create four fields: name mapped to {{ $json.body.name }}, email mapped to {{ $json.body.email }}, phone mapped to {{ $json.body.phone }}, and source mapped to {{ $json.body.source }}. Adjust the field paths to match whatever keys your form sends. This step standardises the data before it reaches Sheets.

  3. 3

    Check that the email field is not empty

    Add an IF node. Set the condition: {{ $json.email }} is not empty. Route the TRUE branch onward. The FALSE branch can be left unconnected to silently discard incomplete submissions. This prevents blank rows from cluttering your Sheet.

  4. 4

    Append the lead as a new row in Google Sheets

    Add a Google Sheets node on the TRUE branch. Set Operation to Append. Choose your Spreadsheet and the Sheet tab where leads should go. Map the columns: Column A to {{ $json.name }}, Column B to {{ $json.email }}, Column C to {{ $json.phone }}, Column D to {{ $json.source }}. Add a Timestamp column mapped to {{ $now }} if you want arrival time recorded. Connect your Google account via OAuth2 in the credentials panel.

Frequently asked questions

Which form builders work with this webhook?

Any tool that can send a webhook POST request works — including Typeform, Tally, Webflow Forms, Unbounce, HubSpot, and custom HTML forms. Just paste the n8n webhook URL into the tool's webhook or integration settings.

How do I make sure the column names in my Sheet match?

Create a header row in your Google Sheet manually (Row 1) with the exact column names you want: Name, Email, Phone, Source, Timestamp. The Google Sheets node will append data starting from Row 2 automatically.

Can I add a notification to Slack or email when a new lead arrives?

Yes. After the Google Sheets node, add a fifth node such as `Gmail` or `Slack` to send an alert. Keep it simple — send the lead's name and email in the message body so your sales rep can follow up immediately.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.