Ready to automate your first task? This hands-on tutorial will walk you through creating a working n8n workflow from scratch. By the end, you'll have a real automation running.
What We'll Build
We'll create a simple but practical workflow: Get notified on Slack whenever someone submits a form. This teaches you the fundamentals that apply to any automation.
The workflow:
- Receives form submissions via webhook
- Formats the data nicely
- Sends a message to Slack
Step 1: Sign Up for n8n
You have two options:
Option A: n8n Cloud (Easiest)
- Go to n8n.io and click "Get Started Free"
- Create an account with email or Google
- You'll land in the n8n editor—ready to build!
Option B: Self-Hosted (Free Forever)
If you have Docker installed:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
Then open http://localhost:5678 in your browser.
Step 2: Create a New Workflow
- In n8n, click "New Workflow" or press
Ctrl+Alt+N - Give it a name: "Form to Slack Notification"
- You'll see an empty canvas with a "+" button
Step 3: Add a Webhook Trigger
The webhook will receive data when someone submits a form.
- Click the "+" button on the canvas
- Search for "Webhook" and select it
- In the node settings:
- HTTP Method: POST
- Path: form-submission
- Click "Listen for Test Event"
You'll see a URL like: https://your-instance.n8n.cloud/webhook-test/form-submission
Test the Webhook
Open a new terminal and send test data:
curl -X POST https://YOUR-WEBHOOK-URL \
-H "Content-Type: application/json" \
-d '{"name": "John Doe", "email": "john@example.com", "message": "Hello!"}'
You should see the data appear in n8n. Click "Stop Listening" once you see it.
Step 4: Format the Message
Let's create a nicely formatted message for Slack.
- Click the "+" after the Webhook node
- Search for "Set" and select it
- Click "Add Value" and choose String
- Name:
slackMessage - Value (click the expression toggle { }):
New form submission!
Name: {{ $json.name }}
Email: {{ $json.email }}
Message: {{ $json.message }}
Step 5: Connect to Slack
- Click the "+" after the Set node
- Search for "Slack" and select it
- For credentials:
- Click "Create New"
- Follow the OAuth flow to connect your Slack workspace
- Configure the node:
- Resource: Message
- Operation: Send
- Channel: Select your channel (e.g., #notifications)
- Text: Click { } and enter
{{ $json.slackMessage }}
Step 6: Test the Complete Workflow
- Click "Execute Workflow" at the bottom
- Go back to the Webhook node and click "Listen for Test Event"
- Send another test request with curl
- Watch the data flow through each node
- Check Slack—you should see your message!
Step 7: Activate Your Workflow
To make it run automatically:
- Click the "Inactive" toggle in the top right
- It will turn green and say "Active"
- Your workflow is now live!
Important: Note the production webhook URL (without "-test"). Use this URL in your actual form.
Next Steps
Congratulations! You've built your first n8n workflow. Here's what to try next:
Enhance This Workflow
- Add an IF node to only notify for certain message types
- Store submissions in Google Sheets for records
- Send an auto-reply email to the submitter
Explore Pre-Built Workflows
Don't reinvent the wheel. Browse our library of production-ready workflows:
Learn More
- Understanding nodes, triggers, and data flow
- Popular automation use cases
- Why n8n vs other platforms
Find Your Next Workflow
Browse 493+ ready-to-use n8n workflows. Import, customize, and automate.
Explore Workflows