Skip to main content

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_CASE fires 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.
Known limitations

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

eventstring
The name of the event that was triggered. For this webhook, the value will always be `ADD_CASE_ESCALATION`.
payloadobject
The main object containing all data related to the event.
Show child attributes
escalationobject
The escalation record associated with this event. Only `null` if the originating action did not carry an escalation ID, which does not happen for any confirmed trigger of ADD_CASE_ESCALATION, UPDATE_CASE_ESCALATION, or REMOVE_CASE_ESCALATION.
Show child attributes
idstring<UUID>
The unique identifier for the escalation.
categorystring
Allowed values:SUPPORT_ESCALATION,CLINICAL_ESCALATION,EXTERNAL_SUPPORT_ESCALATION
The category of the escalation.
reasonstring
The specific reason for the escalation (e.g. "Missing ID", "Waiting for patient reply"). Valid values depend on `category` and are not a fixed platform-wide enum.
notestring | null
An optional free-text note attached to the escalation.
isCompletedboolean
Whether the escalation has been marked complete.
addedAtstring<date-time>
The timestamp when the escalation was added.
dueDatestring<date-time> | null
The follow-up due date for the escalation, if one was set.
addedByobject
The user who added the escalation. Always present.
Show child attributes
idstring
The unique identifier of the user.
firstNamestring
The user's first name.
lastNamestring
The user's last name.
emailstring
The user's email address.
assignedToobject | null
The user the escalation is assigned to. `null` if unassigned.
Show child attributes
idstring
The unique identifier of the user.
firstNamestring
The user's first name.
lastNamestring
The user's last name.
emailstring
The user's email address.
caseobject
An object containing the full details of the case at the time of the event.
Show child attributes
idstring<UUID>
The unique identifier for the case.
typestring
The type or category of the case (e.g., "GLP").
titlestring
The title of the case.
statusstring
Allowed values:OPEN,ASSIGNED,IN_PROGRESS,APPROVED,REJECTED,NO_DECISION
The current status of the case.
shortIdstring
A short, human-readable identifier for the case.
createdAtstring<date-time>
The timestamp when the case was created.
updatedAtstring<date-time>
The timestamp when the case was last updated.
assignedAtstring<date-time>
The timestamp when an assignee was first added to the case.
inProgressAtstring<date-time>
The timestamp when the case status changed to "IN_PROGRESS".
closedAtstring<date-time>
The timestamp when the case was closed. null if still open.
isArchivedboolean
Indicates if the case is closed/archived.
isEscalatedboolean
Indicates if the case is escalated.
isImportedboolean
Indicates if the case is imported from outside.
referralCodestring
Indicates if user have any referralCode.
closedBystring
The unique identifier for the user that case mark close.
inProgressBystring
The unique identifier for the user which make case in InProgress.
organizationIdstring<UUID>
The unique identifier for the case belongs which organization.
archiveReasonstring
Allowed values:COMPLETE,INELIGIBLE
Indicates if the case is archived any reason status.
archiveNotestring
Indicates if the case is archived any reason for it, null if still open.
visitTypeVisitType
Allowed values:NO_SHOW,ASYNC_TEXT_EMAIL,SYNC_VIDEO,SYNC_PHONE,ORDER_FORM
productBundleIdstring<UUID>
The unique identifier for the case belongs which product bundle.
productBundleobject
Details about the product bundle associated with the case.
Show child attributes
namestring
Indicates case product bundle name.
submitterobject
An object containing the details of the user who submitted the case.
Show child attributes
idstring
The unique identifier of the submitter.
firstNamestring
The first name of the submitter.
lastNamestring
The last name of the submitter.
emailstring
The email address of the submitter.
dobstring<date-time>
The date of birth of the submitter in ISO 8601 format.
genderstring
The gender of the submitter (e.g., MALE, FEMALE, OTHER).
phoneNumberstring
The phone number of the submitter, including country code.
addressstring
The primary address line of the submitter.
address2string
The secondary address line of the submitter, if applicable.
citystring
The city of the submitter's address.
statestring
The state or province of the submitter's address.
postalCodestring
The postal code of the submitter's address.
activityobject
The most recent `CaseActivity` row of type `ADD_CASE_ESCALATION` on this case, looked up by `caseId` + `type` only (not scoped to this specific escalation). If two escalations of the same type are added to the same case in quick succession, this can describe the wrong one — see the caution note above.
Show child attributes
idstring<UUID>
The unique identifier for this activity log entry.
typestring
Allowed values:CREATE_CASE,CHANGE_CASE_STATUS,ADD_CASE_COMMENT,DELETE_CASE_COMMENT,ADD_CASE_DECISION,ARCHIVE_CASE,ESCALATE_CASE,DEESCALATE_CASE,ADD_CASE_ESCALATION,REMOVE_CASE_ESCALATION,UPDATE_CASE_ESCALATION,DECISION_DELETED,ADD_CASE_ATTACHMENT,ADD_CASE_ASSIGNEE,REMOVE_CASE_ASSIGNEE,IMPORT_CASE,ADD_FORM_RESPONSE,UPDATE_FORM_RESPONSE,ADD_HR_REP,REMOVE_HR_REP,DELETE_ATTACHMENT,FOLLOWUP_EMAIL,PAYMENT_ADDED,PAYMENT_COMPLETED,PAYMENT_DELETED,PAYMENT_UPDATED,ORDER_CREATED,TEXT_INFO,REOPEN_CASE,SMS_SENT,SMS_RECEIVED,INBOUND_EMAIL,OUTBOUND_EMAIL,FOLLOWUP_FORM,ORDER_STATUS_CHANGED,ORDER_TRACKING_ADDED,PAYMENT_INFO_LINK_SENT,ADD_PAYMENT_INFO_USING_LINK,CALENDAR_EVENT_CREATED,CALENDAR_EVENT_RESCHEDULED,CALENDAR_EVENT_CANCELED,CALENDAR_EVENT_NO_SHOW,CALENDAR_EVENT_NO_SHOW_REMOVED,SUPPORT_NOTE_ADDED,SUPPORT_NOTE_UPDATED,SUPPORT_NOTE_COMPLETED,COMMENT_ACKNOWLEDGED,NOTE_ACKNOWLEDGED,VISIT_TYPE_CHANGED,PAYMENT_PREAUTHORIZED,SUBSCRIPTION_ADDED,SUBSCRIPTION_ACTIVATED,SUBSCRIPTION_COMPLETED,SUBSCRIPTION_PAUSED,SUBSCRIPTION_RESUMED,SUBSCRIPTION_CANCELLED,SUBSCRIPTION_UPDATED,ADD_CASE_PRODUCT,CLOSE_CASE_PRODUCT,OPEN_CASE_PRODUCT
The type of activity.
isPHIboolean
Indicates if the activity contains Protected Health Information (PHI).
isRestrictedboolean
Indicates if the activity details are restricted to internal users due to sensitivity (for example, payment data).
valueBeforestring | null
The previous value before this activity, if any. For this event, usually `null`.
valueAfterstring | null
A short description of the result of the activity, such as `payment info has been added`.
timestampstring<date-time>
The exact timestamp when the activity occurred.
actorobject
The user who performed the action (i.e., who added the new assignee).
Show child attributes
idstring<UUID>
The ID of the actor.
firstNamestring
The first name of the actor.
lastNamestring
The last name of the actor.
emailstring
The email of the actor.
targetUserobject
The user who was the target of the action (i.e., the user who was assigned).
Show child attributes
idstring<UUID>
The ID of the assigned user.
firstNamestring
The first name of the assigned user.
lastNamestring
The last name of the assigned user.
emailstring
The email of the assigned user.

Response

{
"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
}
}
}