Your First n8n Workflow: Complete Beginner Tutorial

If you're tired of manually copying data between apps or spending hours on repetitive tasks, n8n is about to change your life. This powerful automation platform lets you connect any app to any other app, without writing a single line of code (unless you want to).

In this tutorial, I'll walk you through building your very first n8n workflow from scratch. By the end, you'll have a working automation that captures form submissions and sends them to both Google Sheets and Slack.

πŸ“– Reading time: 10 minutes

What you'll learn:

  • How to set up n8n (cloud or self-hosted)
  • Understanding n8n's visual workflow builder
  • Building a practical automation step-by-step
  • Testing and deploying your workflow
  • Common mistakes and how to avoid them

Let's dive in.

What is n8n?

n8n is an open-source workflow automation tool that connects your apps and services. Think of it as the glue between all your business toolsβ€”CRM, email, databases, spreadsheets, messaging apps, and more.

Why n8n stands out:

  • Fair-code licensed - You can see and modify the source code
  • Self-hostable - Run it on your own server for unlimited executions
  • 300+ integrations - Connect to virtually any app
  • Visual workflow builder - Drag-and-drop interface
  • Powerful features - Advanced logic, data transformation, error handling

Who should use n8n:

  • Technical teams who want full control
  • Agencies building automations for multiple clients
  • Businesses hitting execution limits on Zapier or Make
  • Anyone who wants to learn real automation skills

Prerequisites

Before we start building, you'll need:

1. An n8n account Choose one:

  • n8n Cloud (recommended for beginners) - Sign up at n8n.io
  • Self-hosted - Install on DigitalOcean, AWS, or your own server

2. A Google account (for Google Sheets integration)

3. A Slack workspace (optional, but recommended)

4. 30 minutes to follow along

Note: This tutorial uses n8n Cloud, but the workflow works identically on self-hosted instances.

Understanding n8n's Interface

When you first open n8n, you'll see the workflow canvasβ€”a blank space where you'll build your automation.

Key interface elements:

Workflow Canvas - The main area where you drag and drop nodes

Node Panel (left side) - Browse available integrations and tools

Execution Panel (right side) - See your workflow run in real-time

Top Toolbar - Save, execute, and configure your workflow

Nodes - Individual building blocks (triggers, actions, logic)

What are Nodes?

Nodes are the building blocks of n8n workflows. Each node represents one action:

  • Trigger nodes - Start the workflow (form submission, schedule, webhook)
  • Action nodes - Perform tasks (send email, add to database, create ticket)
  • Logic nodes - Make decisions (if/then, switch, merge)
  • Function nodes - Transform data (code, set values, aggregate)

Think of nodes like LEGO blocksβ€”you connect them to build complex automations.

Building Your First Workflow

We're building a lead capture automation that:

  1. Receives form submissions via webhook
  2. Adds the data to Google Sheets
  3. Sends a notification to Slack

This is a real-world workflow used by thousands of businesses.

Step 1: Create a New Workflow

  1. Click "New Workflow" in the top-left corner
  2. You'll see a blank canvas
  3. Click "Add first step" in the center

That's itβ€”you're ready to build!

Step 2: Add a Webhook Trigger

A webhook is a URL that receives data from external sources (like web forms, apps, or services).

To add a webhook:

  1. In the node selection panel, search for "Webhook"
  2. Click "Webhook" to add it to your canvas
  3. The Webhook node will appear

Configure the webhook:

  1. Click on the Webhook node to open its settings
  2. Under "HTTP Method", select POST
  3. Under "Path", enter: form-submission
  4. Click "Execute Node" to generate your webhook URL

Your webhook URL will look like:

https://your-instance.app.n8n.cloud/webhook/form-submission

Copy this URL - you'll use it to send test data.

Step 3: Send Test Data

Before connecting more nodes, let's test the webhook with sample data.

Using a tool like Postman or curl:

bash

curl -X POST https://your-webhook-url \
  -H "Content-Type: application/json" \
  -d '{
    "name": "John Doe",
    "email": "john@example.com",
    "company": "Acme Corp",
    "message": "Interested in your services"
  }'

Or use the built-in test:

  1. Click "Listen for Test Event" in the Webhook node
  2. Use a form builder (Typeform, Google Forms, or a simple HTML form) to send data to your webhook URL
  3. Submit the form

You should see the data appear in n8n! This confirms your webhook is working.

Step 4: Add Google Sheets Node

Now we'll save this data to a spreadsheet.

Preparation:

  1. Create a new Google Sheet named "Leads"
  2. Add these column headers in row 1: Name, Email, Company, Message, Timestamp

Add the node:

  1. Click the "+" button on your Webhook node
  2. Search for "Google Sheets"
  3. Select "Google Sheets"

Configure the node:

  1. Under "Credential to connect with", click "Create New"
  2. Click "Connect to Google" and authorize n8n
  3. Under "Operation", select "Append"
  4. Under "Document", search for your "Leads" spreadsheet
  5. Under "Sheet", select "Sheet1"

Map the data:

Now we need to tell n8n which data goes into which column.

Click "Add Column" for each field:

Column 1:

  • Column: Name
  • Value: Click the input field β†’ Select {{ $json.name }}

Column 2:

  • Column: Email
  • Value: {{ $json.email }}

Column 3:

  • Column: Company
  • Value: {{ $json.company }}

Column 4:

  • Column: Message
  • Value: {{ $json.message }}

Column 5:

  • Column: Timestamp
  • Value: {{ $now }}

What's {{ $json.name }}?

This is n8n's expression syntax. It pulls data from the previous node (the webhook) and inserts it into the spreadsheet. The {{ }} brackets tell n8n "this is dynamic data, not plain text."

Step 5: Add Slack Notification

Let's send a notification to your team when a new lead comes in.

Preparation:

  1. Make sure you have a Slack workspace
  2. Create a channel called #leads (or use an existing channel)

Add the node:

  1. Click the "+" button on your Google Sheets node
  2. Search for "Slack"
  3. Select "Slack"

Configure the node:

  1. Under "Credential to connect with", click "Create New"
  2. Click "Connect to Slack" and authorize n8n
  3. Under "Operation", select "Send Message"
  4. Under "Channel", select #leads

Write your message:

In the "Text" field, write:

New lead captured!

Name: {{ $json.name }}
Email: {{ $json.email }}
Company: {{ $json.company }}
Message: {{ $json.message }}

Added to Google Sheets βœ“

This creates a formatted Slack message with all the lead details.

Step 6: Test Your Complete Workflow

Now let's test the entire automation end-to-end.

  1. Click "Execute Workflow" (top right)
  2. Send another test form submission
  3. Watch the execution flow through each node

You should see:

  • Webhook receives the data βœ“
  • Google Sheets adds a new row βœ“
  • Slack sends a notification βœ“

Check your results:

  • Open your Google Sheet - new row should appear
  • Check your Slack channel - notification should arrive

If something fails:

  • Click on the failed node to see the error
  • Most common issues: incorrect field names, missing credentials, wrong data format

Step 7: Activate Your Workflow

Your workflow is built and tested! Now let's make it live.

To activate:

  1. Give your workflow a name: "Lead Capture Automation"
  2. Click "Save" (top right)
  3. Toggle the "Active" switch to ON

Your workflow is now running 24/7!

Any form submission to your webhook URL will automatically:

  • Save to Google Sheets
  • Send to Slack
  • All without you lifting a finger

What You Just Built

Congratulations! You just created a real automation that many businesses pay thousands of dollars for.

Your workflow:

  • Captures leads from any source
  • Stores them in a organized spreadsheet
  • Notifies your team instantly
  • Runs automatically, forever

Time saved: If this captures 50 leads/month, you're saving ~2 hours of manual data entry.

Common Mistakes to Avoid

1. Not testing before activating Always send test data through your workflow before turning it on. Catch errors early.

2. Forgetting to map all fields Double-check that every piece of data you want is mapped to the right destination.

3. Using the wrong HTTP method Most webhooks use POST, not GET. Make sure your trigger matches your data source.

4. Hardcoding values that should be dynamic Use {{ expressions }} for data that changes. Only hardcode static values.

5. Not handling errors Add error workflows (we'll cover this in advanced tutorials) to catch and fix issues automatically.

Next Steps

Now that you've built your first workflow, here's what to learn next:

Beginner:

  • Build a workflow with scheduling (daily reports, reminders)
  • Add conditional logic (if/then statements)
  • Connect to your CRM (HubSpot, Salesforce, Pipedrive)

Intermediate:

  • Use the HTTP Request node for custom API calls
  • Transform data with the Code node (JavaScript)
  • Build multi-branch workflows with Switch nodes

Advanced:

  • Error handling and retry logic
  • Webhooks with authentication
  • Database integrations (PostgreSQL, MongoDB)

Resources

Official n8n Resources:

Next Tutorials:

Get Started Today

Ready to try n8n yourself?

Start with n8n Cloud Free Trial β†’

Or if you'd prefer we build this for you:

We specialize in custom n8n automation implementations. From simple workflows to complex multi-system integrations, we handle the technical work so you can focus on your business.

See Our Automation Services β†’


Questions about this tutorial? Drop a comment below or join our newsletter for weekly n8n tips and workflow templates.


Tags: guides, n8n, beginner Target Keyword: n8n tutorial Meta Description: Learn to build your first n8n workflow with this complete beginner tutorial. Step-by-step guide to automating form submissions with Google Sheets and Slack.