Skip to content

๐Ÿงฑ Business Event Model

Diagram

classDiagram
    class EventLog {
        UUID id
        String objectId
        ObjectEnum objectType
        TopicEnum topic
        String? actorId
        ActorEnum actorType
        EventSourceEnum eventSource
        String? pmsPropertyId
        Instant timestamp
        Map~String, JsonNode~ context
    }

    class ActorEnum {
        <<enumeration>>
        BOOKER
        INTEGRATION
        PRIMARY_GUEST
        PRINCIPAL
        SECONDARY_GUEST
    }

    class ObjectEnum {
        <<enumeration>>
        ACCOUNT
        BOOKING
        CONVERSATION
        FOLIO
        GATEWAY
        LOCK
        MAGIC_PROMO_CODE
        MESSAGE
        PROFILE
        RESERVATION
        TASK
        TENANT_CONFIG
        UNIT
    }

    class TopicEnum {
        <<enumeration>>
        ACCOUNT_NOTIFICATION_FAILED
        ACCOUNT_NOTIFICATION_SENT
        BOOKING_CREATED
        BOOKING_IBE_FAILED
        BOOKING_IBE_SUCCESS
        BOOKING_NOTIFICATION_FAILED
        BOOKING_NOTIFICATION_SENT
        BOOKING_UPDATED
        CONVERSATION_CREATED
        CONVERSATION_RESOLVED
        CONVERSATION_UPDATED
        DOOR_OPEN_FAILED
        DOOR_OPEN_SUCCESS
        FOLIO_CREATED
        FOLIO_UPDATED
        GATEWAY_CONNECTION_LOST
        GATEWAY_CONNECTION_RESTORED
        LOCK_CONNECTION_LOST
        LOCK_CONNECTION_RESTORED
        MAGIC_PROMO_CODE_CREATED
        MAGIC_PROMO_CODE_DELETED
        MAGIC_PROMO_CODE_UPDATED
        MAGIC_PROMO_CODE_USED
        MESSAGE_FAILED
        MESSAGE_INTERACTION
        MESSAGE_RECEIVED
        MESSAGE_SENT
        PROFILE_CREATED
        PROFILE_LANGUAGE_UPDATED
        PROFILE_MERGED
        PROFILE_UPDATED
        RESERVATION_ACTION_FAILED
        RESERVATION_ACTION_SUCCESS
        RESERVATION_CANCELLED
        RESERVATION_CHECKED_IN
        RESERVATION_CHECKED_OUT
        RESERVATION_CONDITION_UPDATED
        RESERVATION_CREATED
        RESERVATION_DOOR_ACCESS_SYNC_FAILED
        RESERVATION_DOOR_ACCESS_SYNC_SUCCESS
        RESERVATION_DOOR_OPEN_FAILED
        RESERVATION_DOOR_OPEN_SUCCESS
        RESERVATION_NOTIFICATION_FAILED
        RESERVATION_NOTIFICATION_SENT
        RESERVATION_NO_SHOW
        RESERVATION_PRECHECKIN_FLOW_CHANGED
        RESERVATION_PRECHECKIN_FLOW_COMPLETED
        RESERVATION_PRECHECKOUT_FLOW_CHANGED
        RESERVATION_PRECHECKOUT_FLOW_COMPLETED
        RESERVATION_UPDATED
        TASK_COMPLETED
        TASK_CREATED
        TASK_UPDATED
        TENANT_CONFIG_UPDATED
    }

    class EventSourceEnum {
        <<enumeration>>
        AI_BOT
        ALERT
        BACKOFFICE
        CHECKIN_WIZARD
        DOOR_ACCESS_PROVIDER
        GUEST_JOURNEY
        KIOSK
        MESSAGE_PROVIDER
        NOTIFICATION
        PAYMENT_PROVIDER
        PERSON_RECORD_MATCHING
        PLATFORM
        PMS
        SECOND_SCREEN
        TASK_MANAGEMENT
        UNIFIED_MESSAGING
        UNKNOWN
    }

    EventLog --> ObjectEnum : objectType
    EventLog --> TopicEnum : topic
    EventLog --> ActorEnum : actorType
    EventLog --> EventSourceEnum : eventSource

Sample Json

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2025-01-15T14:30:15.123Z",
  "objectId": "reservation-12345",
  "actorId": "guest-98765",
  "pmsPropertyId": "prop-23",
  "objectType": "RESERVATION",
  "eventSource": "KIOSK",
  "actorType": "PRIMARY_GUEST",
  "topic": "RESERVATION_CHECKED_IN",
  "context": {
    "key1": "value1",
    "key2": {
      "nested": "object"
    }
  }
}

Field Descriptions

Field Type Description
id UUID Unique identifier for the event
objectId String Unique identifier of the object that triggered the event
objectType Enum Type of object
topic Enum Specific event topic
actorId String OPTIONAL: Identifier of the entity that performed the action
actorType Enum Type of actor
eventSource Enum System or application that generated the event
pmsPropertyId String OPTIONAL: Identifier of the property the object belongs to
timestamp Instant Exact time when the event occurred
context Map Event-specific metadata as key-value pairs
โš ๏ธ Not contractually fixed. Behavior may vary depending on the connected PMS