Why bother with the wrapper?
- Scoped credentials — each integration has its own API keys, independently rotatable and revocable.
- Named events — events you register under the integration show up in the automation builder grouped under your integration’s name, with their fields typed and pickable.
- Status & health — the dashboard shows the integration’s connection state where merchants expect it.
Create one
1
Create the app
Go to Integrations → Create app. Name it after the system it represents — “Bookings”, “Subscription billing”.
2
Generate credentials
Create an API key for it — see Authentication.
3
Register your events
Call
POST /events/register for each event type your system emits, with a representative payload.4
Ship the data flow
From your system, create contacts and send events as things happen.
Integration patterns
SaaS / subscription business
SaaS / subscription business
Send
trial_started, subscription_activated, subscription_renewed, subscription_cancelled. Build onboarding flows on trial start, renewal thank-yous, and cancellation win-backs — each with the plan and value data in filters.Bookings / services
Bookings / services
Send
appointment_booked, appointment_completed, appointment_no_show. Automate reminders before, review requests after, and re-booking nudges for lapsed clients.Custom storefront (headless)
Custom storefront (headless)
Your backend forwards checkout and order activity as events, and creates contacts at signup with proper consent flags. Note that the deep cart-recovery integration (recovery URLs, store-generated coupons) is built around the native Shopify and WooCommerce connections.
Checklist before production
- API key stored server-side in a secrets manager — never in client code.
- Retry-with-backoff on
429/5xx— see Rate limits and Errors. - Consent (
email_opt_in) set honestly at contact creation — see Contacts API. - Event names stable and documented for the marketing team.
- A staging organization for testing, so test events never trigger production automations.