Register an endpoint
- Open Integration > Webhooks in the analytics dashboard and select the domain.
- Choose Add endpoint, enter its name and HTTPS URL, and save.
- Store its
whsec_…signing secret as a backend environment variable. - Choose Verify for a signed connectivity ping, then Test for a sample identification.
Verify and store the event
The following Node.js example verifies the raw body before parsing it.saveInboxOnce is an application-owned durable database operation, described below.
Node.js / Express
saveInboxOnce with a unique constraint on the logical event ID and a durable inbox row. A duplicate insert must succeed without scheduling a second business action. The worker must apply its business change and mark the inbox record processed in one transaction, or use an equally idempotent external operation.
The example uses Express’s default raw-body size limit. Set an explicit limit suitable for your expected payloads, especially complete multi-account member lists.
Route by event type
identification.scored: joindata.identification_idto the protected action. Read the score, flags and three per-identification account results.hre.multi_account.changed: update the group by cluster ID and revision. It has no Identification ID or identification score.webhook.ping: connectivity check only.
event_id.
Enable multi-account group notifications
The group event must be enabled for your site and opted in on the endpoint withmultiaccount: true. It is disabled by default. Confirm availability with support before relying on it. Existing groups are not automatically replayed when you subscribe.