n8n: автоматизация с Claude и GPT в workflow
В n8n можно завести один набор кредов и дёргать Claude, GPT и GLM из любого workflow. Показываю настройку через встроенный узел и через HTTP Request для гибких случаев.
5 мин · · Обновлено · автоматизация
n8n можно подключить к шлюзу двумя путями: через встроенный узел под OpenAI-совместимый API (годится для GPT, GLM и, при желании, для Claude через OpenAI-путь) или через голый HTTP Request, когда нужен нестандартный запрос — например count_tokens.
Способ 1 — встроенный OpenAI-узел
В n8n у узлов на базе OpenAI (в том числе AI Agent / Chat Model в LangChain-нодах) в кредах есть поле Base URL помимо API Key. Заводите новый credential:
- API Key:
fetch_ваш_ключ - Base URL:
https://api.zukko.pro/v1
После сохранения в самом узле в поле модели вписываете точный id: claude-opus-5-5, claude-sonnet-5, gpt-5.6-sol, gpt-5.6-luna, glm-5.3 или glm-5.3-flash (актуальный список — GET https://api.zukko.pro/v1/models). Если узел даёт готовый выпадающий список моделей вместо текстового поля — там обычно есть переключатель "custom model" или прямое текстовое поле под ним, потому что список у n8n подтягивается с сервера OpenAI по умолчанию и наших моделей в нём не будет.
Способ 2 — HTTP Request для Claude и для того, чего нет в узле
Для Anthropic Messages API или для подсчёта токенов проще собрать запрос вручную узлом HTTP Request.
Пример узла под Claude (POST https://api.zukko.pro/v1/messages):
- Method: POST
- URL:
https://api.zukko.pro/v1/messages - Headers:
Authorization: Bearer fetch_ваш_ключ,anthropic-version: 2023-06-01,Content-Type: application/json - Body (JSON):
{
"model": "claude-sonnet-5",
"max_tokens": 512,
"messages": [
{"role": "user", "content": "{{ $json.text }}"}
]
}Это же годится для /v1/messages/count_tokens — бесплатного эндпоинта, полезного, чтобы заранее прикинуть длину промпта перед дорогим шагом в workflow, без реального запроса к модели.
Обработка ошибок в workflow
n8n по умолчанию останавливает выполнение на не-2xx ответе, если не включить "Continue On Fail" в узле HTTP Request. Для автоматизаций, которые крутятся без присмотра, стоит явно ветвить по коду ошибки:
402сinsufficient_balance— баланс закончился; логично слать уведомление в отдельный канал вместо тихого падения workflow.429сkey_daily_limit_reachedилиkey_monthly_limit_reached— упёрлись в лимит именно этого ключа (настраивается на странице ключа в/app/api-keys); если для продакшн-автоматизации нужен более высокий лимит, поднимите его там же.503сmodel_disabled— модель выключена в каталоге (это не 404 и неmodel_retired); стоит логировать это отдельно и переключить узел на модель из актуального спискаGET https://api.zukko.pro/v1/models, чтобы не пропустить смену модели в каталоге.503сprovider_unavailable— временное состояние конкретной модели, для критичных workflow имеет смысл настроить retry с задержкой на этот код отдельно от остальных.
Идемпотентность для повторных запусков
Если workflow может быть перезапущен вручную или ретраится автоматически при сбое ноды, добавьте заголовок Idempotency-Key со значением, детерминированным от входных данных (например, хэш от $json конкретного элемента). Повтор с тем же ключом идемпотентности в течение 24 часов вернёт тот же ответ без повторного списания — это спасает, когда шаг с генерацией текста уже отработал, а упал следующий узел, и весь workflow гоняют заново.
Кэш для повторяющихся промптов
Если в workflow есть шаг с одинаковым промптом для одинаковых входных данных (например, классификация по фиксированному набору категорий), включите кэш через заголовок X-Zukko-Cache: true (temperature: 0 тоже включает кэш, но только у моделей, которые принимают этот параметр; Claude-модели — claude-sonnet-5, claude-opus-5-5 — могут отклонить temperature, отличную от 1, с ошибкой 400, поэтому им его не передавайте) — повторный одинаковый запрос от того же пользователя вернётся мгновенно и бесплатно, в ответе будет X-Zukko-Cache: hit. Для чата кэш живёт до 7 суток, что покрывает большинство периодических workflow (ежедневные дайджесты, регулярные отчёты).
Стоимость запуска
Каждый обычный (не потоковый) ответ шлюза несёт заголовки X-Zukko-Cost-Micros и X-Fetch-Balance-Cents (несмотря на название, баланс в нём в микродолларах: 1 000 000 = $1); у ответов с stream: true этих заголовков нет. В узле HTTP Request их можно вытащить в отдельные поля через "Response" → "Include Response Headers" и логировать в таблицу — удобно для workflow, который считает деньги по шагам, а не только по итоговому балансу.
Ключ создаётся на https://zukko.pro/app/api-keys, показывается один раз. Для продакшн-автоматизаций разумно завести отдельный ключ с собственным дневным лимитом — так баг в workflow с бесконечным циклом не съест весь баланс аккаунта.
Веб-поиск как отдельный шаг перед основным запросом
Если workflow строит ответ моделью без встроенного поиска, а нужны свежие данные, добавьте перед основным HTTP Request ещё один узел на /v1/web-search и подставьте результат в промпт следующего шага:
{
"method": "POST",
"url": "https://api.zukko.pro/v1/web-search",
"body": {"query": "{{ $json.searchQuery }}"}
}Так получается двухшаговый workflow: сначала свежие данные, потом их обработка моделью — без этого модель отвечает по своим знаниям на момент обучения.
Мониторинг расходов отдельным workflow
Полезный побочный сценарий в n8n — отдельный workflow по расписанию (Cron-триггер раз в день), который ходит в /v1/usage с курсорной пагинацией и /v1/balance, и при низком остатке шлёт уведомление в Slack или тот же Telegram:
GET https://api.zukko.pro/v1/balance
Authorization: Bearer fetch_ваш_ключСписок моделей с лимитами и ценами для такого дашборда берётся из GET /v1/models/info — без ключа, поэтому этот узел можно вынести в общий workflow, доступный всей команде, не раскрывая сам ключ.
Реферальная программа для агентств на n8n
Если настраиваете такие workflow для нескольких клиентов и советуете им завести свой аккаунт на zukko.pro, по реферальной программе начисляется 10% с их пополнений — регистрируется это через кабинет, отдельной настройки в n8n не требует.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- AI-агент для поиска работы: резюме под вакансию и сопроводительные письмаСобираем небольшой инструмент: вы даёте текст вакансии и файл с реальным опытом, получаете адаптированное резюме, письмо и список пробелов. Без выдуманных навыков.
- Художественные тексты с нейросетью: как писать вместе, а не вместоКак работать с моделью над прозой: собрать «библию» проекта, держать стиль, редактировать по проходам и считать стоимость длинного текста.
- Нейросеть для тестировщика: тест-кейсы, чек-листы и баг-репортыКак QA-инженеру использовать модель для тест-кейсов, чек-листов и баг-репортов, проверять полноту покрытия и не получить придуманные требования.
- Перевод субтитров нейросетью: SRT без сбитых таймкодовГлавный риск при переводе SRT нейросетью — сломанная структура файла. Показываем схему, где таймкоды не попадают к модели, и скрипт на Python с проверкой.