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:
{
"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:
{
"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/modelsonce 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:
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.
Related articles
- An AI agent for job hunting: a résumé tailored to the job and cover lettersWe build a small tool: you give a vacancy text and a file with your real experience, and get a tailored résumé, a letter and a list of gaps. No invented skills.
- Fiction with AI: how to write together, not instead of youHow to work with a model on prose: build a project bible, hold the style, edit in passes and estimate the cost of a long text.
- AI for testers: test cases, checklists and bug reportsHow a QA engineer can use a model for test cases, checklists and bug reports, check coverage, and avoid requirements the model made up.
- Translating subtitles with a neural network: SRT without broken timecodesThe main risk when translating SRT with a neural network is a broken file structure. A scheme where timecodes never reach the model, and a Python script with validation.