Message from Clinical Team Received

Fires when a patient receives a message from the clinical team. ownerEntity is the Patient; targetEntity is the Affiliate. The eventType is message-from-admin-practitioner-received.

Field guarantees

FieldGuarantee
eventData.patientConversationId, message, type, sender✅ Always present (v1)
eventData.senderRole⚠️ Conditional — set only for recognized sender ids
message in v2⛔ Not delivered — blocked as PHI
patient_conversation_id, message_type in v2✅ Always present when set in eventData
🚧

The message body is v1-only. v2 correctly strips message (PHI). v2 delivers patient_conversation_id and message_type (from eventData.type) so you can correlate the thread and message category — see Field Guarantees.

v1 payload (legacy)

{
  "ownerEntity": { "id": "pat::ebbd2a07-xxxx-xxxx-xxxx-affaecf2b315", "firstName": "<PATIENT_FIRST_NAME>", "…": "patient document" },
  "ownerModel": "Patient",
  "targetEntity": "aff::96d23b23-xxxx-xxxx-xxxx-7759de5abcbb",
  "targetEntityModel": "Affiliate",
  "eventTitle": "Message Received.",
  "eventDescription": "Webhook event to inform patient that they received a message.",
  "eventType": "message-from-admin-practitioner-received",
  "eventData": {
    "patientConversationId": "pcv::bd6e11fd-xxxx-xxxx-xxxx-a35959104ec3",
    "message": "HELLO!",
    "type": "MESG",
    "sender": "admin_1",
    "senderRole": "admin"
  }
}
eventData fieldTypeAlways?Notes
patientConversationIdstringConversation id
messagestringMessage body (PHI)
typestringMESG (normal) or ADMN (automated)
senderstringSender identifier
senderRolestring⚠️Only set for recognized sender ids

v2 payload

Sanitized envelope. message is blocked as PHI; type/sender/senderRole aren't on the ORDER allowlist. patientConversationId aliases to patient_conversation_id.

{
  "event_type": "message-from-admin-practitioner-received",
  "event_id": "event::xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "api_version": "2026-08-09",
  "timestamp": "2026-05-30T14:00:00.000Z",
  "affiliate_id": "aff::96d23b23-xxxx-xxxx-xxxx-7759de5abcbb",
  "patient_id": "pat::ebbd2a07-xxxx-xxxx-xxxx-affaecf2b315",
  "patient_external_id": "ext-patient-123",
  "patient_marketing_consent": false,
  "is_returning_patient": true,
  "patient_conversation_id": "pcv::bd6e11fd-xxxx-xxxx-xxxx-a35959104ec3",
  "message_type": "MESG"
}
FieldDelivered in v2Notes
Envelope + patient identity
patient_conversation_idCorrelate the thread
message_typeFrom eventData.type — e.g. MESG or ADMN
message, type, sender, senderRolemessage blocked as PHI; sender/senderRole not on the allowlist