Claude at n8n sa VPS: AI workflow guide
Matutong mag-connect ng Claude sa n8n sa sarili mong VPS. Kasama rito ang 3 working AI workflows, cost math, at pag-set up ng credentials nang tama.
What you are building
Tatlong working AI workflows sa n8n instance na pinapatakbo mo na: isang webhook na nag-su-summarize ng anumang ibigay dito, isang scheduled feed-reader na ginagawang structured spreadsheet rows ang mga artikulo, at isang AI Agent na kusang tumatawag ng HTTP API para sumagot sa mga tanong. Ito ang no-code counterpart ng calling the Claude API from Python on your VPS — parehong API, parehong tokens, parehong bill, pero ang orchestration ay nasa n8n nodes sa halip na sa isang script.
Ipinapalagay ko na ang n8n ay naka-set up na sa HTTPS base sa self-hosted n8n on Docker guide. Kung hindi, gawin muna iyan — kailangan ng mga webhook ng totoong TLS endpoint, at ang credential store kung saan mo ilalagay ang API key ay nangangailangan ng encryption-key backup na binabanggit sa guide na iyon.
Ang mga mahahalagang problema dito ay hindi ang drag-and-drop. Ito ay ang model selection bawat node, ang mga prompt fields na tahimik na nag-i-interpolate ng undefined, at ang katotohanang ang automation ay tumatakbo nang walang bantay — ang isang workflow na nagkakahalaga ng kalahating sentimo bawat run ay mura hangga't hindi ito pinapatakbo ng apat na libong beses ng isang retry loop overnight. Karamihan sa guide na ito ay tungkol sa mga iyan.
One credential, encrypted with the key you backed up
Kumuha ng API key mula sa Anthropic Console sa platform.claude.com — Settings, pagkatapos ay API Keys, tapos gumawa ng key na may pangalang katulad ng n8n-vps. Isang beses lang ito ipapakita. Mag-load ng pondo sa account o mag-set up ng billing; ang API usage ay pay-per-token at hiwalay sa anumang Claude.ai subscription.
Sa n8n: Credentials, Create credential, piliin ang Anthropic, i-paste ang key sa API Key field, at i-save. Bawat Claude node sa bawat workflow ay gumagamit ng iisang stored credential na ito — hindi mo dapat i-paste ang key sa loob ng isang node.
Dalawang operational notes. Una, ine-encrypt ng n8n ang mga stored credentials gamit ang N8N_ENCRYPTION_KEY. Kung i-set mo ang env var na iyan nang explicit sa iyong compose file ayon sa n8n guide, mananatiling buhay ang iyong credential kahit i-rebuild ang container; kung hahayaan mo lang na mag-generate ang n8n ng key at mawala ang volume, ang bawat stored credential — kasama ang key na ito — ay magiging unrecoverable ciphertext. I-back up na ang key ngayon kung hindi mo ito ginawa. Pangalawa, ituring ang n8n credential store bilang blast radius: ang sinumang makapag-edit ng workflows sa iyong instance ay makakagawa ng requests gamit ang iyong Anthropic key. Mag-set ng spend limit sa Console sa ilalim ng Settings para magkaroon ng ceiling ang isang compromised o runaway instance.
Model choice is a per-node decision
Ang model dropdown sa Claude nodes ng n8n ay kinukuha nang live mula sa API, kaya ipinapakita nito kung ano ang pwedeng ma-access ng iyong key. As of July 2026, ang lineup at API pricing bawat milyon na input/output tokens ay: Claude Haiku 4.5 (claude-haiku-4-5) sa $1/$5 na may 200K context window, Claude Sonnet 5 (claude-sonnet-5) sa $3/$15 — introductory $2/$10 hanggang August 31, 2026 — at Claude Opus 4.8 (claude-opus-4-8) sa $5/$25, parehong may 1M-token context windows. Mayroon din na Claude Fable 5 (claude-fable-5) sa $10/$50 para sa pinakamahirap na reasoning work; wala sa guide na ito ang nangangailangan nito. Gamitin ang mga eksaktong ID na iyan — ang isang date-suffixed variant na matatandaan mo mula sa lumang tutorial ay magbibigay ng 404, at ang mga presyo ay nagbabago, kaya i-check ang platform.claude.com bago magtiwala sa anumang numerong mababasa mo kahit saan, kasama na dito.
Ang habit na dapat buuin: piliin ang model bawat node, hindi bawat platform. Classification, extraction, summarization, routing — ang mga pangunahing gamit ng automation — ay mabilis tumatakbo sa Haiku sa ikatlong bahagi ng list price ng Sonnet at sa ikalimang bahagi ng Opus. Ireserba ang Sonnet para sa mga agent at multi-step reasoning, at ang Opus para sa bihirang workflow kung saan ang maling sagot ay mas mahal pa kaysa sa tokens. Ang isang workflow na may limang Claude nodes ay pwedeng at dapat maghalo-halo ng mga model.
The two Claude nodes, and which to use where
Ang n8n ay may dalawang magkaibang Anthropic integrations, at ang pagpili ng maling isa ang pinakakaraniwang pagkakamali ng mga beginner.
Ang Anthropic node ay isang regular na app node: isang request sa loob, isang response sa labas. Ang Text resource nito ay may Message a Model operation, pati na rin mga operation para sa pag-analyze ng mga imahe at dokumento. Gamitin ito tuwing ang workflow logic ay nasa loob ng n8n — trigger, Claude call, susunod na node. Ang Workflow 1 at 2 sa ibaba ay gumagamit nito o ng katumbas nitong chain.
Ang Anthropic Chat Model node ay isang sub-node — isang maliit na attachment na nagbibigay ng model sa isang root node gaya ng AI Agent o Basic LLM Chain. Wala itong trigger at walang sariling output; inilalantad nito ang model picker pati na ang mga sampling options gaya ng Maximum Number of Tokens at Sampling Temperature. Isang paalala mula sa n8n docs na dapat tandaan: ang mga expression sa loob ng mga sub-nodes ay laging nag-re-resolve sa unang input item, hindi sa bawat item — ilagay ang per-item expressions sa prompt fields ng root node, hindi sa sub-node.
Workflow 1: webhook in, summary out
Ang hello-world ng AI automation: anumang i-POST sa isang URL ay i-su-summarize at mapupunta sa Slack o sa iyong inbox.
- Webhook node — HTTP Method POST, path
summarize. Ang n8n ay nagbibigay ng test URL at production URL; ang production URL ay makikinig lamang kapag active na ang workflow. - Anthropic node — Message a Model, model
claude-haiku-4-5, Max Tokens ay nasa 300. - Slack node (o Send Email) — i-post ang response text sa isang channel.
Ang prompt ang kung saan nagtatagpo ang n8n expressions at Claude. Ang POST body ay mapupunta sa ilalim ng $json.body, kaya ang user message field ay magmumukhang:
Summarize the following feedback in three bullets, then one line:
verdict: praise | complaint | churn-risk. No preamble.
{{ $json.body.text }}Ilagay ang role at format instructions sa system prompt field ng node, hindi sa user message — ang system prompt ay nananatiling constant habang ang payload ay nagbabago, na nagpapanatili ng stable na behavior at ginagawang madaling basahin ang prompt pagkalipas ng anim na buwan. I-test ito mula sa mismong VPS:
curl -X POST https://n8n.example.com/webhook/summarize \
-H 'Content-Type: application/json' \
-d '{"text": "Third support ticket this month about slow disk IO..."}'Cost per run sa Haiku: ang isang 1,200-token payload plus prompt ay humigit-kumulang $0.0012 sa input, ang 300 tokens sa output ay $0.0015 — halos isang quarter ng isang sentimo. Ang isang libong runs bawat buwan ay mas mababa sa $3. Ang parehong node na nakaturo sa Opus 4.8 ay halos limang beses na mas mahal. Ang ratio na iyan, kapag pinarami sa bawat workflow na gagawin mo, ang dahilan kung bakit mahalaga ang pagpili ng model bawat node.
Workflow 2: scheduled RSS to structured rows
Ngayon ay isang bagay na may schedule, na may structured output: magbasa ng RSS feed bawat oras, i-classify ang bawat item, at mag-append ng mga rows sa isang sheet.
- Schedule Trigger — bawat oras.
- RSS Read — ang feed URL. Naglalabas ng isang item bawat artikulo.
- Basic LLM Chain — na may Anthropic Chat Model sub-node na naka-set sa
claude-haiku-4-5, at isang Structured Output Parser sub-node na may JSON schema. - Google Sheets (o Postgres) — mag-append ng isang row bawat item.
Ang Structured Output Parser ang nagpapalit sa "Claude, please return JSON" mula sa isang hiling tungo sa isang kontrata: niva-validate nito ang sagot ng model laban sa iyong schema at ititigil ang item kung may error sa halip na magsulat ng maling mga rows. Isang schema gaya ng:
{
"type": "object",
"properties": {
"category": { "type": "string", "enum": ["release", "security", "tutorial", "other"] },
"relevance": { "type": "number" },
"one_line_summary": { "type": "string" }
},
"required": ["category", "relevance", "one_line_summary"]
}At ang prompt ng chain ay tumutukoy sa feed item:
Classify this article for a VPS hosting audience.
Title: {{ $json.title }}
Content: {{ $json.contentSnippet }}Nagbabago ang math ng cost dito: ito ay per-item, hindi per-run. Limampung artikulo bawat oras, dalawampu't apat na oras bawat araw, ay 36,000 Claude calls bawat buwan — sa Haiku ay maaaring $40–$90 depende sa haba ng artikulo, sa Opus ay halos limang beses na mas mahal. Mag-deduplicate bago ang LLM node (isang simpleng IF laban sa mga nakitang links na dati na, o ang Remove Duplicates node ng n8n) at bababa ang bilang, dahil karamihan sa mga hourly poll ay walang bagong laman. Ang pinakamurang token ay ang call na hindi mo ginawa.
Workflow 3: an AI Agent that uses tools
Ang unang dalawang workflow ay mga pipeline — ikaw ang nagdedesisyon sa mga hakbang. Ang isang AI Agent node ay kabaligtaran nito: bibigyan mo ang Claude ng isang goal at mga tools, at ito ang magdedesisyon kung aling mga tools ang tatawagin, sa anong pagkakasunod-sunod, hanggang sa matapos ito. Kailangan ng n8n ng isang chat model sub-node at kahit isang tool sub-node na nakakabit.
Isang konkretong build — isang ops assistant na sumasagot ng "ano ang down at bakit" mula sa iyong monitoring:
- Chat Trigger (o webhook) — papasok ang tanong.
- AI Agent — na may Anthropic Chat Model sub-node na naka-set sa
claude-sonnet-5. Ang mga agent ay nagpaplano at nagkakabit ng mga tool calls; kayang patakbuhin ng Haiku ang mga simpleng single-tool agents, pero ang Sonnet ang tamang base kapag dumami na ang mga tools. - HTTP Request node na nakakabit bilang isang tool — nakaturo sa iyong Uptime Kuma status API o Zabbix endpoint. Ang pangalawang HTTP tool ay pwedeng tumama sa kahit ano pang may REST API.
Dalawang settings ang gumagawa ng karamihan sa trabaho. Ang System Message ng agent ang nagtatakda ng trabaho: "You are an ops assistant. Use the status tool to check current monitor state before answering. Report only monitors that are down, with duration." At ang description ng bawat tool ay hindi dokumentasyon para sa mga tao — ito ang paraan kung paano magdedesisyon ang Claude kung kailan ito tatawagin. Ang "Returns current up/down state for all monitored services as JSON" ay tatawagin sa tamang mga sandali; ang "status API" ay hindi papansinin o maliligaw ng gamit. Kapag ikinabit mo ang HTTP Request node bilang isang tool, i-enable ang Optimize Response option nito at piliin ang mga JSON fields na mahalaga — kung hindi, ang bawat mahabang API response ay mapupunta sa context ng model bilang input tokens na babayaran mo.
I-set ang Max Iterations sa agent (ang default ay 10) sa pinakamaliit na numerong gumagana — ito ang pagkakaiba sa pagitan ng "sumuko ang agent pagkatapos ng 4 na tool calls" at isang loop ng dose-dosenang model round-trips. At intindihin ang billing shape: ang bawat iteration ay muling nagpapadala ng buong usapan hanggang sa kasalukuyan — system message, tanong, bawat nakaraang tool result — bilang input tokens. Ang isang anim-iteration na agent run ay madaling umabot sa 20,000 cumulative input tokens at 2,000 output: sa introductory pricing ng Sonnet 5 ay humigit-kumulang $0.06, halos $0.09 sa standard na $3/$15 — ituring na bente beses na simpleng summarization run. Kung mapapansin mong nagkakabit ka ng maraming tools sa isang agent, iyan ang punto kung saan ang running MCP servers on your VPS ay nagiging mas malinis na architecture.
Cost guardrails, because nobody is watching
Ang isang unattended workflow ay nangangailangan ng mga kontrol na ibinibigay ng isang tao sa keyboard. Apat na layer, mula sa pinakamura.
Max Tokens sa bawat Claude node. Ito ay isang hard output cap. Ang isang summarizer ay nangangailangan ng 300, ang isang classifier ay 100. Nililimitahan nito ang mahal na bahagi ng ledger ($5–$25 bawat milyon na output tokens kumpara sa $1–$5 para sa input) at nagsisilbi ring brake para sa runaway processes — ang isang prompt bug na nagpapahalaga sa Claude na magsalita nang mahaba ay nagkakahalaga lamang ng 300 tokens, hindi 8,000.
Model per node. Nabanggit na sa itaas; ito ay isang five-to-tenfold price lever sa kasalukuyang lineup at tumatagal lamang ng sampung segundo sa pag-set.
Bound the loops. Max Iterations sa mga agent. Isang workflow timeout sa settings ng workflow para ang isang stuck na execution ay mamatay sa halip na magpatuloy nang walang hanggan. At mag-ingat sa per-node Retry On Fail: ito ang tamang tool para sa mga transient error, pero ang mga retry ay nagpaparami ng cost — ang Max Tries na 3 na may Wait Between Tries na 5000 ms ay nangangahulugang ang isang persistent failure ay magbabayad sa iyo ng hanggang tatlong beses bawat item bago sumuko. Huwag kailanman maglagay ng retry sa paligid ng isang node na matagumpay nang nakapag-execute nang mahal.
Isang error workflow bilang backstop. Gumawa ng workflow na nagsisimula sa Error Trigger node na nagpo-post ng pangalan ng failed workflow at error sa Slack, pagkatapos ay i-set ito bilang Error Workflow sa settings ng bawat AI workflow. Ang failure mode na nahuhuli nito ay ang malalang uri: isang schedule-triggered workflow na nagkakaroon ng error sa bawat run, bawat oras, sa loob ng isang linggo — bawat run ay kumakain ng tokens bago ito mamatay. Ipares ito sa isang monthly spend limit sa Anthropic Console at i-check ang usage page ng Console sa mga unang araw pagkatapos i-activate ang anumang naka-schedule. Kung gusto mong intindihin nang eksakto kung ano ang binabayaran mo, sinusuri ito ng the token-usage guide.
Failure modes, with the strings you will see
Ang node ay agad na nag-e-error ng "Authorization failed - please check your credentials." Ang API ay nagbalik ng 401. Ang nilalaman ng body ay:
{"type": "error", "error": {"type": "authentication_error", "message": "invalid x-api-key"}}Maling pagkaka-paste ng key — truncated, may trailing whitespace, o ang placeholder mula sa isang tutorial. I-recreate ang n8n credential at i-paste muli; kung gumana ito kahapon, i-check kung ang key ay na-revoke sa Console o kung ang isang volume restore ay nagbalik sa isang credential na naka-encrypt gamit ang ibang N8N_ENCRYPTION_KEY.
Ang mga executions ay nag-e-error nang sunod-sunod na may 429 rate_limit_error, mensahe na katulad ng "Number of request tokens has exceeded your per-minute rate limit." Ang mga rate limits ay per-minute buckets, at ang n8n ay napakadaling gamitin para magpadala ng limampung webhook o RSS executions nang sabay-sabay. Ayusin ito nang structural: i-process ang mga item nang sunod-sunod (Loop Over Items) sa halip na parallel, at i-set ang Retry On Fail na may Max Tries 3 at Wait Between Tries sa maximum nitong 5000 ms — ang n8n ay may cap sa field na iyan sa 5000 ms. Kapag kailangan mo ng mas mahabang backoff para ang mga retry ay pumasok sa susunod na minute window, maglagay ng Wait node sa error path o i-process ang mga item nang isa-isa. Ang response ay may retry-after header na nagsasabi sa iyo kung gaano katagal dapat maghintay — ang fixed wait ng n8n ay hindi kayang basahin ito, kaya gumawa ng mas mahabang pause nang manual.
404 not_found_error dahil sa maling pangalan ng iyong model. Ang body ay inuulit ang typo:
{"type": "error", "error": {"type": "not_found_error", "message": "model: claude-haiku-4.5"}}Mga tuldok sa halip na hyphens (4.5 para sa 4-5), isang date suffix mula sa isang lumang blog post, o isang retired model. Ayusin ang ID base sa kasalukuyang listahan — ito ay nakakairita sa mga taong nagta-type sa model field bilang isang expression sa halip na pumipili mula sa dropdown.
Sumasagot si Claude sa tanong na hindi mo tinanong. Walang error kahit saan — ang run ay green. Ang isang n8n expression na tumutukoy sa isang kulang na field, gaya ng {{ $json.body.text }} kapag ang payload ay gumamit ng message, ay naglalagay ng literal na string na undefined sa iyong prompt, at ang Claude ay sumasagot sa isang prompt tungkol sa wala. Kung ang tinutukoy na node ay hindi man lang nag-execute, makukuha mo ang "Referenced node is unavailable", pero ang isang kulang na field ay tahimik. Bago i-activate, laging mag-run nang isang beses gamit ang totoong data at basahin ang aktwal na rendered prompt sa input panel ng node — ang expression editor ay nagpapakita ng resolved value, at ang undefined ay nandiyan lang kung titingin ka.
FAQ
How do I connect Claude to n8n?
Gumawa ng API key sa Anthropic Console sa platform.claude.com, pagkatapos ay sa n8n ay magdagdag ng credential na uri Anthropic at i-paste ito sa API Key field. Bawat Claude node — ang Anthropic app node at ang Anthropic Chat Model sub-node — ay gumagamit ng nakaimbak na credential na iyon. Ine-encrypt ito ng n8n gamit ang N8N_ENCRYPTION_KEY, kaya i-back up ang key na iyan o mawawala ang iyong mga credentials kasama ang volume.
What does an AI workflow cost per run?
Tantyahin ang tokens bawat run, pagkatapos ay i-multiply sa per-million prices ng model — as of July 2026, ang Haiku 4.5 ay $1/$5 bawat milyon na input/output tokens at ang Sonnet 5 ay $3/$15 ($2/$10 introductory hanggang August 2026). Ang isang webhook summarization sa Haiku ay tumatakbo ng halos isang quarter ng isang sentimo; ang isang agent run sa Sonnet na may ilang tool calls ay mas malapit sa $0.06–$0.10 dahil ang bawat iteration ay muling nagpapadala ng buong usapan bilang input. I-verify ang run sa usage page ng Console sa halip na magtiwala sa mga tantya.
Which Claude model should I use for n8n automations?
Haiku 4.5 para sa classification, extraction, summarization, at routing — mga high-volume na trabaho kung saan mas mahalaga ang bilis at presyo. Sonnet 5 para sa mga AI Agent nodes at multi-step reasoning. Opus 4.8 lamang kung saan ang maling sagot ay sapat na mahal para i-justify ang $5/$25 list price nito — limang beses ang mahal sa Haiku, at medyo mas mababa sa dalawang beses ng Sonnet. I-set ang model bawat node, hindi bawat workflow — ang isang workflow ay pwedeng maghalo ng tatlo.
How do I stop an n8n workflow from overspending on the Claude API?
I-layer ang mga guardrails: mababang Max Tokens sa bawat Claude node, Max Iterations sa mga agent, isang workflow timeout, at maingat na Retry On Fail settings para hindi dumami ang token spend dahil sa mga failure. Pagkatapos ay magdagdag ng Error Trigger workflow na mag-a-alert sa iyo sa Slack kapag ang anumang AI workflow ay nag-fail, at mag-set ng monthly spend limit sa Anthropic Console bilang hard ceiling na hindi kayang i-override ng kahit ano sa VPS.
Do AI Agent tool calls cost extra?
Walang hiwalay na tool fee, pero ang mga tools ay hindi libre: ang bawat tool result ay ibinabalik sa model bilang input tokens, at ang bawat agent iteration ay muling nagpapadala ng buong usapan hanggang sa kasalukuyan. Ang isang maingay na API response na ipinasa nang walang filter ay pwedeng mas malaki pa kaysa sa iyong aktwal na prompt — i-enable ang Optimize Response sa mga HTTP Request tools at ibalik lamang ang mga fields na kailangan ng agent.