Work eventabee Guides Connect a generic webhook

Connect a generic webhook

Forward events to any HTTPS endpoint, with headers and retries.

Updated

Operational

The webhook destination forwards events as JSON POST requests to any HTTPS endpoint you control. Use it for internal systems, custom integrations, or platforms we don’t have a first-party connector for.

1. Target URL

Destinations → Webhook → Connect. Paste the full URL. HTTPS only — plain HTTP is rejected.

2. Headers

Add any auth or content headers your endpoint expects. Common ones:

  • Authorization: Bearer <token>
  • X-API-Key: <key>
  • Content-Type: application/json (default)

Headers are encrypted at rest.

3. Event filter

By default the webhook receives all events. Restrict it to specific event types via the event filter (e.g., purchase, checkout_completed only).

4. Payload shape

Each POST body is a single event with eventabee’s canonical shape:

{
  "event_id": "evt_01HZ...",
  "event_name": "purchase",
  "timestamp": "2026-04-19T10:14:22Z",
  "shop": "store.myshopify.com",
  "visitor_id": "vis_01HZ...",
  "customer": { "email_hash": "...", "phone_hash": "..." },
  "properties": { ... },
  "context": { "ip": "...", "user_agent": "...", "utm": { ... } }
}

For a templated payload shape (different field names, nesting), use the Custom destination instead — it has a field mapper and JSON template.

Retries

Non-2xx responses retry with exponential backoff (up to 12 attempts over ~24 hours). After that, events land in a dead-letter queue you can inspect and replay from Destinations → Webhook → DLQ.

Webhook → whichever category you map it to. Default is Marketing (most webhook use cases are marketing-adjacent); override as appropriate.

Troubleshooting

  • No events arriving. Confirm TLS is valid on your endpoint. Self-signed certs are rejected.
  • Endpoint is slow. Set a generous timeout on your side. eventabee’s default timeout is 10s; requests past that retry.