| name | n8n-recipes |
| description | Design, build, debug, and version-control n8n workflows from Claude Code. Use when asked to "build an n8n workflow", "fix this n8n node", "automate this with n8n", "explain this n8n JSON", or to translate a manual marketing process into an n8n pipeline. Includes a recipe library of common marketing automations. |
n8n Recipes
A Claude Code skill for working with n8n — the open-source workflow automation tool. Use Claude as the design partner that translates "I want to automate X" into a working n8n workflow JSON.
When to use this skill
Five common triggers:
- "Build an n8n workflow that does X" — Claude designs the workflow, emits the importable JSON, and explains each node.
- "Debug this n8n node" — paste the failing node config + error, Claude diagnoses.
- "Translate this manual process into n8n" — Claude walks the existing process, identifies the nodes, builds the workflow.
- "Audit this n8n workflow" — paste the exported JSON, Claude reviews for fragility, missing error handling, secrets in plaintext, etc.
- "Recommend a recipe for [marketing problem]" — Claude pulls from
recipes/ or designs new.
What this skill knows
n8n core concepts:
- Workflow — a graph of nodes connected by edges, triggered by an event or schedule
- Node — a single step. Categories: Trigger, Action, Data Transformation, Flow Control, LLM
- Credentials — connection details for external services (stored in n8n, referenced by name)
- Expressions — JavaScript snippets in
{{ }} for dynamic values from previous nodes
- Items — the data array flowing between nodes (n8n is item-based, not row-based)
Conventions the skill enforces
Every workflow Claude designs follows these rules:
- Trigger first. Every workflow starts with a Webhook, Cron, Manual, or Event trigger node. Be explicit about which.
- No secrets in node config. Credentials are referenced by name. API keys are stored in n8n's Credentials store, never inlined.
- Error handling on every external call. External API nodes get an "Error Trigger" path that logs to your chosen destination (Slack, Sheet, file).
- Idempotency for write operations. If a workflow can run twice on the same input, it must not duplicate the result. Use lookup-before-write patterns.
- Naming convention.
[Trigger Type] | [What it does] | [Final destination]. Example: Webhook | Enrich lead with RocketReach | Google Sheet.
- Comments inside the workflow. Sticky-note nodes documenting the why, not the what.
- One workflow, one responsibility. Long chains get split into sub-workflows called via "Execute Workflow" nodes.
The recipe library
Each recipe is a JSON file you can import directly into n8n, plus a markdown explainer.
| Recipe | Trigger | What it does |
|---|
daily-ad-spend-to-sheet | Cron 9am daily | Pulls yesterday's Google Ads spend via the API and appends a row to a Google Sheet |
webhook-lead-enrich-and-route | Webhook (form submission) | Enriches a new lead via Hunter/RocketReach, scores it with an LLM node, routes to Slack or CRM by score |
anomaly-alert-paid-spend | Cron hourly | Compares last hour's ad spend to a rolling 7-day average; if 2x+ spike, posts to a Slack channel |
email-verify-batch | Manual or Sheet trigger | Runs Reoon verification on a column of emails, writes statuses back to the sheet, respects rate limits |
granola-meeting-to-slack | Schedule every 30 min | Pulls new Granola meetings, extracts action items via an LLM node, posts a summary to Slack |
utm-attribution-join | Cron daily | Joins ad-platform spend to your order data via UTMs, writes a campaign_performance view to your warehouse |
partner-newsletter-draft | Manual | Pulls partner activity from the last 7 days, generates a draft newsletter via an LLM node, opens a Notion page for review |
How Claude designs a workflow from scratch
When you say "build me a workflow that does X," Claude follows this pattern:
- Ask 3-5 clarifying questions. What triggers it? What's the end state? Where does data go? What credentials are available? What's the failure mode?
- Sketch the graph. Plain English: "Cron at 9am → Google Ads API node → IF spend > threshold → Slack notify → log to Sheet."
- Emit the JSON. Output a complete n8n workflow JSON you can paste into the n8n UI via Import.
- Provide setup notes. Which credentials you need to create in n8n, expected runtime, where you'd see failures.
- Suggest improvements. "I noticed this is a write workflow without idempotency. Want me to add a lookup-before-write pattern?"
How Claude debugs a node
Paste the failing node config + error. Claude:
- Reads the node type and parameters
- Identifies the most common failure causes for that node type (rate limit, auth, malformed expression, type mismatch in items array)
- Asks for the exact error text and the input data shape
- Proposes a fix as a corrected node config
- Suggests an error-trigger branch if one isn't present
How Claude audits a workflow
Paste the exported JSON. Claude returns a checklist:
Flag any failures. Propose specific node-level fixes.
Why n8n vs. Zapier / Make / etc.
This skill is opinionated toward n8n for three reasons:
- Self-hostable. You own your workflows and data. No platform lock-in.
- JSON-native. Workflows export as JSON you can version-control in git. Zapier doesn't expose this. Make exports are messier.
- LLM nodes are first-class. n8n's AI nodes are well-integrated with OpenAI, Anthropic, Ollama. The "build an automation with an AI step" pattern is native.
If you're on Zapier or Make and want to migrate, the recipes here translate conceptually but the import format differs. Claude can help with the translation.
References
Outputs
Every workflow Claude produces lands in two places:
output/<workflow-name>.json — the importable workflow file
output/<workflow-name>.md — a 1-page operator runbook (what it does, credentials needed, how to verify it's running)
Both go into your project's git so workflows are version-controlled. n8n's hosted version has its own UI for workflow versioning, but git is more honest.