POST whenever one fires.
Use them to sync data, trigger your own automations, fulfill purchases, and feed analytics — anything where your code needs to react to something happening in Crevio.
Webhooks notify your server so your code acts. If you instead want Crevio’s AI to act on an event, use an event-triggered Task. See How webhooks differ from event-triggered Tasks.
Creating an endpoint
Create endpoints from the dashboard, via the API, or with the TypeScript SDK.Via dashboard
1
Open Developer settings
In your dashboard, go to Settings → Developer.
2
Create a new endpoint
Click New webhook endpoint and enter the HTTPS URL that should receive events. (HTTP is allowed only in local development.)
3
Select events
Choose which event types to subscribe to, individually or all at once.
4
Save and copy the secret
Crevio generates a signing secret (prefixed
whsec_) shown once. Copy it now — you’ll use it to verify incoming requests.Via API
Like every Crevio endpoint, params go at the top level (no{"webhook_endpoint": {...}} wrapper). Subscribe with enabled_events.
- cURL
- SDK (TypeScript)
secret — returned only on creation:
Testing an endpoint
Send a synthetic event to any active endpoint to verify your handler:"test": true in the body and are not persisted to your delivery history.
Available events
These are the event types you can subscribe to viaenabled_events. Each has a dedicated page under Webhook Events in the API reference showing its exact payload.
Commerce
Leads & customers
Catalog
AI Tasks & Jobs
Payload format
Every delivery is an HTTPPOST with a JSON body in this shape:
The shape of
data varies by event type — it’s the serialized resource relevant to that event.
Delivery history
Each delivered event is persisted as a webhook event you can inspect. List your delivery history:GET /webhook_events/{id}.
Retry behavior
Crevio expects a2xx response within 5 seconds. If the request fails or times out:
- The event is marked failed.
- Failed events are retained for 7 days, then auto-deleted.
- Crevio does not auto-retry failed deliveries. Re-trigger the underlying action, or use the test feature.
Endpoint statuses
Deactivate an endpoint without deleting it; reactivating resumes delivery for new events.
Security
Verifying signatures
Every request includes anX-Crevio-Hmac-SHA256 header: a Base64-encoded HMAC-SHA256 of the raw request body, keyed with your signing secret. Verify it before trusting a payload.
1
Read the raw body
Read the request body as a raw string — do not re-serialize parsed JSON.
2
Compute the digest
HMAC-SHA256 over the raw body, keyed with your
whsec_ secret.3
Base64-encode
Base64-encode the digest.
4
Compare
Constant-time compare against the header value.
Best practices
- Respond fast — return
200immediately, then process asynchronously to avoid timeouts. - Deduplicate — use the event
id(whev_…); the same event may arrive more than once. - Use HTTPS — required in production.
- Protect your secret — store it in env vars or a secrets manager; never commit it.
Output formats
Beyond the default JSON, Crevio can format deliveries for chat platforms:
Select the format when creating or editing the endpoint.
How webhooks differ from event-triggered Tasks
Both react to platform events, but they do different jobs:
The subscribable internal events (and any third-party triggers) are documented under Events.
Next steps
Events
Internal and third-party triggers for event Tasks.
Tasks
Let Crevio’s AI react to events on your behalf.
Autonomous outreach
A worked event-triggered Task on
order.paid.API overview
The full set of primitives.

