Late last year, we released an experimental Webhooks notification feature for feedback. That feedback has now been actioned and the Webhooks feature is now fully functional and live in staging. Improvements made since the experimental release are focused on performance, stability, and security.
The use case for Webhooks is twofold:
So whether you’re fetching gigs of data for analytics or need to know ASAP when appointments change, Webhooks have you covered
The other side of the equation is, of course, data security. We do not want to be pushing practice data across the wire any more often than we need to, and we need to be careful about what URLs we’re pushing data to. That lead to three key points of this feature:
To get a bit more technical, we’ve also expanded the metadata available with each webhook and the reliability of delivery. Specifically:
X-Halo-Timestamp
- ISO 8601 timestamp the webhook was sent on. Note this is different to the date the webhook occurred on which is included in the payload. Used for replay prevention and for HMAC signature verification.X-Halo-Signature-256
- HMAC-SHA256 signature in the format <message_body>.<timestamp_iso8601>
.X-Halo-Id
- The unique webhook identifier.To configure webhooks for your subscription, please contact Halo Connect support with the URL you would like webhooks to be sent to. Currently, this can only be a single URL per integrator per environment, however the following optional URL template variables are available:
{siteId}
is replaced with the practice’s Halo GUID{queryId}
is replaced with the ID of the query that triggered the webhook{source}
is replaced with the source of the query, either “async” or “registered”These are the same values included in the webhook payload.
These variables will be replaced with the respective value when the webhook is sent. For example, if an integrator's webhook URL is:
myintegration.com/webhooks/{siteId}
For a practice with Halo GUID 12345
, webhooks will be sent to:
myintegration.com/webhooks/12345