⚙️ N8N Workflow Builder — Visual Automation Design
Design complete n8n workflows with node mapping, data transformations, error handling, and importable JSON.
Activation
When this skill activates, output:
⚙️ N8N Workflow Builder — Designing your automation workflow...
| Context |
Status |
| User says "n8n workflow", "build a workflow", "automation" |
ACTIVE |
| User wants to connect services with trigger → process → output |
ACTIVE |
| User mentions n8n nodes, credentials, or workflow JSON |
ACTIVE |
| User wants a webhook endpoint (not a full workflow) |
DORMANT — see webhook-designer |
| User wants a cron job (not n8n scheduled) |
DORMANT — see cron-scheduler |
| User wants an API-to-API integration (not visual workflow) |
DORMANT — see api-integration |
Protocol
Step 1: Gather Inputs
Ask the user for:
- Trigger event: What starts the workflow? (webhook, schedule, app event, manual)
- Data source: Where does input data come from? (API, database, email, file, form)
- Desired output: What should happen at the end? (send email, update database, post to Slack, create record)
- Integrations needed: Which services? (Google Sheets, Slack, Stripe, GitHub, Notion, Airtable, etc.)
- Frequency: One-time, on-demand, or recurring? If recurring, how often?
Step 2: Design Workflow Nodes
Map the workflow as a node chain:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ TRIGGER │───→│ PROCESS │───→│ TRANSFORM │───→│ OUTPUT │
│ │ │ │ │ │ │ │
│ [node type] │ │ [node type] │ │ [node type] │ │ [node type] │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
For each node, specify:
| Node |
Type |
Purpose |
Config |
| 1. Trigger |
[Webhook/Schedule/App Trigger] |
[what starts it] |
[settings] |
| 2. Fetch |
[HTTP Request/App Node] |
[get data] |
[endpoint, auth] |
| 3. Process |
[Code/Set/IF/Switch] |
[transform/filter] |
[logic] |
| 4. Output |
[App Node/HTTP Request] |
[deliver result] |
[settings] |
Include branching where needed:
- IF nodes: For conditional paths (e.g., if status === 'paid', send receipt; else send reminder)
- Switch nodes: For multi-path routing
- Merge nodes: For combining parallel branches
Step 3: Map Data Transformations
For each connection between nodes, define the field mapping:
── Node 1 → Node 2 ────────────────────────
Source Field → Target Field Transform
─────────────────────────────────────────────
{{ $json.email }} → to direct
{{ $json.name }} → subject template: "Hello {{ $json.name }}"
{{ $json.amount }} → price Number: {{ $json.amount / 100 }}
{{ $json.created }} → date Format: {{ DateTime.fromISO($json.created).toFormat('yyyy-MM-dd') }}
Common transformations:
- String:
.toLowerCase(), .trim(), template literals
- Number: Division (cents to dollars), rounding, formatting
- Date: ISO parse, format conversion, timezone handling
- Array:
.map(), .filter(), .reduce() in Code node
- Object: Spread, pick fields, rename keys
Step 4: Error Handling
Design failure paths for each critical node:
┌──────────────┐ ┌──────────────┐
│ Main Node │──✗─│ Error Branch │
│ │ │ │
│ [action] │ │ • Log error │
│ │ │ • Notify │
│ │ │ • Retry/Skip │
└──────────────┘ └──────────────┘
Error handling strategy per node:
| Node |
On Failure |
Retry? |
Fallback |
| HTTP Request |
Log + retry |
3x with 5s backoff |
Send alert, skip item |
| Database |
Log + alert |
1x |
Queue for manual review |
| External API |
Log + retry |
3x with exponential |
Use cached data |
| Webhook delivery |
Log + retry |
5x with backoff |
Dead letter queue |
Error notification node (add to every workflow):
- Send to Slack channel, email, or webhook on any unhandled error
- Include: workflow name, node that failed, error message, input data
Step 5: Credential Setup
For each integration, provide setup guidance:
── CREDENTIALS NEEDED ─────────────────────
1. [Service Name]
Type: [API Key / OAuth2 / Basic Auth]
Setup:
a. Go to [URL]
b. Create [API key / OAuth app]
c. Copy [key/secret/token]
d. In n8n: Settings → Credentials → Add → [Service]
e. Paste credentials
Scopes needed: [list required scopes]
Notes: [rate limits, expiration, rotation]
2. [Service Name]
...
Step 6: Testing Approach
Test each node individually:
- Run trigger node alone — verify it produces expected data shape
- Test each processing node with pinned test data
- Verify data transformations match expected output
- Test error paths by deliberately sending bad data
End-to-end testing:
- Execute workflow with test data (use n8n's "Test Workflow" button)
- Verify each node's output in the execution log
- Confirm final output in destination system
- Test with edge cases: empty data, large payloads, special characters
- Test error recovery: disconnect a service, verify error handling fires
Step 7: Scheduling
If the workflow runs on a schedule:
── SCHEDULE CONFIGURATION ─────────────────
Cron Expression: [expression]
Human Readable: [description]
Timezone: [timezone]
Examples:
Every 15 minutes: */15 * * * *
Every hour: 0 * * * *
Daily at 9 AM: 0 9 * * *
Mon-Fri at 8 AM: 0 8 * * 1-5
First of month: 0 0 1 * *
Scheduling considerations:
- Set timezone explicitly (n8n defaults to server timezone)
- Avoid running at exact hour marks (:00) — high API traffic
- For API-heavy workflows, stagger by a few minutes
- Consider overlap: will the previous run finish before next starts?
Step 8: Output
Present the complete workflow specification:
━━━ N8N WORKFLOW: [Workflow Name] ━━━━━━━━━
── OVERVIEW ───────────────────────────────
Trigger: [what starts it]
Purpose: [what it does]
Schedule: [frequency]
Services: [list of integrations]
── NODE MAP ───────────────────────────────
[visual node chain with descriptions]
── NODE DETAILS ───────────────────────────
Node 1: [name] — [type]
Config: [settings]
Input: [data shape]
Output: [data shape]
Node 2: [name] — [type]
...
── DATA TRANSFORMATIONS ───────────────────
[field mapping tables]
── ERROR HANDLING ─────────────────────────
[error paths per node]
── CREDENTIALS ────────────────────────────
[setup instructions per service]
── TEST PLAN ──────────────────────────────
[node-by-node + end-to-end tests]
── WORKFLOW JSON ──────────────────────────
[importable n8n JSON or instructions to build]
If the workflow is simple enough, provide the actual n8n workflow JSON that can be imported via Settings → Import Workflow.
Inputs
- Trigger event type
- Data source and format
- Desired output / destination
- Required integrations
- Frequency / schedule
Outputs
- Visual node map with connections
- Detailed node configurations
- Data transformation mappings between nodes
- Error handling strategy per node
- Credential setup guide per service
- Testing plan (node-by-node + end-to-end)
- Schedule configuration with cron expression
- Importable workflow JSON (when feasible)
Level History
- Lv.1 — Base: Node chain design with trigger/process/transform/output mapping, data transformation tables, error handling with retry and fallback paths, credential setup guides, testing approach (node-level + E2E), cron scheduling, importable JSON output format. (Origin: MemStack v3.2, Mar 2026)
1---2name: n8n-workflow-builder3description: Use when the user says 'n8n workflow', 'build a workflow', 'automation workflow', 'n8n', 'workflow builder', or wants to design an automated workflow with triggers, processing, and outputs.4---567# ⚙️ N8N Workflow Builder — Visual Automation Design8*Design complete n8n workflows with node mapping, data transformations, error handling, and importable JSON.*910## Activation1112When this skill activates, output:1314`⚙️ N8N Workflow Builder — Designing your automation workflow...`1516| Context | Status |17|---------|--------|18| **User says "n8n workflow", "build a workflow", "automation"** | ACTIVE |19| **User wants to connect services with trigger → process → output** | ACTIVE |20| **User mentions n8n nodes, credentials, or workflow JSON** | ACTIVE |21| **User wants a webhook endpoint (not a full workflow)** | DORMANT — see webhook-designer |22| **User wants a cron job (not n8n scheduled)** | DORMANT — see cron-scheduler |23| **User wants an API-to-API integration (not visual workflow)** | DORMANT — see api-integration |2425## Protocol2627### Step 1: Gather Inputs2829Ask the user for:30- **Trigger event**: What starts the workflow? (webhook, schedule, app event, manual)31- **Data source**: Where does input data come from? (API, database, email, file, form)32- **Desired output**: What should happen at the end? (send email, update database, post to Slack, create record)33- **Integrations needed**: Which services? (Google Sheets, Slack, Stripe, GitHub, Notion, Airtable, etc.)34- **Frequency**: One-time, on-demand, or recurring? If recurring, how often?3536### Step 2: Design Workflow Nodes3738Map the workflow as a node chain:3940```41┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐42│ TRIGGER │───→│ PROCESS │───→│ TRANSFORM │───→│ OUTPUT │43│ │ │ │ │ │ │ │44│ [node type] │ │ [node type] │ │ [node type] │ │ [node type] │45└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘46```4748For each node, specify:4950| Node | Type | Purpose | Config |51|------|------|---------|--------|52| 1. Trigger | [Webhook/Schedule/App Trigger] | [what starts it] | [settings] |53| 2. Fetch | [HTTP Request/App Node] | [get data] | [endpoint, auth] |54| 3. Process | [Code/Set/IF/Switch] | [transform/filter] | [logic] |55| 4. Output | [App Node/HTTP Request] | [deliver result] | [settings] |5657Include branching where needed:58- **IF nodes**: For conditional paths (e.g., if status === 'paid', send receipt; else send reminder)59- **Switch nodes**: For multi-path routing60- **Merge nodes**: For combining parallel branches6162### Step 3: Map Data Transformations6364For each connection between nodes, define the field mapping:6566```67── Node 1 → Node 2 ────────────────────────68Source Field → Target Field Transform69─────────────────────────────────────────────70{{ $json.email }} → to direct71{{ $json.name }} → subject template: "Hello {{ $json.name }}"72{{ $json.amount }} → price Number: {{ $json.amount / 100 }}73{{ $json.created }} → date Format: {{ DateTime.fromISO($json.created).toFormat('yyyy-MM-dd') }}74```7576Common transformations:77- **String**: `.toLowerCase()`, `.trim()`, template literals78- **Number**: Division (cents to dollars), rounding, formatting79- **Date**: ISO parse, format conversion, timezone handling80- **Array**: `.map()`, `.filter()`, `.reduce()` in Code node81- **Object**: Spread, pick fields, rename keys8283### Step 4: Error Handling8485Design failure paths for each critical node:8687```88┌──────────────┐ ┌──────────────┐89│ Main Node │──✗─│ Error Branch │90│ │ │ │91│ [action] │ │ • Log error │92│ │ │ • Notify │93│ │ │ • Retry/Skip │94└──────────────┘ └──────────────┘95```9697**Error handling strategy per node:**9899| Node | On Failure | Retry? | Fallback |100|------|-----------|--------|----------|101| HTTP Request | Log + retry | 3x with 5s backoff | Send alert, skip item |102| Database | Log + alert | 1x | Queue for manual review |103| External API | Log + retry | 3x with exponential | Use cached data |104| Webhook delivery | Log + retry | 5x with backoff | Dead letter queue |105106**Error notification node** (add to every workflow):107- Send to Slack channel, email, or webhook on any unhandled error108- Include: workflow name, node that failed, error message, input data109110### Step 5: Credential Setup111112For each integration, provide setup guidance:113114```115── CREDENTIALS NEEDED ─────────────────────1161171. [Service Name]118 Type: [API Key / OAuth2 / Basic Auth]119 Setup:120 a. Go to [URL]121 b. Create [API key / OAuth app]122 c. Copy [key/secret/token]123 d. In n8n: Settings → Credentials → Add → [Service]124 e. Paste credentials125 Scopes needed: [list required scopes]126 Notes: [rate limits, expiration, rotation]1271282. [Service Name]129 ...130```131132### Step 6: Testing Approach133134**Test each node individually:**1351. Run trigger node alone — verify it produces expected data shape1362. Test each processing node with pinned test data1373. Verify data transformations match expected output1384. Test error paths by deliberately sending bad data139140**End-to-end testing:**1411. Execute workflow with test data (use n8n's "Test Workflow" button)1422. Verify each node's output in the execution log1433. Confirm final output in destination system1444. Test with edge cases: empty data, large payloads, special characters1455. Test error recovery: disconnect a service, verify error handling fires146147### Step 7: Scheduling148149If the workflow runs on a schedule:150151```152── SCHEDULE CONFIGURATION ─────────────────153154Cron Expression: [expression]155Human Readable: [description]156Timezone: [timezone]157158Examples:159 Every 15 minutes: */15 * * * *160 Every hour: 0 * * * *161 Daily at 9 AM: 0 9 * * *162 Mon-Fri at 8 AM: 0 8 * * 1-5163 First of month: 0 0 1 * *164```165166Scheduling considerations:167- Set timezone explicitly (n8n defaults to server timezone)168- Avoid running at exact hour marks (:00) — high API traffic169- For API-heavy workflows, stagger by a few minutes170- Consider overlap: will the previous run finish before next starts?171172### Step 8: Output173174Present the complete workflow specification:175176```177━━━ N8N WORKFLOW: [Workflow Name] ━━━━━━━━━178179── OVERVIEW ───────────────────────────────180Trigger: [what starts it]181Purpose: [what it does]182Schedule: [frequency]183Services: [list of integrations]184185── NODE MAP ───────────────────────────────186[visual node chain with descriptions]187188── NODE DETAILS ───────────────────────────189Node 1: [name] — [type]190 Config: [settings]191 Input: [data shape]192 Output: [data shape]193194Node 2: [name] — [type]195 ...196197── DATA TRANSFORMATIONS ───────────────────198[field mapping tables]199200── ERROR HANDLING ─────────────────────────201[error paths per node]202203── CREDENTIALS ────────────────────────────204[setup instructions per service]205206── TEST PLAN ──────────────────────────────207[node-by-node + end-to-end tests]208209── WORKFLOW JSON ──────────────────────────210[importable n8n JSON or instructions to build]211```212213If the workflow is simple enough, provide the actual n8n workflow JSON that can be imported via Settings → Import Workflow.214215## Inputs216- Trigger event type217- Data source and format218- Desired output / destination219- Required integrations220- Frequency / schedule221222## Outputs223- Visual node map with connections224- Detailed node configurations225- Data transformation mappings between nodes226- Error handling strategy per node227- Credential setup guide per service228- Testing plan (node-by-node + end-to-end)229- Schedule configuration with cron expression230- Importable workflow JSON (when feasible)231232## Level History233234- **Lv.1** — Base: Node chain design with trigger/process/transform/output mapping, data transformation tables, error handling with retry and fallback paths, credential setup guides, testing approach (node-level + E2E), cron scheduling, importable JSON output format. (Origin: MemStack v3.2, Mar 2026)