Skip to content

Connect a Webhook Consumer to Relayter ​

A Webhook Consumer receives Relayter events at an endpoint in your system. You can route different event types to the same HTTPS URL or to separate URLs.

Create the connection ​

  1. Go to Team settings → Connections.
  2. Click Add connection.
  3. Enter a connection Name.
  4. Select Webhook Consumer as the Connection type.
  5. Optional: add receivers who should receive connection updates.
  6. Save the connection.

Relayter generates a Consumer Secret and Consumer Authentication value. Use these values to verify requests sent to your endpoint, and store them as credentials.

Add an event ​

  1. Open the connection and click Add event.
  2. Select the Relayter Event your system should receive. Available events are:
    • CAMPAIGN_CREATED — A new campaign was created
    • BRIEFING_ITEM_CREATED — A new briefing item was created
    • BRIEFING_ITEM_UPDATED — An existing briefing item was updated
    • PRODUCT_UPDATED — An existing product was updated
    • ASSET_CREATED — A new asset was created
    • ASSET_UPDATED — An existing asset was updated
  3. Enter the HTTPS Endpoint to which Relayter should post the event.
  4. Set the event Status:
    • Enabled — Relayter will send events to this endpoint.
    • Disabled — Relayter will not send events. You can optionally provide a reason for disabling.
  5. Save the event.

Event status ​

  • Enabled — Relayter actively sends events to this endpoint.
  • Disabled — Relayter does not send events. You can manually disable an event at any time.
  • Unhealthy — Relayter stopped sending events after repeated delivery failures. An event can become Unhealthy for these reasons:
    • Retry limit exceeded — The endpoint did not respond successfully after multiple retry attempts.
    • Terminal HTTP error — The endpoint returned an HTTP error that is not recoverable (e.g., 404, 410, 403).
    • Terminal transport error — A network condition prevented reaching the endpoint (e.g., DNS failure, host unreachable).
    • Internal error — An unexpected error occurred while trying to deliver the event.

To resume delivery of an Unhealthy event, you can manually re-enable it from the connection details page.

Verify incoming requests ​

Relayter sends each event as a JSON POST request with these headers:

HeaderUse
AuthorizationBearer token containing the Consumer Authentication value.
WebHook-Request-OriginIdentifies the Relayter event source.
WebHook-Request-TimestampRequest time in milliseconds.
WebHook-Request-SignatureHex-encoded HMAC-SHA256 signature.

To verify the signature, concatenate the exact JSON request body, a period, and the timestamp header value. Calculate an HMAC-SHA256 digest using the Consumer Secret and compare its hexadecimal value with WebHook-Request-Signature.

text
signed message = <exact request body>.<Webhook-Request-Timestamp>

Use a timing-safe comparison in your application. Also verify the bearer token and reject timestamps outside the age your integration permits.

Respond to Relayter ​

Return a response promptly. Relayter accepts 200, 201, 202, and 204 responses:

  • 200 (OK) — Delivery accepted and processed.
  • 201 (Created) — Delivery accepted and processed.
  • 202 (Accepted) — Delivery accepted for asynchronous processing. Use this when you have accepted the event but have not yet finished processing it.
  • 204 (No Content) — Delivery accepted and processed.

Read the payload ​

The request body contains a CloudEvents-style envelope with the event data. See Understand Webhook Event Payloads for the envelope, product payload, assets, exports, and expiring file URLs.