Every day, somewhere, a solopreneur opens three browser tabs: their Typeform dashboard, their CRM, and a Slack channel. They copy a name and email from the form, paste it into a new contact record, then type a Slack message to let their team know. It takes four minutes. They do it twelve times a day. That’s 48 minutes of work that requires exactly zero human judgment; just pattern recognition and copy-paste.

The real cost isn’t the time. It’s the cognitive overhead of remembering to do it, the context-switching, and the quiet dread every time a submission comes in while you’re deep in something else.
n8n can handle this without a Zapier bill that scales against you as your volume grows. This n8n tutorial walks you through environment setup and your first working workflow, start to finish.
Why n8n Specifically (The Short Version)

n8n is open-source workflow automation software. You can self-host it for free or use their managed cloud; that distinction matters more than it sounds. Zapier charges per task. Make charges per operation. At low volumes, neither feels painful; at higher volumes like 10,000 form submissions a month, costs can become significant.
n8n’s fair-code license means the self-hosted version costs nothing beyond your server bill. A $6/month VPS typically handles most small-to-medium workloads comfortably.
For developers, the architecture is worth noting. Workflows export as JSON, so they live in version control like any other config. Every node is inspectable; you can see exactly what data is flowing through at each step. You can also drop into JavaScript inside any node using the Code node or the expression editor, which means you’re not limited to what the UI exposes. Custom logic doesn’t require a custom integration.
For solopreneurs who just heard “self-hosted” and felt a small wave of anxiety: n8n Cloud exists, offers a free trial, and has an identical interface. You can start there and migrate later if you want. This is a valid path, and this tutorial works either way.
The honest tradeoff: self-hosting means you own uptime. If your server goes down at 2am, your workflows stop running until you fix it. For many use cases, that’s acceptable; for anything mission-critical, you may want to factor in monitoring or use the cloud version.
By the end of this post, you’ll have a working workflow that watches for a form submission and automatically creates a task in Trello while posting a Slack notification. That’s a real ops task, not a toy example.
Setting Up Your n8n Environment

Two real options exist: n8n Cloud or self-hosted via Docker. For this tutorial, Docker on your local machine is the recommended path. It’s free, it mirrors how you’d run it in production, and it works on Mac, Windows, and Linux without modification.
If you don’t have Docker Desktop installed, grab it from docker.com and come back; explaining Docker itself is out of scope here.
Once Docker is running, open a terminal and run this command:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8nBreaking down what each flag does:
-p 5678:5678maps port 5678 on your machine to the container, which is where n8n’s web interface lives.-v n8n_data:/home/node/.n8nmounts a persistent volume so your workflows survive container restarts. Without it, every time you stop the container, you start from scratch.
Give it approximately 20 seconds, then open localhost:5678 in your browser. You’ll be prompted to create an owner account; use a real password even locally, since credentials get stored here.
Once you’re in, you’re looking at the n8n canvas. The interface has three things worth knowing immediately:
- The canvas is the main workspace where you build and wire together nodes.
- The node panel, accessible via the
+button, is your library of integrations and logic blocks; there are over 350 pre-built connectors available. - The execution log, accessible from the left sidebar, shows every time a workflow ran, what data moved through it, and exactly where things stopped if something failed.
Spend 30 seconds finding the execution log now, before you need it. Beginners often ignore it until a workflow breaks, then spend considerable time debugging something the log would have explained quickly. The workflow setup process typically goes much faster once you’re in the habit of checking it first.
Building Your First Real Workflow
The workflow you’re building: a Typeform submission triggers n8n, which creates a Trello card and posts a Slack message. Three nodes, two credentials, one useful result.
Before touching the canvas, understand the conceptual split. A trigger node starts the workflow; it listens for an event, whether that’s a form submission, a scheduled time, or an incoming webhook. An action node does something in response: creates a record, sends a message, writes to a database. Most workflows follow this pattern; one trigger, one or more actions.
Adding the Typeform Trigger
Click the + button, search for “Typeform”, and select the Typeform Trigger node. You’ll need to connect your Typeform account via OAuth; n8n will walk you through this in the Credentials panel. Once connected, select the specific form you want to watch. n8n generates a webhook URL that Typeform will call whenever someone submits.
To test it, click “Listen for Test Event” in the node, then submit your Typeform once. Watch the canvas; the node will light up and show you the incoming data. This is the first moment n8n becomes tangible; you can see every field from the submission, labeled and structured, ready to be mapped.
Adding the Trello Node
Click the + button on the right side of the Typeform node to add a connected action. Search for “Trello” and select the “Create Card” operation. Connect your Trello account, then select your board and list.
Here’s where the expression editor matters. In the “Name” field for the card, instead of typing static text, click the expression toggle (the {} icon). You’ll see the data structure from your Typeform submission on the left; you can click any field to reference it. A card name like New lead: {{ $json.answers[0].text }} pulls the first answer directly from the form. This is n8n’s core mechanic; once it clicks, you’ll likely use it frequently.
Adding the Slack Node
Connect another action node from Trello, search for “Slack”, and select “Send a Message”. Connect your Slack workspace, choose a channel, and write a message using the same expression syntax. Because n8n passes the full execution data forward, you can still reference the original Typeform fields here; something like New Trello card created for {{ $('Typeform Trigger').item.json.answers[0].text }} gives your team immediate context without you typing anything.
Activating the Workflow
Build the three-node chain, then look for the toggle in the top-right corner of the canvas. This is the step beginners often miss; a workflow won’t run automatically until you flip that toggle to “Active”. Manual test executions work without it, but real incoming submissions won’t trigger anything until it’s on. Flip it, confirm the status shows “Active”, and you’re done.
The Three Mistakes Beginners Make in the First Week
Not Reading the Execution Log
When a workflow fails silently, the instinct is often to rebuild it or check the documentation. The execution log typically has the answer; it shows the exact node where data stopped, the error message, and the payload that caused it. Check the log before doing anything else.
Hardcoding Credentials in Nodes
Pasting an API key directly into a node field works once. The moment you duplicate that workflow or share it with a teammate, the key is embedded in the JSON export in plain text, and you’ll need to hunt it down manually. n8n has a Credentials manager built in; use it from the start. Credentials stored there are referenced by name, not value, so they stay out of your workflow JSON.
Wiring Nodes Before Inspecting Their Output
It’s tempting to build the whole workflow and then run it. A better approach is to click “Execute Node” on each node individually after adding it, confirm the output data looks right, and only then add the next node. Complex workflows often fail in subtle ways when the data shape at step three isn’t what you assumed from step one.
Where to Go From Here
If you’re a developer, the next worthwhile experiment is a webhook-to-database pipeline using n8n’s HTTP Request node and a Postgres or Supabase connection. This is where you can move beyond the pre-built connector library and start building custom integrations against any API that accepts HTTP.
If you’re a solopreneur, consider automating your weekly reporting. Pull data from Stripe or Google Sheets, format a digest with the Code node, and push it to email or Slack on a schedule. The Cron trigger node handles the timing; set it to Monday at 8am and stop building that report manually.
If you’re on an ops team, look at n8n’s sub-workflows feature. It lets you build reusable automation modules that multiple workflows can call, which helps keep things maintainable as your automation footprint grows.
Two resources worth bookmarking:
- The n8n workflow template library has hundreds of pre-built workflows you can import and adapt.
- The community forum is active and technically engaged, which can be helpful when you hit an edge case the documentation doesn’t cover.
Interested in automation & n8n?
We help solopreneurs ship production-ready apps and automate their operations.
Learn About Our QA Services