1:"$Sreact.fragment" 2:I[97333,["/_next/static/chunks/51cf3403df3ab8db.js","/_next/static/chunks/e1faea17a9e9ed14.js"],""] 45:I[39271,["/_next/static/chunks/1f465ca74a71847d.js","/_next/static/chunks/6628e8793cd41c7c.js"],"OutletBoundary"] 46:"$Sreact.suspense" 0:{"buildId":"3CCc4JxoD54WNKxdcWa8x","rsc":["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-[var(--bg)]","children":["$","article",null,{"className":"section-container pt-32 max-w-3xl","children":[["$","$L2",null,{"href":"/blog","className":"inline-flex items-center gap-2 text-sm text-muted hover:text-accent transition-colors mb-8","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","aria-hidden":"true","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Back to Blog"]}],["$","header",null,{"className":"mb-10","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-3 text-sm text-muted mb-4","children":[["$","span",null,{"className":"inline-flex items-center gap-1.5","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-calendar h-3.5 w-3.5","aria-hidden":"true","children":[["$","path","1cmpym",{"d":"M8 2v4"}],["$","path","4m81vk",{"d":"M16 2v4"}],["$","rect","1hopcy",{"width":"18","height":"18","x":"3","y":"4","rx":"2"}],["$","path","8toen8",{"d":"M3 10h18"}],"$undefined"]}],"April 5, 2025"]}],["$","span",null,{"className":"inline-flex items-center gap-1.5","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-clock h-3.5 w-3.5","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","mmk7yg",{"d":"M12 6v6l4 2"}],"$undefined"]}],"8 min read"]}]]}],["$","h1",null,{"className":"font-[family-name:var(--font-outfit)] text-3xl font-bold tracking-tight text-foreground sm:text-4xl lg:text-5xl","children":"Building Intelligent Automation Pipelines with n8n and AI"}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-2","children":[["$","span","n8n",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"n8n"}],["$","span","Workflow Automation",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"Workflow Automation"}],["$","span","AI Integration",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"AI Integration"}],["$","span","LLMs",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"LLMs"}],["$","span","No-Code",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"No-Code"}]]}]]}],["$","div",null,{"className":"prose-custom","children":[["$","h1",null,{"className":"font-[family-name:var(--font-outfit)] text-3xl font-bold tracking-tight text-foreground mt-10 mb-4 first:mt-0","children":"Building Intelligent Automation Pipelines with n8n and AI"}],"\n",["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"n8n has quietly become one of my favorite tools for building AI-powered automations. While LangChain and LangGraph are excellent for building complex agent systems, sometimes what you need is a reliable workflow that connects an LLM to your existing tools — and n8n does this exceptionally well."}],"\n",["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"In this post, I'll walk through three production workflows I've built with n8n, explain why I chose n8n over alternatives, and share the patterns I've learned for making AI workflows reliable."}],"\n",["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Why n8n Over Zapier, Make, or Pure Code?"}],"\n","$L3","\n","$L4","\n","$L5","\n","$L6","\n","$L7","\n","$L8","\n","$L9","\n","$La","\n","$Lb","\n","$Lc","\n","$Ld","\n","$Le","\n","$Lf","\n","$L10","\n","$L11","\n","$L12","\n","$L13","\n","$L14","\n","$L15","\n","$L16","\n","$L17","\n","$L18","\n","$L19","\n","$L1a","\n","$L1b","\n","$L1c","\n","$L1d","\n","$L1e","\n","$L1f","\n","$L20","\n","$L21","\n","$L22","\n","$L23","\n","$L24","\n","$L25","\n","$L26","\n","$L27","\n","$L28","\n","$L29","\n","$L2a","\n","$L2b","\n","$L2c","\n","$L2d","\n","$L2e","\n","$L2f","\n","$L30","\n","$L31","\n","$L32","\n","$L33","\n","$L34","\n","$L35","\n","$L36","\n","$L37","\n","$L38","\n","$L39"]}]]}]}],["$L3a"],"$L3b"]}],"loading":null,"isPartial":false} 3:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"I evaluated several options before settling on n8n:"}] 4:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"| Feature | n8n | Zapier | Make | Custom Code |\n|---------|-----|--------|------|-------------|\n| Self-hosted | Yes | No | No | Yes |\n| AI/LLM nodes | Native | Limited | Limited | Full control |\n| Complex branching | Excellent | Basic | Good | Full control |\n| Cost at scale | Low (self-hosted) | Expensive | Moderate | Dev time |\n| Debugging | Visual + logs | Basic | Good | Full control |\n| Team collaboration | Good | Good | Good | Git-based |"}] 5:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"The deciding factors for me:"}]}] 6:["$","ol",null,{"className":"list-decimal list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Self-hosting"}],": Our healthcare data can't leave our infrastructure. n8n runs on our own servers."]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Native AI nodes"}],": Built-in OpenAI, Anthropic, and custom LLM nodes — no hacky HTTP requests."]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Code when needed"}],": The Code node lets me write JavaScript/Python when visual nodes aren't enough."]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Visual debugging"}],": When a workflow fails at 3 AM, I can see exactly which node failed and why."]}],"\n"]}] 7:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Workflow 1: Intelligent Lead Enrichment"}] 8:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"The problem:"}]," Sales team gets inbound leads with just a name and email. They need company info, tech stack, and a personalized outreach draft before the first call."]}] 9:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"The n8n workflow:"}]}] a:["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","children":"[Webhook Trigger]\n → [Clearbit Enrichment]\n → [LinkedIn Scrape via API]\n → [Merge Data]\n → [AI Analysis Node]\n → [Generate Outreach Draft]\n → [Save to CRM]\n → [Slack Notification]\n"}]}] b:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Here's the interesting part — the AI Analysis node:"}] c:["$","figure",null,{"data-rehype-pretty-code-figure":"","children":["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","style":{"backgroundColor":"#22272e","color":"#adbac7"},"tabIndex":"0","data-language":"javascript","data-theme":"github-dark-dimmed","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","data-language":"javascript","data-theme":"github-dark-dimmed","style":{"display":"grid"},"children":[["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"// n8n Code Node: Analyze enriched lead data"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"const"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" leadData"}],["$","span",null,{"style":{"color":"#F47067"},"children":" ="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" $input."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"first"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"().json;"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"const"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" prompt"}],["$","span",null,{"style":{"color":"#F47067"},"children":" ="}],["$","span",null,{"style":{"color":"#96D0FF"},"children":" `Analyze this lead and provide:"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"1. Company size category (startup/SMB/enterprise)"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"2. Likely pain points based on their tech stack"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"3. Which of our products is the best fit"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"4. Recommended conversation starters"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"Lead data:"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Name: ${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"leadData"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"name"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Company: ${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"leadData"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"company"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Industry: ${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"leadData"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"industry"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Tech Stack: ${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"leadData"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"technologies"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"?."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"join"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"("}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"', '"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":")"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Company Size: ${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"leadData"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"employees"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Recent News: ${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"leadData"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"recentNews"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$L3c","$L3d"]}],"\n","$L3e","\n","$L3f"]}]}]}] d:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"The output feeds into an OpenAI node configured with GPT-4, then the generated analysis and outreach draft are saved to HubSpot and a Slack notification goes to the assigned sales rep."}] e:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Results:"}]," Average time from lead submission to enriched profile: 45 seconds (down from 2 hours of manual research)."]}] f:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Workflow 2: AI-Powered Content Pipeline"}] 10:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"The problem:"}]," We publish weekly technical blog posts and social media content. The research, drafting, and formatting process was eating 8+ hours per week."]}] 11:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"The workflow:"}]}] 12:["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","children":"[Schedule Trigger (Monday 9 AM)]\n → [Fetch Trending Topics from RSS/APIs]\n → [AI: Select Best Topic]\n → [AI: Generate Outline]\n → [Human Review (Wait Node)]\n → [AI: Write Full Draft]\n → [AI: Generate Social Posts]\n → [Format for WordPress]\n → [Create Draft in WordPress]\n → [Schedule Social Posts (Buffer API)]\n → [Slack: Notify Team]\n"}]}] 13:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["The magic is in the ",["$","strong",null,{"className":"font-semibold text-foreground","children":"Human Review"}]," step. n8n's Wait node pauses the workflow and sends a webhook URL via email. The content lead clicks approve/reject/modify, and the workflow continues."]}] 14:["$","figure",null,{"data-rehype-pretty-code-figure":"","children":["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","style":{"backgroundColor":"#22272e","color":"#adbac7"},"tabIndex":"0","data-language":"javascript","data-theme":"github-dark-dimmed","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","data-language":"javascript","data-theme":"github-dark-dimmed","style":{"display":"grid"},"children":[["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"// Topic selection with scoring"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"const"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" topics"}],["$","span",null,{"style":{"color":"#F47067"},"children":" ="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" $input."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"all"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"()."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"map"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"("}],["$","span",null,{"style":{"color":"#F69D50"},"children":"item"}],["$","span",null,{"style":{"color":"#F47067"},"children":" =>"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" item.json);"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"const"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" scoringPrompt"}],["$","span",null,{"style":{"color":"#F47067"},"children":" ="}],["$","span",null,{"style":{"color":"#96D0FF"},"children":" `Score each topic 1-10 on:"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Relevance to our audience (AI engineers)"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Timeliness (is this trending?)"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"- Uniqueness (can we add original perspective?)"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"- SEO potential"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"Topics:"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"$${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"topics"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"map"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"(("}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"t"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":", "}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"i"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":") "}],["$","span",null,{"style":{"color":"#F47067"},"children":"=>"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":" `${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"i"}],["$","span",null,{"style":{"color":"#F47067"},"children":"+"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"1"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}. ${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"t"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"title"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}: ${"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"t"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"summary"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}`"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":")."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"join"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"("}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"'"}],["$","span",null,{"style":{"color":"#F47067"},"children":"\\n"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"'"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":")"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"Return the top 3 with scores and reasoning.`"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":";"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"return"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" [{ json: { prompt: scoringPrompt, topics } }];"}]]}]]}]}]}] 15:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Key design decision:"}]," We never publish AI-generated content without human review. The AI does the heavy lifting (research, drafting, formatting), but a human always makes the final call."]}] 16:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Workflow 3: Customer Onboarding Intelligence"}] 17:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"The problem:"}]," New customers fill out an onboarding form. We need to analyze their requirements, generate a customized setup guide, configure their account, and assign the right support tier."]}] 18:["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","children":"[Form Submission Webhook]\n → [Branch: Company Size]\n ├─ [Enterprise Path]\n │ → [AI: Deep Requirements Analysis]\n │ → [Generate Custom Architecture Doc]\n │ → [Assign Senior Account Manager]\n │ → [Schedule Kickoff Call]\n └─ [SMB Path]\n → [AI: Standard Setup Analysis]\n → [Generate Quick-Start Guide]\n → [Auto-Configure Account]\n → [Send Welcome Email Sequence]\n"}]}] 19:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"The AI Requirements Analysis node is particularly sophisticated:"}] 1a:["$","figure",null,{"data-rehype-pretty-code-figure":"","children":["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","style":{"backgroundColor":"#22272e","color":"#adbac7"},"tabIndex":"0","data-language":"javascript","data-theme":"github-dark-dimmed","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","data-language":"javascript","data-theme":"github-dark-dimmed","style":{"display":"grid"},"children":[["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"// Analyze customer requirements and generate recommendations"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"const"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" formData"}],["$","span",null,{"style":{"color":"#F47067"},"children":" ="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" $input."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"first"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"().json;"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"const"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" analysisPrompt"}],["$","span",null,{"style":{"color":"#F47067"},"children":" ="}],["$","span",null,{"style":{"color":"#96D0FF"},"children":" `You are a technical solutions architect. Analyze this"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"customer's onboarding form and provide:"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"1. INFRASTRUCTURE RECOMMENDATIONS"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":" - Based on their expected load and data volume"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":" - Any compliance requirements (HIPAA, GDPR, SOC2)"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"2. INTEGRATION PRIORITY"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":" - Which integrations to set up first based on their tech stack"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":" - Potential compatibility issues to flag"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"3. SUCCESS METRICS"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":" - What KPIs should we track for this customer?"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":" - Expected time to first value"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"4. RISK FLAGS"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":" - Any requirements that might be challenging?"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":" - Potential scope creep areas"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"Customer Form Data:"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"$${"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"JSON"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"stringify"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"("}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"formData"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":", "}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"null"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":", "}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"2"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":")"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#96D0FF"},"children":"Be specific. Reference their actual tech stack and requirements.`"}],"$L40"]}],"\n","$L41","\n","$L42"]}]}]}] 1b:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Patterns for Reliable AI Workflows"}] 1c:["$","h3",null,{"className":"font-[family-name:var(--font-outfit)] text-xl font-semibold text-foreground mt-8 mb-3","children":"1. Always Have Fallbacks"}] 1d:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Every AI node should have an error path. If the LLM fails, times out, or returns garbage, the workflow should handle it gracefully:"}] 1e:["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","children":"[AI Node]\n ├─ [Success] → Continue workflow\n └─ [Error] → [Notify team] → [Queue for manual processing]\n"}]}] 1f:["$","h3",null,{"className":"font-[family-name:var(--font-outfit)] text-xl font-semibold text-foreground mt-8 mb-3","children":"2. Validate AI Output"}] 20:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Never trust LLM output blindly. Add a validation step after every AI node:"}] 21:["$","figure",null,{"data-rehype-pretty-code-figure":"","children":["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","style":{"backgroundColor":"#22272e","color":"#adbac7"},"tabIndex":"0","data-language":"javascript","data-theme":"github-dark-dimmed","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","data-language":"javascript","data-theme":"github-dark-dimmed","style":{"display":"grid"},"children":[["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"// Validate AI response structure"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"const"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" aiResponse"}],["$","span",null,{"style":{"color":"#F47067"},"children":" ="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" $input."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"first"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"().json;"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"try"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" {"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":" const"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" parsed"}],["$","span",null,{"style":{"color":"#F47067"},"children":" ="}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" JSON"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"."}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":"parse"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"(aiResponse.text);"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":" if"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" ("}],["$","span",null,{"style":{"color":"#F47067"},"children":"!"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"parsed.recommendation "}],["$","span",null,{"style":{"color":"#F47067"},"children":"||"}],["$","span",null,{"style":{"color":"#F47067"},"children":" !"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"parsed.confidence) {"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":" throw"}],["$","span",null,{"style":{"color":"#F47067"},"children":" new"}],["$","span",null,{"style":{"color":"#DCBDFB"},"children":" Error"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"("}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"'Missing required fields'"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":");"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#ADBAC7"},"children":" }"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":" if"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" (parsed.confidence "}],["$","span",null,{"style":{"color":"#F47067"},"children":"<"}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":" 0.6"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":") {"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":" // Route to human review instead of auto-processing"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":" return"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" [{ json: { "}],["$","span",null,{"style":{"color":"#F47067"},"children":"..."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"parsed, needsReview: "}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"true"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" } }];"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#ADBAC7"},"children":" }"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":" return"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" [{ json: { "}],["$","span",null,{"style":{"color":"#F47067"},"children":"..."}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"parsed, needsReview: "}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"false"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" } }];"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":"} "}],["$","span",null,{"style":{"color":"#F47067"},"children":"catch"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" (e) {"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":" // AI returned unparseable response — flag for manual handling"}]}],"\n","$L43","\n","$L44"]}]}]}] 22:["$","h3",null,{"className":"font-[family-name:var(--font-outfit)] text-xl font-semibold text-foreground mt-8 mb-3","children":"3. Implement Rate Limiting"}] 23:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"When workflows process batches, you'll hit API rate limits. Use n8n's built-in batch processing with delays:"}] 24:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Process items in batches of 5"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Add a 2-second Wait node between batches"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Use the HTTP Request node's built-in retry with exponential backoff"}],"\n"]}] 25:["$","h3",null,{"className":"font-[family-name:var(--font-outfit)] text-xl font-semibold text-foreground mt-8 mb-3","children":"4. Log Everything"}] 26:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Create a dedicated logging workflow that every AI workflow calls:"}] 27:["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","children":"[Any Workflow] → [Webhook: Log Event]\n → [Enrich with metadata]\n → [Save to PostgreSQL]\n → [If error: Alert on Slack]\n"}]}] 28:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"This gives you a centralized audit trail of every AI decision across all workflows."}] 29:["$","h3",null,{"className":"font-[family-name:var(--font-outfit)] text-xl font-semibold text-foreground mt-8 mb-3","children":"5. Version Your Prompts"}] 2a:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Store prompts in a database or config file, not inline in the workflow. This lets you:"}] 2b:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"A/B test different prompts"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Roll back when a new prompt performs worse"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Track which prompt version produced which output"}],"\n"]}] 2c:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Cost Management"}] 2d:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"AI API costs can spiral quickly in automated workflows. Here's how I keep them in check:"}] 2e:["$","ol",null,{"className":"list-decimal list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Use the cheapest model that works"}],": GPT-4 mini for classification, GPT-4 only for complex analysis"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Cache responses"}],": If the same input comes through twice, return the cached response"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Set daily budgets"}],": n8n's credential system lets you swap API keys, but I also add a Code node that checks a daily spend counter"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Batch when possible"}],": Instead of calling the API per item, batch 10 items into one call"]}],"\n"]}] 2f:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Deploying n8n for Production"}] 30:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Our production setup:"}] 31:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Hosting"}],": Docker on a dedicated VM (4 CPU, 8GB RAM)"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Database"}],": PostgreSQL for workflow data and execution logs"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Queue"}],": Redis for workflow execution queue (handles concurrent workflows)"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Monitoring"}],": Prometheus + Grafana dashboards for workflow success rates and latency"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Backups"}],": Daily database backups + workflow JSON exports to Git"]}],"\n"]}] 32:["$","figure",null,{"data-rehype-pretty-code-figure":"","children":["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","style":{"backgroundColor":"#22272e","color":"#adbac7"},"tabIndex":"0","data-language":"yaml","data-theme":"github-dark-dimmed","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","data-language":"yaml","data-theme":"github-dark-dimmed","style":{"display":"grid"},"children":[["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"# docker-compose.yml excerpt"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#8DDB8C"},"children":"services"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":":"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#8DDB8C"},"children":" n8n"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":":"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#8DDB8C"},"children":" image"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":": "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"n8nio/n8n:latest"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#8DDB8C"},"children":" environment"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":":"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":" - "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"DB_TYPE=postgresdb"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":" - "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"DB_POSTGRESDB_HOST=postgres"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":" - "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"EXECUTIONS_MODE=queue"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":" - "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"QUEUE_BULL_REDIS_HOST=redis"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":" - "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"N8N_METRICS=true"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#8DDB8C"},"children":" volumes"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":":"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":" - "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"n8n_data:/home/node/.n8n"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#8DDB8C"},"children":" restart"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":": "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"always"}]]}]]}]}]}] 33:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"When NOT to Use n8n"}] 34:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"n8n isn't the right tool for everything:"}] 35:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Complex agent loops"}],": If your agent needs to dynamically decide its next action based on tool results, use LangGraph"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Real-time processing"}],": n8n adds latency. For sub-second responses, write custom code"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Heavy computation"}],": ML model inference, large data processing — use dedicated services"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Simple cron jobs"}],": If you just need to run a script on a schedule, a cron job is simpler"]}],"\n"]}] 36:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Conclusion"}] 37:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"n8n sits in a sweet spot between no-code simplicity and developer flexibility. For AI workflows that connect multiple services, need visual debugging, and require human-in-the-loop steps, it's hard to beat. The key is knowing when to use it versus when to reach for a more powerful (but more complex) framework like LangGraph."}] 38:["$","hr",null,{"className":"my-8 border-[var(--card-border)]"}] 39:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","em",null,{"children":"Next time, I'll share how we use n8n alongside LangGraph — using n8n for the outer orchestration (triggering, scheduling, notifications) and LangGraph for the inner AI reasoning."}]}] 3a:["$","script","script-0",{"src":"/_next/static/chunks/e1faea17a9e9ed14.js","async":true}] 3b:["$","$L45",null,{"children":["$","$46",null,{"name":"Next.MetadataOutlet","children":"$@47"}]}] 3c:["$","span",null,{"style":{"color":"#96D0FF"},"children":"Be specific and actionable. No generic advice.`"}] 3d:["$","span",null,{"style":{"color":"#ADBAC7"},"children":";"}] 3e:["$","span",null,{"data-line":"","children":" "}] 3f:["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"return"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" [{ json: { prompt, leadData } }];"}]]}] 40:["$","span",null,{"style":{"color":"#ADBAC7"},"children":";"}] 41:["$","span",null,{"data-line":"","children":" "}] 42:["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"return"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" [{ json: { prompt: analysisPrompt } }];"}]]}] 43:["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":" return"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" [{ json: { error: "}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"true"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":", rawResponse: aiResponse.text } }];"}]]}] 44:["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#ADBAC7"},"children":"}"}]}] 47:null