Skip to main content
Webhooks allow you to build or set up integrations which subscribe to certain events on the Elation Platform without polling our API for changes. When one of those events is triggered, we’ll send a HTTP POST payload to the webhook’s configured URL. You can programmatically register your event listener (e.x. webhook URL) using The Event Subscription API.
Prevent Echo Note that updates made by an application will not trigger webhook callbacks to the same application.

Supported models

At the moment, you will receive events for the following models:

Event payload

When an event is triggered, the webhook POST body contains a JSON object with the following fields. See The Event Object for full details.
New fields event_uuid and resource_url are new additions to the webhook payload. event_uuid is a UUID7 identifier that will eventually replace event_id. resource_url will be offered in the future for resources with very large payloads as an alternative to embedding the full object in data.

Acknowledging events

We are expecting status code 200 when we POST the event payload to your webhook URL. We will retry the POST for up to 72 hours until we get a status code 200 response.

Webhook Signatures

Elation’s webhook requests are signed using the Ed25519 digital signature scheme. The base64 encoded signature can be found in the El8-Ed25519-Signature request header. The base64 encoded signing key for your webhook subscription can be in the signing_pub_key field in the response from the Subscription endpoint. Libraries exist for all common programming languages that support the verification of Ed25519 signatures.

Trusted IP addresses

If you want to whitelist the source of webhook traffic at the network level in addition to (or instead of) verifying the signature, webhook requests originate from the following IP addresses: Contact Elation Support if you need the current trusted IP addresses for the stage environment. Elation notifies designated technical contacts at least 10 business days in advance of any change to these IP addresses — if you’re relying on IP whitelisting, make sure Elation has a technical contact on file to receive that notice.

Example Implementation

The following is an example implementation, using Flask and PyNaCl.