Skip to content

Read Service recovery event

GET
/v1/object-types/hospitality.service_recovery_event/objects/{id}
curl --request GET \
--url https://api.aerandil.com/v1/object-types/hospitality.service_recovery_event/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'

Read an existing instance.

An instance of service recovery — failure, recovery action, comp authority used, follow-up. The unit of pattern detection: the same failure logged repeatedly against one room reveals an HVAC issue; against one staff member, a training need; against one venue at one time-of-day, a capacity / staffing pattern. The USHG 5 As stages-completed set surfaces structural process gaps (the operator that consistently apologises but never reaches additional generosity is structurally different from the one that consistently acts but rarely apologises). The comp_authority_snapshot freezes the toolkit’s role rules at recovery time so a later toolkit edit doesn’t retroactively re-evaluate whether the recovery was within authority. Soft validators on over-limit comp warn but don’t block — over-limit recoveries are the data the operator most needs and would otherwise hide.

id
required
string format: uuid

Object id (UUID v7, server-generated at create time).

branch
string format: uuid

Read through an open branch’s copy-on-first-write overlay view instead of the canonical (main) plane. Does not compose with as_of (422). The branch must exist under the caller’s tenant.

Object found.

Media typeapplication/json
object
created_at
required
string format: date-time
id
required
string format: uuid
object_type
required
Allowed value: hospitality.service_recovery_event
properties
required
object
comp_amount
Service recovery event comp amount

Comp amount

object
amount
required
string format: decimal
currency
required
string format: iso-4217
comp_authority_policy_ref
Comp authority policy bound at recovery time (structured ref)
string format: uuid
comp_authority_snapshot
Service recovery event comp authority snapshot

Comp authority snapshot at recovery time

object
comp_categories_allowed_at_recovery
Array<string>
Allowed values: room_night food_beverage spa retail parking other
flat_universal_per_incident_limit_at_recovery
object
amount
required
string format: decimal
currency
required
string format: iso-4217
per_incident_limit_at_recovery
object
amount
required
string format: decimal
currency
required
string format: iso-4217
per_shift_cumulative_at_recovery
object
amount
required
string format: decimal
currency
required
string format: iso-4217
policy_kind_at_recovery
required
string
role_code_at_recovery
string
comp_category
Comp category
string
Allowed values: room_night food_beverage spa retail parking other
failure_category
required
Failure category
string
Allowed values: staff_interaction room_condition fnb_quality fnb_service_pace billing allergy_dietary security_safety check_in_out maintenance recognition_failure anticipation_miss noise temperature other
failure_subject_text
What went wrong
string
follow_up_completed_at
Follow-up completed at
string format: date-time
follow_up_due_at
Follow-up due date
string format: date-time
follow_up_outcome
Follow-up outcome
string
happened_at
required
When the failure happened
string format: date-time
id
required
Recovery event id
string
interactional_quality
How the recovery landed
string
Allowed values: failed adequate genuine excellent
recovery_action_category
required
Recovery action category
string
Allowed values: apology_only apology_plus_gesture apology_plus_comp apology_plus_upgrade complaint_handling_only gesture_declined_with_dignity escalated_unresolved
recovery_authoriser
Authoriser principal
string
recovery_process_stages_completed
required
USHG 5 As stages completed
Array<string>
Allowed values: aware acknowledge apologise act additional_generosity
severity
required
Severity
string
Allowed values: minor moderate significant severe safety_health
time_to_first_response_seconds
Seconds until first response
integer
time_to_resolution_seconds
Seconds until resolved
integer
provenance

Per-property source attribution and pins. An entry under properties means the property’s current value came from that source (on the source’s own clock, source_updated_at); an entry under pins is a human override protecting the property from sourced writes.

object
pins
object
key
additional properties
object
pinned_at
string format: date-time
pinned_by
object
reason
required
string
properties
object
key
additional properties
object
external_id
string
recorded_at
required
string format: date-time
source
required
string
source_updated_at
string format: date-time
stream
string
scope
required
One of: discriminator: level
object
level
required
string
Allowed value: tenant
Allowed values: tenant
tenant_id
required
string format: uuid
updated_at
required
string format: date-time
version
required
integer
>= 1
Example
{
"object_type": "hospitality.service_recovery_event",
"properties": {
"comp_authority_snapshot": {
"comp_categories_allowed_at_recovery": [
"room_night"
]
},
"comp_category": "room_night",
"failure_category": "staff_interaction",
"interactional_quality": "failed",
"recovery_action_category": "apology_only",
"recovery_process_stages_completed": [
"aware"
],
"severity": "minor"
},
"scope": {
"level": "tenant"
}
}
ETag
string
/^"\d+"$/

Quoted strong validator (RFC 7232 §2.3) carrying the object’s monotonic version. Informational on the read path — object mutation goes through typed actions on /v1/actions/{action}/apply, not raw CRUD.

No object with that id (or soft-deleted).