š Hey dev.to Community
A friend of mine was building an automation project for a multi-brand retail operation ā taking messy supplier files and turning them into Oracle EBS-compatible records. 735 brands, 321,000+ barcodes, seven AI extraction pipelines. He'd connected Claude Opus to his self-hosted n8n instance through MCP and was building workflows by just talking to it. I wanted to see if this actually works, so we ran the remaining project phases together.
š ļø What the setup looks like
Through MCP, Claude can search workflows, read every node config, and execute workflows on the live n8n instance. But n8n is just one connector ā it also talks to Google Drive, Chrome, and Slack. So in one conversation, Claude can read your workflow, pull a reference file from Drive, verify a live Sheet through Chrome, and message your team on Slack.
Model choice matters. Opus consistently knows n8n-specific stuff ā Code node vs Function node, Switch vs IF, expression syntax. Earlier models got the shape right but missed the details.
šļø What we built
Over four phases: a 71-node production workflow with webhook trigger, file routing, PDF chunker, seven AI extraction pipelines (running through easybits), merge/validation layers, Google Sheets integration across 10+ tabs, error handling, and dashboard refresh.
The standout moments: Claude analyzed ~940,000 rows across two reference files and built a color-coded duplicate report with five matching categories. Later, it reverse-engineered how the data team manually converts 13-column supplier files into a 47-column EBS format ā identified the mapping logic, handled that different brands use different column names (UPC vs INTERNATIONAL BARCODE vs EAN), and designed a four-step season resolution chain that became production logic. It found three fields we'd missed.
š Where it saved the most time: debugging
Stale schema. Workflow wrote empty rows but showed "success." Claude read the node config through MCP and found the Sheets node had cached 31 columns with old names while the live sheet had 45 columns with new names. Mapped every discrepancy, gave step-by-step fix. Would've taken hours manually.
Phantom match. Claude's own fuzzy matching used string.includes("") ā always true for empty strings. Every empty barcode matched against 321k records. Clean code, invisible bug. Found it once we described the symptom.
The one it couldn't solve. Apps Script onChange trigger created a race condition during sheet wipes. Claude kept suggesting vanilla JS that doesn't apply to Apps Script. My friend solved it with a WIPE_IN_PROGRESS flag, taught Claude the pattern, and it applied it correctly going forward. Some domain stuff is still on you ā but the learning compounds.
š The honest numbers
Simple workflows (webhook ā transform ā write): 40ā50% work first try
Complex multi-step with conditional logic: 15ā20% work first try
Time: 2ā4 hours manually ā 30ā90 minutes with Claude
The first-try rate is misleading. Even when it doesn't run immediately, the architecture is right. You're debugging details, not building from scratch.
š¬ How prompting actually works
Nobody types "build me a pipeline." Real prompt:
"Look at the upload workflow. I need a sub-workflow that takes raw supplier files with 13 columns and maps them into our 47-column BSMS_ITEM_UPLOAD format. The January file is the reference."
~80% correct on first pass. The 20% was edge cases. Mental model: treat it like a senior dev on their first week. Technically strong, needs context about your specific setup.
ā Bottom line
This isn't "AI builds n8n workflows." It's Claude operating across the full project ā reading live configs, analyzing data, debugging multi-layer issues, writing stakeholder emails, building decks. All through MCP.
Best description: a senior engineer who can read your systems and debug your configs, but needs you as the architect who signs off before anything touches production.
Happy to answer questions about the setup or specific situations we ran into.
Best,
Felix
Top comments (0)