← All integrations

FrazzleCRM + REST APIs (API Call step)

Outbound API

Call any HTTP API mid-flow, then use its answer in the very next email.

The settings

MethodsGET · POST · PUT · PATCH · DELETE
Timeout10 seconds per request
Default bodythe contact as JSON (write your own payload to override)
Authorizationsaved key: Bearer Token · Basic Auth · API Key header (default X-API-Key)
TemplatingURL, query params, headers and payload all take {{merge fields}}
Captured response{{api.key}} · {{api.obj.key}} · {{api.list.0.key}}
Pick one from a list{{api.picked.<field>}} + {{api.picked._index}}

Setup, step by step

  1. 1.In an automation, add an API Call step where the flow needs outside data or needs to tell another system something (on a map, the API Call card is the same step once the map is bound to the automation).
  2. 2.Set the method and URL. Merge fields work anywhere in the request — https://api.example.com/orders/{{fields.order_id}} — and query parameters can be added as key/value rows instead of hand-built URLs.
  3. 3.Pick an Authorization type and create a saved key once (stored encrypted, reusable by every API Call in the workspace). An explicit header you type yourself wins over the saved key.
  4. 4.For POST/PUT/PATCH/DELETE, either leave the payload empty to send the whole contact as JSON or write a JSON template with exactly the fields the other side expects.
  5. 5.Press Test. The request runs server-side and the response comes back in the editor; a JSON success teaches the step its response shape, so later steps get {{api.*}} merge fields to pick from. (No live endpoint yet? Open “Or define the shape yourself” and paste a sample response.)
  6. 6.Turn on Save response from this Webhook. If the answer is a list — upcoming sessions, open orders — use Pick one item from a list response: the first element whose field equals or contains a value (case-insensitive, merge fields allowed) is exposed as {{api.picked.*}}.
  7. 7.Guard the miss: a pick that matches nothing adds no {{api.picked.*}} keys at all, so put an If/Else on that field existing before an email quotes it.
Also with this connectionInbound webhooks: the other direction →Let Stripe, Shopify, Cal.com or your own app POST into FrazzleCRM to start flows — every payload field becomes a {{webhook.*}} merge field.

Common questions

What happens if the API is down or returns an error?

Any non-2xx status fails the step, and the run log records the status plus the first 300 characters of the response body — usually the other server explaining what it rejected. A request that takes longer than 10 seconds is aborted the same way. There are no automatic retries: a failed step ends that contact's run, so point it at endpoints you trust, or put the call before the steps that matter.

How much of the response can later steps read?

JSON only. Top-level fields and one level of nested objects become {{api.key}} and {{api.parent.key}}; arrays are flattened by index ({{api.sessions.0.title}}) for the first 20 items, a few levels deep. Up to 200 keys are kept per run and each value is cut at 1,000 characters. A non-JSON response still succeeds — there is just nothing to capture. One shape catches people out: the response has to be a JSON object. A bare top-level array ([{...}, {...}]) captures nothing, and Pick one item needs the list under a named key ({"sessions": [...]}) — if the API returns a bare array, call an endpoint or wrapper that names it.

Is there a per-call charge?

No. API Calls run inside your automations like any other step; FrazzleCRM does not meter operations. Whatever the API you call charges is between you and that provider.

Can I see exactly what was captured?

Yes. Each run log line names the method, URL and status, and lists the captured keys with their values (the first 25), so a blank {{api.x}} later in the flow can be traced back to what the server actually sent.

Is this a replacement for Zapier or Make?

For calling one API you already know, yes — no third tool in the middle. For connecting dozens of apps you have never read the docs for, no: those platforms ship thousands of pre-built connectors, and FrazzleCRM ships none. The step is a raw HTTP request; you bring the endpoint.