Skip to Content
Welcome to Novee Developer Portal 🎉

Event Types & Payloads

This document describes every webhook event type, when it fires, and the full payload schema delivered to your endpoint.


Common Delivery Structure

Every webhook delivery is an HTTP POST with the following headers and body:

Headers

HeaderTypeDescription
Content-TypestringAlways application/json.
X-TimestampstringUnix timestamp (milliseconds) when the payload was signed.
X-SignaturestringHMAC-SHA256 hex digest of {timestamp}.{JSON body}.

Body

The body is the event-specific data described below. It is the data field of the internal webhook event — the wrapper (containing userUUID, webhookType) is not sent to your endpoint. You receive only the event payload directly.


FALL_DETECTION — Emergency / Fall Detection

Enum Value: FALL_DETECTION

Triggered when a fall or emergency event is detected for a user. This is a critical, time-sensitive event.

Payload Schema

{ "userUUID": "string", "reasons": ["string"], "happenedAt": "string (ISO 8601 datetime)", "email": "string", "firstName": "string", "lastName": "string" }

Field Descriptions

FieldTypeDescription
userUUIDstringThe UUID of the user who experienced the event.
reasonsstring[]Array of reasons for the emergency. Currently contains "fall" for fall detection events.
happenedAtstringISO 8601 timestamp of when the emergency occurred.
emailstringThe email address of the affected user.
firstNamestringFirst name of the affected user.
lastNamestringLast name of the affected user.

Example Payload

{ "userUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "reasons": ["fall"], "happenedAt": "2026-02-17T14:30:00.000Z", "email": "jane.doe@example.com", "firstName": "Jane", "lastName": "Doe" }

VITAL_THRESHOLD — Vital Threshold Breach

Enum Value: VITAL_THRESHOLD

Triggered when one or more of a user’s vital signs cross a configured threshold (either above or below the set limit).

Payload Schema

{ "triggeredVitals": [ { "vitalType": "string", "badValue": "number", "thresholdValue": "number", "vital_id": "string", "reason": "string" } ], "userUUID": "string", "email": "string", "firstName": "string", "lastName": "string" }

Field Descriptions

FieldTypeDescription
triggeredVitalsThresholdResult[]Array of vitals that crossed their thresholds.
userUUIDstringThe UUID of the user whose vitals triggered the alert.
emailstringEmail address of the affected user.
firstNamestringFirst name of the affected user.
lastNamestringLast name of the affected user.

ThresholdResult Object

FieldTypeDescription
vitalTypestringThe type of vital that triggered. See Vital Types below.
badValuenumberThe actual vital reading that crossed the threshold.
thresholdValuenumberThe threshold value that was breached.
vital_idstringThe MongoDB document ID of the vital record.
reason"high" | "low" | nullWhether the threshold was crossed on the high or low side.

Vital Types

Vital TypeDescription
heartrateHeart rate (BPM)
heartrateVariabilityHeart rate variability
respiratoryRateRespiratory rate
pulseoxPulse oximetry (SpOâ‚‚)
bloodPressureSystolicSystolic blood pressure
bloodPressureDiastolicDiastolic blood pressure
glucoseBlood glucose level
temperatureBody temperature
EKGElectrocardiogram

Example Payload

{ "triggeredVitals": [ { "vitalType": "heartrate", "badValue": 145, "thresholdValue": 120, "vital_id": "60c72b2f9b1d4c3a5c8e4d3f", "reason": "high" }, { "vitalType": "pulseox", "badValue": 88, "thresholdValue": 90, "vital_id": "60c72b2f9b1d4c3a5c8e4d40", "reason": "low" } ], "userUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "email": "john.smith@example.com", "firstName": "John", "lastName": "Smith" }

TEST — Test Event

Enum Value: TEST

A special event used to verify that your webhook endpoint is configured and responding correctly. Sent only via the manual test endpoint. This event bypasses event type filtering — it is delivered regardless of which types you’ve subscribed to.

Payload Schema

{ "test": "test" }

Example Usage

Trigger via the API:

POST /webhooks/test/project/:projectId

Your endpoint will receive a POST with the above payload, signed with your webhook secret.

Last updated on