Add Case Escalation
The ADD_CASE_ESCALATION event is triggered whenever a new escalation is added to a case, whether the escalation was added by internal staff through the CareGLP application or by an external client through the REST API.
This event also fires in two situations where an escalation is added automatically rather than by direct request:
- A case receives its first escalation. Since the case was not previously escalated,
ESCALATE_CASEfires alongside it (see Escalate Case). - A patient (the case submitter, on a partner organization's case) replies to a case through an in-app comment or an inbound email, while an escalation with reason "waiting for patient reply" is still open. The reply completes that escalation, which fires
REMOVE_CASE_ESCALATION, and a new escalation is added with reason "Patient has responded" (support) or "Patient has responded to providers question" (clinical), firing this event. A patient reply can also add a "Patient has responded" escalation on its own, even without a prior "waiting for reply" escalation, so this event can fire on most qualifying patient replies.
Editing or completing an escalation through the REST API, and two automatic flows that resolve escalations behind the scenes (completing a "Missing ID" escalation when a patient attaches a document, and completing review-related escalations when a case decision is approved), update the escalation directly in the database without sending a webhook. Teams relying on these webhooks as the source of truth for escalation state should be aware of this gap; see Update Case Escalation for details.
The payload.activity object is selected by case and activity type only, taking the most recent match — it isn't tied to this specific escalation. When two escalations of the same type are added to the same case close together (for example, the dual support/clinical "Patient has responded" flow above), the activity object attached to one webhook can end up describing the other escalation.
Attributes
eventstringpayloadobjectShow child attributes
escalationobjectShow child attributes
idstring<UUID>categorystringreasonstringnotestring | nullisCompletedbooleanaddedAtstring<date-time>dueDatestring<date-time> | nulladdedByobjectShow child attributes
idstringfirstNamestringlastNamestringemailstringassignedToobject | nullShow child attributes
idstringfirstNamestringlastNamestringemailstringcaseobjectShow child attributes
idstring<UUID>typestringtitlestringstatusstringshortIdstringcreatedAtstring<date-time>updatedAtstring<date-time>assignedAtstring<date-time>inProgressAtstring<date-time>closedAtstring<date-time>isArchivedbooleanisEscalatedbooleanisImportedbooleanreferralCodestringclosedBystringinProgressBystringorganizationIdstring<UUID>archiveReasonstringarchiveNotestringvisitTypeVisitTypeproductBundleIdstring<UUID>productBundleobjectShow child attributes
namestringsubmitterobjectShow child attributes
idstringfirstNamestringlastNamestringemailstringdobstring<date-time>genderstringphoneNumberstringaddressstringaddress2stringcitystringstatestringpostalCodestringactivityobjectShow child attributes
idstring<UUID>typestringisPHIbooleanisRestrictedbooleanvalueBeforestring | nullvalueAfterstring | nulltimestampstring<date-time>actorobjectShow child attributes
idstring<UUID>firstNamestringlastNamestringemailstringtargetUserobjectShow child attributes
idstring<UUID>firstNamestringlastNamestringemailstringResponse
{
"event": "ADD_CASE_ESCALATION",
"payload": {
"escalation": {
"id": "b1e6a1a2-9b3e-4b8a-9b7a-1f2c3d4e5f60",
"category": "SUPPORT_ESCALATION",
"reason": "Missing ID",
"note": null,
"isCompleted": false,
"addedAt": "2025-09-03T23:24:31.127Z",
"dueDate": null,
"addedBy": {
"id": "YaM948FdwiQa3Ek3GCnYsnZTTSW2",
"firstName": "Alex",
"lastName": "Johnson",
"email": "alex@example.com"
},
"assignedTo": null
},
"case": {
"id": "ec7ebb4c-3a36-43bf-93f7-3c292020c281",
"type": "GLP",
"title": "Case for John Doe",
"status": "IN_PROGRESS",
"shortId": "ADA-C1HM17",
"createdAt": "2025-08-05T08:51:38.903Z",
"updatedAt": "2025-09-03T23:24:31.129Z",
"assignedAt": "2025-08-06T18:04:26.412Z",
"inProgressAt": "2025-09-03T22:56:27.563Z",
"closedAt": null,
"isArchived": false,
"isEscalated": true,
"isImported": false,
"referralCode": null,
"closedBy": null,
"inProgressBy": "YaM948FdwiQa3Ek3GCnYsnZTTSW2",
"organizationId": "652f45e9-eb17-4955-8197-4170e375327f",
"archiveReason": null,
"productBundle": {
"name": "ORG-PRODUCT-BUNDLE-1"
},
"submitter": {
"id": "WzvygANWTEcfsLlDW1K22WWS7dY2",
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"dob": "1998-12-17T00:00:00.000Z",
"gender": "MALE",
"phoneNumber": "+12286475628",
"address": "1271 6th Avenue",
"address2": "",
"city": "New York",
"state": "AK",
"postalCode": "10020"
}
},
"activity": {
"id": "58a5e76c-f737-4c29-8077-837a545791f0",
"type": "ADD_CASE_ESCALATION",
"isPHI": false,
"isRestricted": false,
"timestamp": "2025-09-03T23:24:31.127Z",
"valueBefore": null,
"valueAfter": null,
"actor": {
"id": "YaM948FdwiQa3Ek3GCnYsnZTTSW2",
"firstName": "Alex",
"lastName": "Johnson",
"email": "alex@example.com"
},
"targetUser": null
}
}
}