Every API call you make, saved as a button.
Stop pasting curl into terminals. Save your Stripe, Mailchimp, HubSpot and webhook endpoints once. Call them from macros. Map response fields into chain results. Full logs, one-click retry.
Connect any API, zero code.
A short walk-through of the APIs module: register an external endpoint once, map its response fields, and call it from any command or macro. Tokens stay safe as Variables, every request is logged. No glue code.
Your integrations live in a scratch folder.
You test an endpoint in a terminal tool. It works. You paste it into code, and it works. Six months later, the API changes, the code breaks, and nobody remembers where the original request lived.
Four tabs. One full editor.
Method picker. URL bar. JSON, form-encoded, or raw bodies. Headers. Response mapping. Test console. All inside WordPress.
Pick the fields you actually need.
Most API responses return 50 fields. You need 3. Map them by JSONPath. They become named chain results the next macro step can use.
data[0].user.id just works.{{step1.stripe_id}} directly.success and status_code stay protected.Drop it into any flow.
The send api command is a macro step. Pick your saved API, and mapped response fields flow into the next step like any other chain result.
@loop blocks in the body.charge_status. Branch to refund on failure.The same command, every service.
Save the endpoint once in the APIs module, then call it with send api from a command, macro, or schedule. Four common ones:
https://api.stripe.com/v1/charges with a Bearer secret key. Map the response to charge_status and receipt_url, then branch to a refund on failure or email the receipt on success. Call it with tp send api → "Stripe charge"./3.0/lists/{list_id}/members with basic auth and your API key. Pass the customer email and merge fields from the trigger, so a new WooCommerce order adds the buyer to a list automatically. Call it with tp send api → "Mailchimp subscribe"./crm/v3/objects/contacts with a private-app token. Send name, email, and lifecycle stage from your form or order data to keep the CRM in sync. Call it with tp send api → "HubSpot upsert contact".tp send api → "Slack #orders".Every call, logged and searchable.
When an integration fails at 3 AM, you need to know exactly what was sent, what came back, and how long it took. All of it, one click away.
One place. Every integration.
No more scattered endpoints across plugins, code snippets, and terminal scratch files.
Questions? Answered.
{{var.stripe_key}} in your header values. That way one rotation updates every API that uses it.data.user.id and give it a chain-field name like user_id. After the call, downstream macro steps reference {{step1.user_id}} the same way they'd reference any other step's output. Reserved names (success, status_code, body, duration_ms) are protected.Stop building the same API call twice.
Save your integrations once. Call them from anywhere. See every response.