Integrations
Releaseo integrations
Configure PostHog forwarding and multi-destination Webhook Out delivery for widget, contact, identity, and custom events.
Available destinations
| Destination | Use it when |
|---|---|
| PostHog | You want Releaseo widget and selected custom events in your product analytics project. |
| Webhook Out | You want signed event delivery to your own backend, Zapier, Make, n8n, or another HTTPS workflow endpoint. |
Slack, Discord, Linear, Zapier, and workflow-engine entries can appear in the catalog as future destinations, but the current available providers are PostHog and Webhook Out.
Event catalog
The dashboard reads the integration event catalog from the backend. Built-in events currently include:
| Event key | Meaning |
|---|---|
sdk_init | SDK runtime initialized. |
widget_loaded | Widget iframe loaded. |
widget_open | Widget drawer opened. |
widget_closed | Widget drawer closed. |
post_open | Changelog or announcement post viewed. |
cta_click | Post CTA clicked. |
link_clicked | Widget link clicked. |
home_contact_cta_clicked | Home Contact button clicked. |
read_state_changed | Read state changed. |
contact_submission_created | Contact form submission created. |
Custom events come from the host app through the SDK:
await window.releaseo.track("billing_limit_reached", {
plan: "pro",
source: "settings",
});
For PostHog, custom forwarding requires both the custom-events toggle and an explicit selected event subscription. For Webhook Out, each destination has its own subscription list.
PostHog
PostHog is a project-level destination configured from the dashboard. The backend stores the write-only project token, forwards selected events through the integrations worker, and can include identity payloads when enabled.
Typical setup:
- Open Dashboard -> Integrations -> PostHog.
- Add the PostHog API host and project token.
- Choose whether to send events, identity payloads, and selected custom events.
- Select the event subscriptions you want to forward.
- Save and use the test action before enabling for production traffic.
Use a PostHog project token, not a personal API key.
Webhook Out
Webhook Out supports multiple destinations per project. Each destination has its
own display name, stable destinationKey, endpoint URL, signing secret, status,
rate limit, event subscriptions, test action, delivery logs, and secret rotation.
Common destination examples:
| Destination | Endpoint example |
|---|---|
| Internal backend | https://api.example.com/releaseo/webhook |
| Zapier Catch Hook | https://hooks.zapier.com/hooks/catch/... |
| Make Custom Webhook | https://hook.eu1.make.com/... |
| n8n Webhook | https://n8n.example.com/webhook/releaseo |
destinationKey is a lowercase identifier used in payloads and logs. Use
letters, numbers, and hyphens, up to 40 characters. Reserved keys such as
default and keys starting with reserved platform prefixes are blocked.
Webhook payload
Webhook payloads use a stable envelope:
{
"version": 1,
"type": "events",
"deliveryId": "job_123",
"connectionId": "conn_123",
"destinationKey": "zapier-sales",
"attempt": 1,
"sentAt": "2026-05-15T10:30:00.000Z",
"data": {
"events": [
{
"name": "contact_submission_created",
"canonicalName": "contact_submission_created",
"isBuiltIn": true,
"distinctId": "user_123",
"url": "https://app.example.com/settings"
}
]
}
}
For identity delivery, type is identity and data.identify contains the
identity payload. For a dashboard test, type is test.
Receiver checklist
Webhook Out is outbound from Releaseo to your endpoint. Your receiver should:
- accept
POSTrequests withContent-Type: application/json - read the raw request body before JSON parsing if your backend verifies signed requests
- reject stale requests according to your replay-window policy
- store delivery identifiers when you need retry deduplication
- return a
2xxstatus only after the event is accepted - keep endpoint URLs stable, because destination logs and retries are scoped to the configured destination
Manage destinations, subscriptions, test sends, secret rotation, and logs from the Releaseo dashboard.
Thanks — your feedback helps us improve the docs.