{"slug": "the-n8n-ai-workflow-you-imported-is-probably-broken-here-s-the-10-minute-audit-i", "title": "The n8n AI workflow you imported is probably broken - here's the 10-minute audit I run on every template", "summary": "A developer who shipped a 45-workflow n8n pack containing legacy n8n-nodes-base.aiAgent nodes re-audited and rebuilt every workflow on the @n8n/n8n-nodes-langchain.agent node (typeVersion 3.1) after a user publicly flagged the breakage. The developer published a five-point import audit covering deprecated node types, connections that reference internal IDs instead of node names, missing lmChat* model sub-nodes, empty HTTP/email fields, and system prompts that promise tools the payload lacks. The rebuilt catalog now spans 77 workflows, and a live BANT qualification agent is exposed via a public webhook that returns a scored JSON verdict without credentials.", "body_md": "If you've ever imported an \"AI agent\" template and watched it die with red nodes, `node not found` errors, or an agent that confidently hallucinates tools that don't exist - it's not your n8n. It's the template.\n\nI say this from the scar side. I shipped a 45-workflow pack with legacy `n8n-nodes-base.aiAgent` nodes. A user on r/n8n called it out publicly. I didn't argue. I re-audited all 45, rebuilt them on `@n8n/n8n-nodes-langchain.agent` v3.1, and re-uploaded with verified connections. That public mistake is exactly why I keep the audit list below - it's the same one I'd run on *your* favorite template before you import it.\n\n`n8n-nodes-base.aiAgent` and `n8n-nodes-base.openAi` no longer exist in current n8n versions. One hit means that workflow was built for a version that's gone:\n\n```\nbash\ngrep -c \"n8n-nodes-base.aiAgent\\|n8n-nodes-base.openAi\" your-template.json\n# 0 = fine. Anything else = broken on first import.\nThe modern agent node is @n8n/n8n-nodes-langchain.agent (typeVersion 3.1) with promptType: \"define\".\n2. Connections must point at node names, not internal IDs\nOpen the connections object. Every source and target must match a real nodes[].name. Connection strings like \"webhook-bant\" (an internal ID) are from a template that broke the second it was exported - n8n rewrites IDs on import, so those edges just... vanish.\n\"connections\": {\n  \"Lead Webhook (POST)\": { \"main\": [[ { \"node\": \"Score Lead\", \"type\": \"main\" } ]] }\n}\n3. The model sub-node has to be wired\nAn agent without an lmChat* node connected via ai_languageModel is a body without a brain. Import it and it fails on the first run with a credential error nobody will debug for you.\n4. HTTP/Email nodes with empty url / to\nSounds stupid. Happens more than you'd think. Red node within the hour.\n5. Read the system prompt like a contract\nDoes it promise database access, a CRM tool, an \"enrichment tool\" that isn't in the payload? That's the \"confused intern\" problem: the agent will confidently fake answers when the prompt promises tools that don't exist.\nTwo receipts (no social proof theater)\n1. Live BANT qualification agent - public webhook, no setup, no credentials. Paste a lead payload, get back a scored verdict in JSON:\ncurl -X POST https://demo.miguelabarca.workers.dev/webhook/bant-qualification \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"lead\":{\"lead_email\":\"john@acme.com\",\"company\":\"Acme Corp\",\"lead_name\":\"John Smith\",\"budget_status\":\"approved\",\"decision_maker_check\":\"yes\",\"pain_point_validation\":\"manual reporting\",\"timeline_proximity\":\"this quarter\"}}'\n# → {\"score\":100,\"verdict\":\"hot\",\"next_action\":\"Book discovery call\"}\n2. The whole catalog passed the zero-error audit above this week - 77 workflows, 100% English. Fair warning: it's a brand-new store with zero sales, so judge the artifacts, not the hype.\nTry it before you buy anything\n- Free starter pack (5 production agents, no email required): https://gumroad.com/l/xetpfq?utm_source=dev.to&utm_medium=post&utm_campaign=audit10min\n- Full catalog (77 workflows + bundles): https://gumroad.com/miguelabarca?utm_source=dev.to&utm_medium=post&utm_campaign=audit10min - code LAUNCH30 = 30% off.\n- New to n8n? n8n Cloud has a free 14-day trial.\nHappy to share the exact audit script or any of the 5 system prompts - ask in the comments.\nWhat's the gnarliest way a template has broken for you - legacy nodes, phantom connections, or an agent that made up tools?\n```\n\n", "url": "https://wpnews.pro/news/the-n8n-ai-workflow-you-imported-is-probably-broken-here-s-the-10-minute-audit-i", "canonical_source": "https://dev.to/miguel_angelabarcavaldi/the-n8n-ai-workflow-you-imported-is-probably-broken-heres-the-10-minute-audit-i-run-on-every-2ccc", "published_at": "2026-10-20 01:03:30+00:00", "updated_at": "2026-10-20 01:16:49.906846+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools"], "entities": ["n8n", "n8n-nodes-base.aiAgent", "@n8n/n8n-nodes-langchain.agent", "Gumroad", "Reddit"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/the-n8n-ai-workflow-you-imported-is-probably-broken-here-s-the-10-minute-audit-i", "markdown": "https://wpnews.pro/news/the-n8n-ai-workflow-you-imported-is-probably-broken-here-s-the-10-minute-audit-i.md", "text": "https://wpnews.pro/news/the-n8n-ai-workflow-you-imported-is-probably-broken-here-s-the-10-minute-audit-i.txt", "jsonld": "https://wpnews.pro/news/the-n8n-ai-workflow-you-imported-is-probably-broken-here-s-the-10-minute-audit-i.jsonld"}}