Tutorial

Send form leads to Google Sheets and Slack with n8n

Updated October 5, 2026 · 7 min read · About 15 minutes to build

Some links on this page are affiliate links. If you sign up through them, I may earn a commission at no extra cost to you. It never changes what I recommend. How this works.

What you'll build

A three-step n8n workflow: someone fills in a form, their details are added as a new row in Google Sheets, and you get a Slack message straight away.

What you need

  • An n8n account. The cloud trial needs no card, or you can use a self-hosted copy.
  • A Google account with a new spreadsheet
  • A Slack workspace where you can add apps

Step 1: Set up the spreadsheet

Create a Google Sheet called Leads. In the first row, add these column headings: Date, Name, Email, Message. n8n uses this header row to match your form fields to columns.

Step 2: Add a form trigger

  1. In n8n, create a new workflow.
  2. Add the n8n Form Trigger node (search "form"). It gives you a hosted form with its own link, so you don't need a website form to start.
  3. Give the form a title, such as "Get in touch".
  4. Add three fields: Name (text, required), Email (email, required) and Message (textarea).
  5. Open the test URL, fill the form in once with sample details, and submit. n8n now has real data to work with in the next steps.

Already have a form on your site? You can swap this node for a Webhook node, or the trigger for your form tool, and keep the rest of the workflow the same.

Step 3: Add the row to Google Sheets

  1. Add a Google Sheets node after the trigger and choose the action that appends a row.
  2. Connect your Google account when asked.
  3. Pick your Leads spreadsheet and the sheet tab.
  4. Map the columns: drag Name, Email and Message from the form output into the matching columns. For Date, use the expression {{ $now.toFormat('yyyy-MM-dd HH:mm') }}.
  5. Run the node and check that a row appeared in your sheet.

Step 4: Send the Slack alert

  1. Add a Slack node after Google Sheets and choose the action that sends a message.
  2. Connect your Slack workspace and pick a channel, such as #leads, or send it to yourself.
  3. Write the message using fields from the form, for example:
    New lead: {{ $('n8n Form Trigger').item.json.Name }} ({{ $('n8n Form Trigger').item.json.Email }})
  4. Run the node and check Slack.

Tip: the easiest way to get the right field reference is to drag the field from the input panel into the message box. n8n writes the expression for you, using your node's actual name.

Step 5: Turn it on

Save the workflow and switch it to active. Use the form's production URL, not the test one, on your site, in your link-in-bio or in emails. Every submission now lands in your sheet and pings you in Slack.

Ideas to extend it

  • Add an If node to send only certain leads to Slack, such as those mentioning "quote" or "wholesale".
  • Add an email step that sends the person an instant "thanks, I'll reply within a day" message.
  • Add your email tool so leads join your newsletter list automatically.

Wondering whether n8n is the right tool for you at all? Read Make vs n8n. For a list of other jobs worth automating, see 10 automations every one-person business should run.