Claude + n8n: AI-воркфлоу на власному VPS
Підключіть Claude до n8n на власному VPS: credentials, вибір моделі для вузлів, 3 готові AI-воркфлоу, розрахунок вартості та типові помилки.
Що ви створюєте
Три робочі AI-воркфлоу в інстансі n8n, який уже запущено: webhook, що підсумовує все, що ви йому передаєте; запланований feed reader, який перетворює статті на структуровані рядки електронної таблиці; і AI Agent, який самостійно викликає HTTP API, щоб відповідати на запитання. Це no-code-альтернатива виклику Claude API з Python на вашому VPS: той самий API, ті самі токени, той самий рахунок, але оркестрація виконується у вузлах n8n, а не в скрипті.
Я припускаю, що n8n уже працює за HTTPS відповідно до інструкції зі self-hosted n8n у Docker. Якщо це не так, спочатку налаштуйте його. Для webhook потрібен справжній TLS endpoint, а сховищу облікових даних, куди ви зараз додасте API key, потрібна резервна копія encryption key, про яку попереджає ця інструкція.
Основні проблеми тут не пов’язані з перетягуванням елементів. Вони стосуються вибору моделі для кожного вузла, полів prompt, у яких непомітно підставляється undefined, і того, що автоматизація працює без нагляду. Workflow, виконання якого коштує пів цента, залишається дешевим, доки цикл повторних спроб не запустить його чотири тисячі разів за ніч. Більшу частину цієї інструкції присвячено саме цим питанням.
Один credential, зашифрований ключем, резервну копію якого ви створили
Отримайте API key в Anthropic Console за адресою platform.claude.com: відкрийте Settings, потім API Keys і створіть ключ із назвою на кшталт n8n-vps. Ключ відображається лише один раз. Поповніть обліковий запис або налаштуйте billing. Використання API оплачується за кількістю токенів і повністю окреме від будь-якої підписки Claude.ai.
У n8n відкрийте Credentials, виберіть Create credential, вкажіть Anthropic, вставте ключ у поле API Key і збережіть credential. Кожен вузол Claude у кожному workflow посилається на цей збережений credential. Не вставляйте ключ безпосередньо у вузол.
Два важливі операційні моменти. По-перше, n8n шифрує збережені облікові дані за допомогою N8N_ENCRYPTION_KEY. Якщо явно вказати цю змінну середовища у файлі compose відповідно до інструкції n8n, облікові дані збережуться після перебудови контейнера. Якщо дозволити n8n згенерувати ключ, а потім втратити volume, усі збережені облікові дані, включно з цим ключем, перетворяться на невідновлюваний шифротекст. Якщо ви пропустили цей крок, створіть резервну копію ключа зараз.
По-друге, вважайте сховище облікових даних n8n межею потенційного впливу: будь-хто, хто може редагувати workflow у вашому екземплярі, зможе надсилати запити з вашим ключем Anthropic. Community edition не має дозволів для окремих користувачів на рівні облікових даних. Якщо до цього екземпляра входять інші користувачі, перед наданням облікових записів прочитайте які засоби контролю доступу надає платна ліцензія n8n. У Console у розділі Settings встановіть ліміт витрат, щоб скомпрометований або неконтрольовано навантажений екземпляр мав верхню межу витрат.
Вибір моделі — окреме рішення для кожної ноди
Список моделей у нодах Claude для n8n завантажується безпосередньо з API, тому в ньому відображаються моделі, доступні для вашого ключа. Станом на July 2026 перелік і ціни API за мільйон вхідних/вихідних токенів такі: Claude Haiku 4.5 (claude-haiku-4-5) — $1/$5, контекстне вікно 200K токенів; Claude Sonnet 5 (claude-sonnet-5) — $3/$15, а до August 31, 2026 діє вступна ціна $2/$10; Claude Opus 4.8 (claude-opus-4-8) — $5/$25. Для двох останніх моделей доступні контекстні вікна на 1M токенів. Також є Claude Fable 5 (claude-fable-5) — $10/$50 — для найскладніших задач, що потребують міркування; у цьому посібнику вона не потрібна. Використовуйте саме ці ідентифікатори: варіант із датою в назві, який ви пам’ятаєте зі старого посібника, поверне помилку 404. Ціни змінюються, тому перевіряйте platform.claude.com, перш ніж покладатися на будь-які цифри, наведені будь-де, зокрема тут.
Варто сформувати таку звичку: вибирайте модель для кожної ноди, а не для всієї платформи. Класифікація, вилучення даних, узагальнення та маршрутизація — основні задачі автоматизації — чудово виконуються на Haiku за третину list price Sonnet і п’яту частину list price Opus. Використовуйте Sonnet для агентів і багатокрокового міркування, а Opus — для рідкісних workflow, у яких неправильна відповідь коштує дорожче за витрачені токени. Workflow із п’ятьма нодами Claude може і має поєднувати різні моделі.
Два вузли Claude і де який використовувати
n8n має дві окремі інтеграції з Anthropic. Вибір неправильного вузла — найпоширеніша помилка початківців.
Вузол Anthropic — це звичайний вузол застосунку: один вхідний запит і одна вихідна відповідь. Його ресурс Text має операцію Message a Model, а також операції для аналізу зображень і документів. Використовуйте його, коли логіка workflow реалізується в n8n: тригер, виклик Claude, наступний вузол. У наведених нижче workflow 1 і 2 використовується цей вузол або його еквівалент у ланцюжку.
Вузол Anthropic Chat Model — це sub-node, невелике підключення, яке надає модель кореневому вузлу, наприклад AI Agent або Basic LLM Chain. Він не має власного тригера чи вихідних даних. Вузол надає вибір моделі та параметри семплінгу, зокрема Maximum Number of Tokens і Sampling Temperature. Запам’ятайте важливе обмеження з документації n8n: вирази всередині sub-node завжди обчислюються для першого вхідного елемента, а не для кожного елемента окремо. Вирази для окремих елементів потрібно розміщувати в полях prompt кореневого вузла, а не в sub-node.
Workflow 1: webhook in, summary out
Класичний приклад автоматизації з AI: усе, що надходить через POST-запит на URL, стискається до підсумку та потрапляє в Slack або вашу поштову скриньку.
- Webhook node, HTTP Method POST, path
summarize. n8n надає тестовий URL і production URL; production URL починає приймати запити лише після активації workflow. - Anthropic node, Message a Model, model
claude-haiku-4-5, Max Tokens близько 300. - Slack node (або Send Email), опублікуйте текст відповіді в каналі.
Саме prompt поєднує expressions n8n із Claude. Тіло POST-запиту доступне в $json.body, тому поле повідомлення користувача має такий вигляд:
Summarize the following feedback in three bullets, then one line:
verdict: praise | complaint | churn-risk. No preamble.
{{ $json.body.text }}Інструкції щодо ролі та формату вказуйте в полі system prompt node, а не в повідомленні користувача. System prompt залишається незмінним, тоді як payload змінюється. Це забезпечує стабільну поведінку та зберігає prompt зрозумілим через шість місяців. Перевірте workflow безпосередньо з 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..."}'Вартість одного запуску для Haiku: payload на 1,200 токенів разом із prompt коштує приблизно $0.0012 для вхідних даних, а 300 вихідних токенів — $0.0015, тобто приблизно чверть цента. Тисяча запусків на місяць коштує менше $3. Той самий node, налаштований на Opus 4.8, коштує приблизно вп’ятеро дорожче. Це співвідношення, помножене на кожен workflow, який ви створюєте, пояснює, чому важливо вибирати модель окремо для кожного node.
Workflow 2: запланований RSS у структуровані рядки
Тепер налаштуємо запуск за розкладом і структурований результат: щогодини читатимемо RSS-стрічку, класифікуватимемо кожен елемент і додаватимемо рядки до таблиці.
- Schedule Trigger, щогодини.
- RSS Read, URL-адреса стрічки. Вузол повертає один елемент для кожної статті.
- Basic LLM Chain із підвузлом Anthropic Chat Model, налаштованим на
claude-haiku-4-5, і підвузлом Structured Output Parser, який містить JSON-схему. - Google Sheets (або Postgres), додавання одного рядка для кожного елемента.
Саме Structured Output Parser перетворює запит «Claude, поверни JSON» із припущення на контракт: він перевіряє відповідь моделі за вашою схемою та явно завершує обробку елемента з помилкою, замість того щоб записувати некоректні рядки. Наприклад, схема може мати такий вигляд:
{
"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"]
}У prompt ланцюжка потрібно вказати елемент стрічки:
Classify this article for a VPS hosting audience.
Title: {{ $json.title }}
Content: {{ $json.contentSnippet }}Розрахунок вартості тут змінюється: оплата нараховується за кожен елемент, а не за кожен запуск. П’ятдесят статей на годину протягом 24 годин на добу — це 36,000 викликів Claude на місяць; для Haiku це може коштувати приблизно $40–90 залежно від обсягу статей, а для Opus — приблизно в п’ять разів дорожче. Виконуйте дедуплікацію перед вузлом LLM: використовуйте простий IF для перевірки посилань, які вже оброблялися, або вузол n8n Remove Duplicates. Це різко зменшує кількість викликів, оскільки під час більшості щогодинних опитувань нових даних немає. Найдешевший токен — той, для якого не потрібно виконувати виклик.
Workflow 3: AI-агент, який використовує інструменти
Перші два робочі процеси є конвеєрами: ви визначаєте кроки. Вузол AI Agent працює навпаки: ви задаєте Claude мету та інструменти, а він вирішує, які інструменти викликати і в якому порядку, доки не завершить завдання. n8n вимагає підвузол chat model і щонайменше один підвузол інструмента.
Конкретний приклад — операційний помічник, який на основі даних моніторингу відповідає на запитання «що не працює і чому»:
- Chat Trigger (або webhook) отримує запитання.
- AI Agent із підвузлом Anthropic Chat Model, налаштованим на
claude-sonnet-5. Агенти планують виклики інструментів і вибудовують їх у ланцюжки; Haiku підходить для простих агентів з одним інструментом, але коли кількість інструментів зростає, Sonnet є мінімально доцільним варіантом. - Вузол HTTP Request, підключений як інструмент і спрямований до status API Uptime Kuma або endpoint Zabbix. Другий HTTP-інструмент може звертатися до будь-якого іншого сервісу з REST API.
Основну роботу виконують два параметри. System Message агента визначає завдання: «Ви — операційний помічник. Перед відповіддю використовуйте інструмент status, щоб перевірити поточний стан моніторів. Повідомляйте лише монітори, які не працюють, із зазначенням тривалості». А description кожного інструмента є не документацією для людей, а інструкцією, за якою Claude вирішує, коли його викликати. Опис «Повертає поточний стан up/down усіх моніторингових сервісів у форматі JSON» сприяє виклику в потрібний момент; опис «status API» буде проігноровано або використано неправильно. Коли підключаєте вузол HTTP Request як інструмент, увімкніть параметр Optimize Response і виберіть потрібні поля JSON. Інакше кожна велика відповідь API надходитиме до контексту моделі як вхідні токени, за які ви платите.
Встановіть для агента Max Iterations (типове значення — 10) на найменше число, за якого він працює. Саме це визначає, чи агент завершить роботу після 4 викликів інструментів, чи виконає цикл із десятком обмінів із моделлю. Також врахуйте структуру витрат: на кожній ітерації модель повторно отримує всю історію діалогу, що накопичилася на цей момент: системне повідомлення, запитання та всі попередні результати інструментів як вхідні токени. Один запуск агента із шістьма ітераціями може легко накопичити 20,000 вхідних токенів і 2,000 вихідних. За вступною ціною Sonnet 5 це становить приблизно $0.06, а за стандартними тарифами $3/$15 — близько $0.09. Це приблизно у двадцять разів дорожче за простий запуск узагальнення. Якщо ви починаєте підключати до одного агента багато інструментів, саме час розглянути запуск MCP-серверів на VPS як чистішу архітектуру.
Обмеження витрат, коли ніхто не контролює процес
Автоматизований workflow потребує засобів контролю, які людина за клавіатурою забезпечує неявно. Є чотири рівні. Починайте з найдешевшого.
Max Tokens у кожному вузлі Claude. Це жорстке обмеження обсягу відповіді. Для підсумовувача достатньо 300, для класифікатора — 100. Це обмежує найдорожчу частину витрат ($5–$25 за мільйон вихідних токенів проти $1–$5 за вхідні) і водночас зупиняє неконтрольоване виконання: помилка в prompt, через яку Claude генерує надто довгу відповідь, коштуватиме 300 токенів, а не 8,000.
Модель для кожного вузла. Це питання вже розглядалося вище. Вибір моделі може змінити ціну в п’ять-десять разів у поточній лінійці моделей, а його налаштування займає десять секунд.
Обмежуйте цикли. Використовуйте Max Iterations для агентів. У налаштуваннях workflow задайте тайм-аут, щоб зависле виконання завершувалося, а не працювало без кінця. Також обережно використовуйте Retry On Fail для окремих вузлів: цей параметр підходить для тимчасових помилок, але повторні спроби збільшують витрати. Значення Max Tries 3 і Wait Between Tries 5000 ms означають, що постійна помилка може списати оплату до трьох разів за один елемент, перш ніж виконання завершиться. Не додавайте повторні спроби навколо вузла, який уже успішно виконав дорогу операцію.
Error workflow як останній захисний механізм. Створіть workflow, що починається з вузла Error Trigger і надсилає до Slack назву workflow, який завершився з помилкою, та текст помилки. Потім у налаштуваннях кожного AI workflow виберіть його як Error Workflow. Цей механізм виявляє найгірший сценарій: workflow із тригером розкладу завершується з помилкою під час кожного запуску, щогодини протягом тижня, і щоразу витрачає токени до завершення. Додатково встановіть місячний ліміт витрат в Anthropic Console і перевіряйте сторінку використання в Console протягом перших кількох днів після ввімкнення будь-якого workflow за розкладом. Якщо потрібно точно зрозуміти, за що саме нараховується оплата, у посібнику з використання токенів наведено детальний розбір.
Типові збої та повідомлення, які ви побачите
Вузол одразу завершується з повідомленням "Authorization failed - please check your credentials." API повернув 401. Тіло відповіді:
{"type": "error", "error": {"type": "authentication_error", "message": "invalid x-api-key"}}Причиною може бути неправильно вставлений або обрізаний ключ, пробіли в кінці чи шаблонне значення з інструкції. Створіть облікові дані n8n повторно та вставте ключ ще раз. Якщо вчора все працювало, перевірте, чи не відкликали ключ у Console і чи не відновився volume зі старими обліковими даними, зашифрованими іншим N8N_ENCRYPTION_KEY.
Виконання завершуються серіями помилок із 429 rate_limit_error, із повідомленням на кшталт "Number of request tokens has exceeded your per-minute rate limit." Обмеження швидкості діють у межах хвилинних інтервалів, а n8n дає змогу дуже легко одночасно запустити п’ятдесят виконань webhook або RSS. Виправте це на рівні структури: обробляйте елементи послідовно через Loop Over Items, а не паралельно, і ввімкніть Retry On Fail, встановивши Max Tries у 3, а Wait Between Tries — у максимальне значення 5000 ms. n8n обмежує це поле значенням 5000 ms. Якщо потрібна довша затримка, щоб повторні запити потрапили до наступного хвилинного інтервалу, додайте Wait node до шляху помилки або обробляйте елементи по одному. У відповіді є заголовок retry-after, який точно вказує, скільки потрібно чекати. Фіксована затримка n8n не може прочитати це значення, тому реалізуйте довшу паузу самостійно.
404 not_found_error під час зазначення назви моделі. Тіло відповіді містить помилковий ідентифікатор:
{"type": "error", "error": {"type": "not_found_error", "message": "model: claude-haiku-4.5"}}Причиною можуть бути крапки замість дефісів (4.5 замість 4-5), суфікс із датою зі старої публікації в блозі або модель, яку вже вилучено. Виправте ID відповідно до поточного списку. Ця проблема часто виникає, коли ідентифікатор вводять у поле моделі як expression, а не вибирають зі спадного списку.
Claude відповідає на запитання, якого ви не ставили. Помилок немає, виконання позначене як успішне. Вираз n8n посилається на відсутнє поле, наприклад {{ $json.body.text }}, хоча payload містить message. У результаті в prompt підставляється буквальний рядок undefined, і Claude відповідає на prompt без змісту. Якщо відповідний вузол взагалі не виконався, ви побачите повідомлення "Referenced node is unavailable", але відсутнє поле не спричиняє помилки. Перед активацією завжди виконайте workflow один раз із реальними даними та перегляньте фактично сформований prompt на панелі вхідних даних вузла. Редактор виразів показує попередній перегляд обчисленого значення, і undefined можна побачити саме там.
FAQ
Як підключити Claude до n8n?
Створіть API key в Anthropic Console на platform.claude.com, потім у n8n додайте credential типу Anthropic і вставте ключ у поле API Key. Кожен Claude node, Anthropic app node і підвузол Anthropic Chat Model використовує ці збережені облікові дані. n8n шифрує їх за допомогою N8N_ENCRYPTION_KEY, тому створіть резервну копію цього ключа, інакше після втрати volume ви втратите credentials.
Скільки коштує один запуск AI workflow?
Оцініть кількість токенів за один запуск і помножте її на ціну моделі за мільйон токенів. Станом на July 2026 Haiku 4.5 коштує $1/$5 за мільйон вхідних/вихідних токенів, а Sonnet 5 — $3/$15 ($2/$10 за вступною ціною до August 2026). Узагальнення через webhook на Haiku коштує приблизно чверть цента. Запуск агента на Sonnet із кількома викликами tools коштує ближче до $0.06–$0.10, оскільки кожна ітерація повторно надсилає всю розмову як вхідні дані. Перевіряйте фактичний запуск на сторінці usage у Console, а не покладайтеся на оцінки.
Яку модель Claude використовувати для n8n automation?
Haiku 4.5 підходить для класифікації, вилучення даних, узагальнення та маршрутизації, а також для великого обсягу роботи, де важливі швидкість і ціна. Sonnet 5 використовуйте для AI Agent nodes і багатоетапного міркування. Opus 4.8 варто використовувати лише тоді, коли помилка достатньо дорога, щоб виправдати його list price $5/$25: це в п’ять разів дорожче за Haiku і трохи менше ніж удвічі дорожче за Sonnet. Встановлюйте модель для кожного node, а не для всього workflow. Один workflow може поєднувати всі три моделі.
Як не допустити надмірних витрат n8n workflow на Claude API?
Налаштуйте кілька рівнів обмежень: низьке значення Max Tokens для кожного Claude node, Max Iterations для агентів, timeout workflow і консервативні параметри Retry On Fail, щоб помилки не збільшували витрати на токени. Потім додайте workflow з Error Trigger, який надсилатиме сповіщення в Slack у разі помилки будь-якого AI workflow, і встановіть місячний ліміт витрат в Anthropic Console як жорстку межу, яку ніщо на VPS не зможе перевищити.
Чи коштують виклики tools від AI Agent додатково?
Окремої плати за tools немає, але вони не є безкоштовними: кожен результат tool передається моделі як вхідні токени, а кожна ітерація агента повторно надсилає всю попередню розмову. Багатослівна відповідь API, передана без фільтрації, може значно перевищити обсяг вашого фактичного prompt. Увімкніть Optimize Response для HTTP Request tools і повертайте лише поля, які потрібні агенту.