No-code автоматизация с ИИ в Zapier и Make

В Zapier и Make нет готового блока под наш шлюз — но есть универсальный HTTP-модуль, и этого достаточно для полноценной интеграции.

4 мин · · Обновлено · автоматизация

У Zapier и Make есть встроенные блоки под OpenAI и Anthropic, но они жёстко завязаны на официальные ключи этих компаний и официальные base URL — подставить туда fetch_... ключ и адрес шлюза не получится. Решение простое: оба сервиса умеют делать произвольные HTTP-запросы, а наш шлюз — это обычный HTTP API, значит связка работает без единой строчки кода.

Zapier: модуль Webhooks by Zapier

В Zap выбираете действие Webhooks by Zapier → POST. Настройка:

  • URL: https://api.zukko.pro/v1/chat/completions
  • Payload Type: json
  • Data: тело запроса вручную полями или как raw JSON через Data Pass-Through
  • Headers: Authorization: Bearer fetch_ваш_ключ, Content-Type: application/json

Пример тела для действия «саммари входящего лида»:

bash
{
  "model": "gpt-5.6-sol",
  "messages": [
    {"role": "system", "content": "Кратко резюмируй заявку клиента в одном предложении."},
    {"role": "user", "content": "{{Заявка из формы}}"}
  ],
  "max_tokens": 200
}

Плейсхолдер {{Заявка из формы}} — это переменная из предыдущего шага Zap (например, поля Google Forms или Typeform). Ответ приходит в стандартном формате Chat Completions, дальше в Zap берёте choices[0].message.content через встроенный парсер JSON (шаг Formatter → Utilities → Text, если Zapier не распарсил вложенность автоматически).

Make: модуль HTTP → Make a request

В Make аналогичный блок называется HTTP → Make a request:

  • URL: https://api.zukko.pro/v1/messages
  • Method: POST
  • Headers: Authorization: Bearer fetch_ваш_ключ, anthropic-version: 2023-06-01, Content-Type: application/json
  • Body type: Raw, Content type: JSON (application/json)

Тело запроса для Anthropic-совместимого пути:

bash
{
  "model": "claude-sonnet-5",
  "max_tokens": 500,
  "messages": [
    {"role": "user", "content": "Переведи на английский: {{1.text}}"}
  ]
}

anthropic-version обязателен именно на /v1/messages — без него запрос вернёт ошибку валидации до того, как дойдёт до модели. В Make ответ разбирается автоматически, если включить Parse response в настройках модуля — тогда content[0].text доступен как обычное поле в следующих шагах сценария.

Генерация изображений в сценарии

Генерация изображений через Zukko сейчас временно недоступна, поэтому шаг с картинками в сценарий пока не добавить. Актуальный список моделей — GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете. Совет из этого раздела при этом остаётся в силе и для текстовых моделей: в сценариях с большим объёмом заявок стоит держать в отдельном шаге проверку баланса — GET /v1/balance — прежде чем запускать пакетную обработку, особенно если Zap или сценарий Make триггерится массово (например, импорт CSV на 500 строк).

Обработка ошибок в сценарии

И Zapier, и Make позволяют завернуть HTTP-шаг в обработку по коду ответа. Практический набор условий:

  • 402 — баланс закончился, тело содержит {"error":{"code":"insufficient_balance"}}. В Zapier это условие для Filter-шага, который останавливает Zap и шлёт уведомление в Slack или на почту вместо того, чтобы копить ошибки молча.
  • 429 — упёрлись в дневной или месячный лимит конкретного ключа (key_daily_limit_reached / key_monthly_limit_reached). Дневной лимит сбрасывается в 00:00 UTC. Лимиты задаются в кабинете на странице ключа — если сценарий стал выполняться на порядок чаще (например, после подключения нового триггера), стоит поднять лимит там же, а не заводить второй ключ. Своего ограничения скорости у шлюза нет, поэтому 429 без этих кодов пришёл от провайдера модели — такой шаг имеет смысл просто повторить позже.
  • 503 model_disabled — модель, зашитая в JSON тела запроса, выключена; замену выберите по актуальному списку. В no-code сценарии это самая частая причина «внезапно всё сломалось» через несколько месяцев после настройки — стоит раз в квартал сверять список моделей в сценарии со свежим GET /v1/models.

Idempotency для сценариев с ретраями

У Zapier и Make есть встроенный retry при ошибке сети — по умолчанию он повторяет запрос с тем же телом. Чтобы повтор не тарифицировался дважды, добавьте заголовок Idempotency-Key со значением, которое привязано к конкретному запуску сценария, а не генерируется заново на каждый повтор:

Idempotency-Key: zap-{{ID выполнения}}-step3

Повтор с тем же ключом и тем же телом за 24 часа вернёт сохранённый ответ бесплатно — без этого заголовка ретрай по таймауту спишет деньги за один и тот же результат дважды.

Vision-модели для обработки вложений

Если в сценарий приходит скриншот или фото (например, вложение из формы техподдержки), его можно передать модели напрямую, закодировав в base64 на предыдущем шаге через встроенную функцию Zapier base64() или модуль Make Convert file to data URI:

bash
{
  "model": "claude-sonnet-5",
  "max_tokens": 500,
  "messages": [{
    "role": "user",
    "content": [
      {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "{{2.data_uri_without_prefix}}"}},
      {"type": "text", "text": "Опиши проблему на скриншоте одним абзацем"}
    ]
  }]
}

Это тот же путь /v1/messages, просто с массивом вместо строки в поле content — Anthropic-совместимый формат допускает оба варианта в зависимости от того, нужна ли модели картинка.

Быстрая проверка перед сборкой сценария

Прежде чем собирать цепочку из десяти шагов, стоит проверить связку одним curl-запросом с тем же ключом и той же моделью:

bash
curl https://api.zukko.pro/v1/chat/completions \
  -H "Authorization: Bearer fetch_ваш_ключ" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"тест"}]}'

Если ответ пришёл — переносите те же URL, заголовки и тело в HTTP-модуль как есть. Если нет — ошибка в ответе curl скажет, что чинить, ещё до того, как разбираться, почему не работает весь сценарий целиком. Ключ выпускается в кабинете на странице /app/api-keys.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.