How to build an n8n workflow from scratch

Quick Answer: n8n is an open-source workflow automation platform. To build a workflow, create a new workflow in the editor, add a trigger node (webhook, cron, or app event), connect function nodes for data processing, configure credentials for external services, and execute.

How to Build an n8n Workflow from Scratch

n8n is a source-available workflow automation tool that can be self-hosted or run on n8n Cloud (starting at $20/month as of April 2026). Self-hosting provides unlimited workflow executions at no per-run cost. This guide covers building a workflow using the n8n visual editor.

Step 1: Create a New Workflow

Open the n8n editor (self-hosted at the configured URL, or at app.n8n.cloud). Click "New Workflow" in the top-left menu. The editor opens with a blank canvas and a start node.

Step 2: Add a Trigger Node

Click the "+" button on the start node or use the node panel on the left. Select a trigger:

  • Webhook — Receives HTTP requests from external services
  • Cron — Runs on a schedule (every hour, daily, custom cron expression)
  • App triggers — Listen for events from integrated apps (Gmail new email, Slack new message, GitHub new push)
  • Manual Trigger — Execute the workflow manually from the editor

Step 3: Add Processing Nodes

Connect additional nodes to transform and route data:

  • HTTP Request — Call any REST API endpoint
  • Set — Define or rename data fields
  • IF — Branch based on conditions
  • Switch — Route to multiple branches based on field values
  • Code — Execute custom JavaScript or Python
  • Merge — Combine data from multiple branches

Drag from one node's output to another node's input to create connections.

Step 4: Configure Credentials

Nodes that connect to external services require credentials. Click on a node, navigate to the "Credentials" section, and click "Create New." Enter API keys, OAuth tokens, or username/password combinations. n8n encrypts and stores credentials separately from workflow definitions.

Step 5: Test Individual Nodes

Click on any node and press "Execute Node" to run it in isolation with sample data. Review the output in the right panel. This is the fastest way to debug data transformations and API calls without running the entire workflow.

Step 6: Execute the Full Workflow

Click "Execute Workflow" in the top toolbar to run the complete workflow. The editor highlights each node as it executes, showing the data flowing between them. Green indicators show successful executions; red indicators show errors with detailed messages.

Step 7: Activate the Workflow

Toggle the "Active" switch in the top-right corner. Active workflows run automatically when their trigger fires. Inactive workflows can still be executed manually.

Practical Example: GitHub Issue to Slack Notification

  1. Trigger: GitHub Trigger node — "Issue Opened" event
  2. Node 2: IF node — Check if issue label contains "bug"
  3. True branch: Slack node — Post message to #engineering-bugs with issue title, body, and link
  4. False branch: Slack node — Post message to #general-issues

Self-Hosting Notes

n8n can be self-hosted via Docker, npm, or Kubernetes. The recommended approach is Docker Compose with a PostgreSQL database for workflow storage. Self-hosted instances require manual updates and backup configuration.

Related Questions

Last updated: | By Rafal Fila

Related Tools

Related Rankings

Dive Deeper