Zapier
Zapier connects to Oclavex with nothing Oclavex-specific: outbound is plain signed webhooks, inbound is the plain REST API. This page ties the two into a working Zap.
Trigger a Zap from Oclavex
Section titled “Trigger a Zap from Oclavex”This is the common direction — a licensing event kicks off a workflow (post to Slack when a trial is expiring, create a task when a customer nears their quota).
Create the subscription through the integrator API below, not the portal’s New subscription button — the portal’s verification needs a signed reply a Catch Hook cannot send. A Webhooks by Zapier → Catch Hook trigger always replies with its own fixed acknowledgment, so it can pass a reachability check (did the URL answer with 2xx?) but not a signed handshake. Registering the Zapier URL through the portal button would leave the subscription stuck Pending verification forever; the integrator API verifies with the reachability check, which a Catch Hook passes on its own:
- In Zapier, start a Zap with the Webhooks by Zapier trigger, event Catch Hook. Copy the custom webhook URL Zapier gives you.
- Follow Manage subscriptions programmatically
to get integration credentials and create the subscription, pasting the
Zapier URL as the endpoint and picking the
event patterns you care about — for example
Entitlement.*orMeteredUsage.OverageStatusChanged. - Call the subscription’s verify endpoint. Oclavex sends a one-time check to your URL; Zapier’s Catch Hook answers it automatically with 2xx, and the subscription goes Active right away — no extra Zap steps needed.
- Use Test on the subscription (or
.../test-fire) to push a sample event so Zapier can capture the payload and you can map fields.
The subscription still shows up on the portal’s Webhooks page alongside ones created there — you registered it through the API instead of the New subscription button.
Each delivery is signed. If your Zap forwards the payload somewhere that needs to
trust it, verify the webhook-signature header as shown in
Receiving webhooks. Deliveries are at-least-once, so
deduplicate on the webhook-id header if the downstream action isn’t idempotent.
Manage subscriptions programmatically
Section titled “Manage subscriptions programmatically”If you are building a Zapier app or a partner integration rather than a one-off Zap, you can let the integration create and manage its own webhook subscriptions instead of doing it by hand in the portal.
- In Settings → Integrations, create a set of integration credentials. You get
a client ID (
integration.…), a one-time secret, the token URL (https://<your-subdomain>/auth/connect/token) and the scopewebhooks.integrator. - Exchange them for a token with the OAuth
client_credentialsgrant (see Authentication). - Call the integrator endpoints under
/api/v1/webhooks/integrator/…to list, create, verify and rotate subscriptions. The integration only ever sees its own subscriptions, and the tenant is fixed by the token — no tenant header to set or spoof. - After creating a subscription, call
POST …/{id}/verify— the reachability check described under Trigger a Zap from Oclavex.
Let a Zap call back into Oclavex
Section titled “Let a Zap call back into Oclavex”To have a Zap do something in Oclavex — create an entitlement from a Stripe event, pause one on a support signal — a Webhooks by Zapier action makes the REST call. There are two ways to authorize it:
- Reacting to a delivery — if the subscription requested callback scopes, every
delivery carries a short-lived token in the
webhook-callback-tokenheader. Forward it as theAuthorization: Bearer …on your callback. It is already scoped to exactly what you allowed, expires in minutes, and needs no stored secret. Callback tokens grant read/create/update verbs only — never delete or wildcards. - Standalone actions — for a Zap that isn’t reacting to an Oclavex delivery, authenticate with admin or operational client credentials (Authentication) and call the API directly.
The Stripe page is a full worked example of this callback direction — a billing event in, an entitlement change out.