No-code AI automation in Zapier and Make

Zapier and Make don't ship a native block for our gateway, but the generic HTTP module covers everything a real integration needs.

4 min · · Updated · автоматизация

Zapier and Make both ship built-in blocks for OpenAI and Anthropic, but those blocks are hardwired to the official keys and base URLs of those two companies — there's no field to drop in a fetch_... key and our gateway address. The fix is simple: both platforms can make arbitrary HTTP requests, and our gateway is a plain HTTP API, so the combination works without writing a single line of code.

Zapier: the Webhooks by Zapier module

In your Zap, pick the Webhooks by Zapier → POST action. Configuration:

  • URL: https://api.zukko.pro/v1/chat/completions
  • Payload Type: json
  • Data: set fields manually, or pass raw JSON via Data Pass-Through
  • Headers: Authorization: Bearer fetch_your_key, Content-Type: application/json

Example body for a "summarize incoming lead" action:

bash
{
  "model": "gpt-5.6-sol",
  "messages": [
    {"role": "system", "content": "Summarize the customer's request in one sentence."},
    {"role": "user", "content": "{{Form submission}}"}
  ],
  "max_tokens": 200
}

{{Form submission}} is a variable from an earlier Zap step (a Google Forms or Typeform field, say). The response comes back in standard Chat Completions shape; pull choices[0].message.content with Zapier's built-in JSON parsing, or add a Formatter → Utilities → Text step if Zapier didn't unpack the nested field automatically.

Make: the HTTP → Make a request module

Make's equivalent block is HTTP → Make a request:

  • URL: https://api.zukko.pro/v1/messages
  • Method: POST
  • Headers: Authorization: Bearer fetch_your_key, anthropic-version: 2023-06-01, Content-Type: application/json
  • Body type: Raw, Content type: JSON (application/json)

Request body for the Anthropic-compatible path:

bash
{
  "model": "claude-sonnet-5",
  "max_tokens": 500,
  "messages": [
    {"role": "user", "content": "Translate to English: {{1.text}}"}
  ]
}

anthropic-version is mandatory specifically on /v1/messages — without it the request fails validation before it ever reaches the model. Make parses the response automatically if you enable Parse response in the module settings, after which content[0].text is a plain field available to later steps in the scenario.

Generating images in a scenario

Image generation through Zukko is temporarily unavailable right now, so an image step can't be added to a scenario yet. The current model list is at GET https://api.zukko.pro/v1/models or on the Models page in the dashboard. The advice from this section still holds for text models, though: in high-volume scenarios it's worth adding a separate balance check — GET /v1/balance — before running batch processing, especially when the Zap or Make scenario is triggered in bulk (a 500-row CSV import, for instance).

Handling errors inside the scenario

Both Zapier and Make let you branch a scenario on the HTTP step's response code. A practical set of conditions:

  • 402 — balance ran out, body contains {"error":{"code":"insufficient_balance"}}. In Zapier this is a condition for a Filter step that stops the Zap and sends a Slack or email alert instead of quietly accumulating failures.
  • 429 — hit a key's daily or monthly limit (key_daily_limit_reached / key_monthly_limit_reached). The daily limit resets at 00:00 UTC. Limits are set in the dashboard on the key's page — if a scenario suddenly runs an order of magnitude more often (say, after wiring up a new trigger), raise the limit there rather than spinning up a second key. The gateway has no rate limit of its own, so a 429 without these codes came from the model provider — that step is worth simply retrying later.
  • 503 model_disabled — the model hardcoded into the request body has been switched off; pick a replacement from the current list. In no-code scenarios this is the most common cause of "it just stopped working" months after setup — worth cross-checking the model baked into the scenario against a fresh GET /v1/models once a quarter.

Idempotency for scenarios with retries

Both Zapier and Make retry automatically on network failure — by default with the same request body. To avoid billing a retry twice, add an Idempotency-Key header tied to the specific scenario run rather than regenerated on every retry:

Idempotency-Key: zap-{{Run ID}}-step3

A repeat with the same key and same body within 24 hours returns the saved response for free — without this header, a timeout-triggered retry charges twice for the same result.

A quick check before building the scenario

Before assembling a ten-step chain, verify the combination with a single curl call using the same key and model:

bash
curl https://api.zukko.pro/v1/chat/completions \
  -H "Authorization: Bearer fetch_your_key" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"test"}]}'

If it answers, carry the same URL, headers, and body into the HTTP module as-is. If it doesn't, the curl error tells you what to fix before you spend time debugging the whole scenario. Keys are issued in the dashboard at /app/api-keys.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

AI in Zapier and Make via a raw HTTP module · Zukko