Workflow check Three checks, one answer key

n8n's editor, n8n-mcp and our check, on the same 40 templates.

If you are deciding whether to put a check in front of your n8n deploys, the first question is what it gives you that you do not already have. So we ran the three checks side by side on 40 public n8n templates and scored them against one answer key none of them wrote: 224 places where a workflow will not work as written.

  • Our check names 83 of them.
  • n8n-mcp names 11.
  • n8n's editor check names 0.
  • Only one of them is named both by ours and by another check. 82 are named only by ours, 10 only by n8n-mcp, and 131 by none of the three.

What each check is for

  • n8n's editor check is the set of warnings the n8n editor shows on a node when a person opens the workflow: a required field left empty, or a node type the instance does not have. n8n will not run the workflow from the editor while they are open.
  • n8n-mcp is an open-source server that gives an AI assistant n8n's node documentation and tools. Its validate_workflow is the validator the assistant runs while it builds a workflow: node settings against each node's schema, connections, expressions and AI agent wiring.
  • Our check reads the workflow's file and names each place it cannot work as written: a step or field that is not there, a step no trigger reaches, an open webhook or form that leads to a write or a paid call, a step retried on error that writes twice.

They are built for different moments, and they overlap little. This page is the count, not a ranking: a check that names fewer of these breaks can still be the right one for what it is for.

Where the others see what ours does not

n8n-mcp names 10 breaks in the answer key that ours does not:

It also names things the answer key does not hold. We read every one of its errors. Of the 34 that did not match a break in the key, 27 are right, and 24 of those are problems the key does not list at all, for example a filter operator n8n does not have, an expression n8n's engine refuses because it holds {{ inside {{ }}, and fields that mix text and {{ }} without a leading =. Ours says none of these on these files.

n8n's editor check tells an importer what to set up before the workflow can run: 54 steps from community packages a stock n8n does not have, and 16 required fields the template ships empty. They are true, and ours says neither. The answer key does not count set-up an importer is expected to do as a break, so they are not in the count above.

What only ours names

  • 55: an open webhook, form, chat or bot that anyone can reach, leading to a write, a post or a paid call. In 8500 (10), 10000 (9), 9200 (9), 11204 (6), 10724 (5), 4751 (4), 13503 (3), 5755 (3), 9867 (3), 12462 (2), 2519.
  • 14: an expression or connection that names a node the file does not have. In 5906 (7), 10358 (6), 16792.
  • 12: a step retried on error that writes or sends twice. In 11807 (9), 6067 (3).
  • 1: a trigger connected to nothing. In 4846.

n8n-mcp has an error for an expression that names a node the workflow does not have. On these files it did not give it once, including the places listed above.

131 breaks in the key are named by none of the three. Most are about what the workflow does with its data: input pasted into a JSON body without escaping, a job read once after a fixed wait, the author's own endpoint left in. None of the three reads that.

False alarms

n8n-mcp gave 36 errors and 22 warnings. We read every error, and the warnings on the first ten templates (3 warnings). 7 errors and 3 warnings were wrong:

  • 11807, step “Purge Old Chat Memory”, error: a field mixes text and {{ }} without a leading =. The Postgres node resolves {{ }} in its query itself, without a leading "=" (executeQuery.operation.js, getResolvables); the query runs as written.
  • 11807, step “Archive Weekly Metrics”, error: a field mixes text and {{ }} without a leading =. The Postgres node resolves {{ }} in its query itself, without a leading "=" (executeQuery.operation.js, getResolvables); the query runs as written.
  • 11807, step “Purge Existing Docs”, warning: executeOnce is enabled. This node will execute only once regardless of input items.. Deleting the old documents once before re-ingesting is what the node means; running once is right here.
  • 11807, step “Purge Old Chat Memory”, warning: executeOnce is enabled. This node will execute only once regardless of input items.. One purge per weekly run is what the node means; running once is right here.
  • 11807, step “Archive Weekly Metrics”, warning: executeOnce is enabled. This node will execute only once regardless of input items.. One archive row per weekly run is what the node means; running once is right here.
  • 10000, step “Search Trends with Perplexity”, error: Required property 'Input' cannot be empty. The Perplexity message text is set; "Input" belongs to the agent resource, which this node does not use (n8n's own check, with the defaults filled, says nothing here).
  • 5906, step “📝 Update Job Status”, error: Sheet names with spaces must be quoted. The range names no sheet; the spaces it saw are inside {{ }}. What is wrong with the range (no leading "=") is said by another item.
  • 5906, step “📝 Update Changed Status”, error: Sheet names with spaces must be quoted. The range names no sheet; the spaces it saw are inside {{ }}. What is wrong with the range (no leading "=") is said by another item.
  • 5906, step “⚙️ Configuration”, error: a field mixes text and {{ }} without a leading =. The {{position}} tokens are the cover letter's own placeholders, replaced later by .replace(); literal text is what is meant.
  • 11572, step “Add NewsAPI item1”, error: Expected object but got string. A plain string where a locator is expected is read by n8n as the id; what is wrong is that the project is the empty expression "=", which this message does not say.

n8n's editor check gave 111 errors and none was wrong. 41 more came from how we ran it, not from n8n: we read each node's description from the file n8n publishes, and the AI tool versions of nodes (such as the Gmail tool) are not in that file, because n8n builds them from the plain node when it starts. n8n's editor knows them; we do not count these against it.

Ours said 184 things on these files. 5 are wrong by the answer key:

  • 11807, step “Email Trigger (IMAP)”: an email trigger reported as a step that never runs; it is a trigger ours does not know.
  • 8965, step “Check Enabled Platforms”: a branch reported as never taken, though its switches are meant to be edited.
  • 5819, step “OpenAI”: a model switched off on purpose as a spare, reported as never running.
  • 8500, step “Set Reply Message”: an error field reported as missing, though it is read exactly when it exists.
  • 2519, step “When clicking ‘Test workflow’”: a manual trigger switched off on purpose, reported as never running.

96 more were said after the key was written, most of them further open webhooks and chats, and no one has read them for this page. Some may be wrong.

Template by template

TemplateBreaks in the keyOurs namesn8n-mcp namesn8n's editor namesn8n-mcp wrong
Answer multi-channel support queries with OpenAI RAG and Supabase129005
Translate and distribute dubbed videos with DubLab to social and cloud platforms124000
Generate and publish social posts with Gemini, Kie.ai, and Zernio API80000
Build Your First AI Agent20000
Monitor n8n community and Reddit discussions in Telegram with Gemini and Groq80000
🤖 Build an Interactive AI Agent with Chat Interface and Multiple Tools10000
Auto-Create TikTok Videos with VEED.io AI Avatars, ElevenLabs & GPT-4119001
Create fluidX THE EYE live camera sessions with SMS/email invites, AI analysis, and Google Drive85000
Talk to Your Google Sheets Using ChatGPT-510100
Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato150100
Jarvis: Productivity AI Agent for Tasks, Calendar, Email & Expense using MCPs1810000
Nutrition Tracker & Meal Logger with Telegram, Gemini AI and Google Sheets10000
Local Chatbot with Retrieval Augmented Generation (RAG)10000
Create & Upload AI-Generated ASMR YouTube Shorts with Seedance, Fal AI, and GPT-470100
Scrape physician profiles from BrowserAct into Google Sheets and notify Slack10000
Track SEO Keyword Rankings with Bright Data MCP and GPT-4o AI Analysis21100
Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube51100
Triage emails and draft Gmail replies using Gemini and Google Calendar20000
Post daily LinkedIn and Instagram content with Airtable, Claude, OpenAI and Buffer20000
🎓 Learn n8n Expressions with an Interactive Step-by-Step Tutorial for Beginners00000
Transform Old Photos into Animated Videos with FLUX & Kling AI for Social Media63000
Fetch Live ETF Metrics from JustETF to Excel with One-Click Updates41000
Transform Long Videos into Viral Shorts with AI and Schedule to Social Media using Whisper & Gemini73100
Send daily AI crypto market insights with Google Gemini to Telegram00000
AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG30000
Automate AI Video Creation & Multi-Platform Publishing with GPT-4, Veo 3.1 & Blotato86000
Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram50000
Manage WooCommerce store operations via AI Telegram bot with OpenRouter43000
Course Recommendation System for Surveys with Data Tables and GPT-4.1-Mini10000
🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners00000
Create AI product images and marketing videos with NanoBanana Pro, Veo 3.1 and Blotato72000
Automate & Publish Video Ad Campaigns with NanoBanana, Seedream, GPT-4o, Veo 3169000
Email Support Agent w/ Gemini & GPT fallback using Gmail + Google Sheets40000
Automated LinkedIn Content Creation with GPT-4 and DALL-E for Scheduled Posts20000
Automated Job Applications & Status Tracking with LinkedIn, Indeed & Google Sheets177203
Automate Email Filtering & AI Summarization. 100% free & effective, works 7/24 10000
Log multi-platform ad spend from Meta, Google, TikTok, and Taboola to Airtable21000
Aggregate News Articles from NewsAPI, Mediastack & CurrentsAPI into Database40301
Create AI Viral Videos using NanoBanana 2 PRO & VEO3.1 and Publish via Blotato96000
Auto-Generate SEO Blog Posts with Perplexity, GPT, Leonardo & WordPress73000

How this was run

  • The files. The first 40 free templates n8n's template search lists, each fetched from n8n's public API and checked against the hash we recorded. Each is linked above to its page on n8n.io; we do not republish them.
  • The answer key. A reader went through each file before either of the other checks was run, marked each thing our check said as right or wrong, and listed every break our check did not say. It leans our way in one respect: the reader named each break in our check's words. So a break another check names in its own words was matched by the step it names, then read by hand, never by the wording alone; one break was found that way.
  • The versions. n8n-mcp 2.89.0, run with its default profile, telemetry off. n8n's editor check is getNodeParametersIssues from n8n-workflow 2.40.1, over the node descriptions of n8n-nodes-base 2.40.2 and @n8n/n8n-nodes-langchain 2.40.3, the versions n8n 2.40.7 uses. Run on 25 September 2026. No workflow was sent anywhere and no AI model was used.

What our check found in the 40 most-viewed n8n templates, read before you import them.

Check your workflow Paste an n8n workflow and see where it will break. Free. No account. Nothing is stored unless you choose to share it.