Zapier
The Throttle Zapier integration puts your orders, payments, subscriptions, quotes and invoices in front of every other app Zapier connects to. It authenticates with OAuth — no API key to copy, and no key to rotate when someone leaves.
Zapier speaks REST and webhooks, not the Model Context Protocol. This is a separate integration over the same public API, and it needs no MCP setup. If you want Throttle inside Claude, Cursor or another AI assistant, use the MCP server instead — the two are independent and can both be connected at once.
Connecting your account
Add Throttle as a step in any Zap and choose Connect a new account. You'll be sent to Throttle to sign in, pick the workspace, application and environment the connection should use, and approve the permissions it asks for.
Workspace · Application · environment so
the two are never confused.
The permissions requested cover exactly the triggers and actions listed
below — read access to orders, customers, subscriptions, quotes, invoices,
payments, carts and the event log, write access to customers, quotes and
carts, and permission to manage the webhook endpoints your triggers create.
It also asks to read customers' personal data (names,
emails, phone numbers and addresses, customer_pii:read): that is what most Zaps
move, and every trigger needs it, because a webhook delivery carries the
full record. Throttle's AI-assistant connections can never be granted
it; Zapier can because it is registered as an automation connector. Refunds, payment capture and other money-moving verbs are not requestable over OAuth and are deliberately absent
from this integration.
Triggers
Every trigger is a real-time webhook, not a poll — a Zap fires within seconds of the event, and there is no polling interval to wait out. Turning a Zap on creates a webhook endpoint in your workspace subscribed to that one event type; turning it off deletes it.
- New order —
order.created - Payment captured —
payment.captured - Payment failed —
payment.failed - New subscription —
subscription.created - Subscription cancelled —
subscription.cancelled - Quote accepted —
quote.accepted - Cart abandoned —
cart.abandoned - Invoice past due —
invoice.past_due
You'll see these endpoints in your dashboard alongside any you made by hand. They're marked as owned by Zapier — delete the Zap rather than the endpoint, or the Zap will go quiet with no error.
What a trigger hands the next step
Throttle delivers this envelope:
{
"id": "evt_01JB8Q4X...",
"type": "order.created",
"version": "2026-05-30",
"createdAt": "2026-09-16T10:04:11.204Z",
"environmentId": "env_01J...",
"environmentKind": "production",
"workspaceId": "ws_01J...",
"data": { "id": "ord_01J...", "orderNumber": "A-1042", "totalAmount": 12500 }
} Zapier flattens it so the entity's own fields are available directly in the field mapper:
{
"id": "evt_01JB8Q4X...", // the EVENT id — what Zapier deduplicates on
"resourceId": "ord_01J...", // the order's own id
"orderNumber": "A-1042",
"totalAmount": 12500,
"eventType": "order.created",
"eventCreatedAt": "2026-09-16T10:04:11.204Z",
"environmentId": "env_01J...",
"environmentKind": "production"
} id is the event id, because that is what
Zapier deduplicates on and what stays stable when a delivery is retried.
The order, payment or subscription's own id is resourceId — map that one when the next
step needs to look the record up.
Searches
- Search customers — by name, email or your own external id.
- Search orders — newest first, with status and payment-status filters.
- Search quotes — filter by status, e.g. to chase quotes about to expire.
- List invoices — issued invoices, filterable by status.
- Receivables aging — outstanding receivables bucketed by age.
- List subscriptions — filterable by customer and status.
Actions
- Create a customer — email and external ID are each
unique per application, so a buyer who already exists makes the step
fail with
customer_already_exists. Run Search customers first when the buyer may already exist. - Update a customer — only the fields you fill in are touched; everything else is left alone.
- Create a quote — drafts a quote with line items and terms. It is not sent to the buyer.
- Create a checkout link — builds a cart from line items and returns a hosted checkout URL.
2500 is $25.00, and 25 is 25¢. A checkout link created on a
production connection is buyer-facing and takes real payment.
Actions carry an idempotency key derived from the Zap step and its inputs, so a retried run lands on the record the first attempt created rather than making a second one.
When something goes wrong
- “Reconnect your Throttle account and approve this permission” — the connection was approved without a permission the step needs. A connection's permissions are fixed at approval time, so reconnecting is the only fix.
- “Allow access to customers' personal data”
(
oauth_customer_pii_required) — turning on a trigger creates a webhook endpoint, and deliveries include customer details, so the connection must hold that permission. Reconnect and approve it. - An environment mismatch — the step is reaching for data in an environment this connection isn't pinned to. Connect the other environment as a second Throttle account.
- A Zap goes quiet — check whether its webhook endpoint still exists in your dashboard under Webhooks. Turning the Zap off and on again recreates it.