# Concepts & Architecture ## Enquiry to Booking Journey The following diagram illustrates the complete booking journey from enquiry creation through to confirmation, showing the interaction between all key parties in the Xenia Connect ecosystem. The diagram includes the flows for webhook notifications to your system. If you do not plan on subscribing to webhooks, you can safely ignore any steps associated with the "Your Webhook Endpoints" participant. **Visual Guide:** - 🔵 **Blue highlighted sections**: API calls made by the Third Party to Xenia Connect - Regular arrows: Internal Xenia operations and webhook notifications ```mermaid sequenceDiagram participant TP as Third Party (You) participant XC as Xenia Connect participant WH as Your Webhook Endpoints (if subscribed) participant AS as Accommodation Specialist Note over TP,AS: ENQUIRY CREATION PHASE rect rgb(240, 248, 255) TP->>XC: POST /enquiries
(Create new enquiry) XC->>XC: Validate & Store enquiry XC-->>TP: 201 Created
(xeniaReference, externalId) end XC->>WH: Trigger ENQUIRY.CREATED WH-->>TP: Webhook notification TP-->>WH: 204 No Content Note over TP,AS: SPECIALIST ASSIGNMENT AS->>XC: Assign specialist to enquiry XC->>WH: Trigger ENQUIRY.SPECIALIST_ASSIGNED WH-->>TP: Webhook notification TP-->>WH: 204 No Content Note over TP,AS: SHORTLISTING PHASE AS->>XC: Begin property shortlisting XC->>XC: Update enquiry state XC->>WH: Trigger ENQUIRY.SHORTLISTING WH-->>TP: Webhook notification TP-->>WH: 204 No Content AS->>AS: Research & select
suitable properties AS->>XC: Add shortlisted properties Note over TP,AS: QUOTING PHASE AS->>XC: Create quote with
selected properties XC->>XC: Generate quote AS->>XC: Send quote to client XC->>XC: Update enquiry state to QUOTED par Simultaneous webhook triggers XC->>WH: Trigger QUOTE.CREATED WH-->>TP: Webhook notification TP-->>WH: 204 No Content and XC->>WH: Trigger ENQUIRY.QUOTED WH-->>TP: Webhook notification TP-->>WH: 204 No Content end Note over TP,AS: CLIENT REVIEWS QUOTE rect rgb(240, 248, 255) TP->>XC: GET /quotes
(Retrieve quote details) XC-->>TP: Quote with properties & pricing end Note over TP,AS: BOOKING CONFIRMATION PHASE AS->>AS: Client accepts quote
(External process) AS->>XC: Create booking from quote XC->>XC: Generate booking XC->>WH: Trigger BOOKING.PENDING WH-->>TP: Webhook notification TP-->>WH: 204 No Content Note over TP,AS: PARTNER CONFIRMATION AS->>AS: Confirm with
accommodation partner XC->>XC: Send partner confirmation XC->>XC: Email confirmation to partner XC->>WH: Trigger BOOKING.PARTNER_CONFIRMATION_DETAILS_SENT WH-->>TP: Webhook notification TP-->>WH: 204 No Content Note over TP,AS: CLIENT CONFIRMATION AS->>AS: Confirm with
accommodation Client AS->>XC: Send client confirmation XC->>XC: Email confirmation to client XC->>WH: Trigger BOOKING.CLIENT_CONFIRMATION_DETAILS_SENT WH-->>TP: Webhook notification TP-->>WH: 204 No Content Note over TP,AS: CHECK-IN DETAILS AS->>XC: Send check-in details XC->>XC: Email check-in info XC->>WH: Trigger BOOKING.CHECK_IN_DETAILS_SENT WH-->>TP: Webhook notification TP-->>WH: 204 No Content Note over TP,AS: Alternative Flow - CANCELLATION alt Booking Cancelled AS->>XC: Cancel booking XC->>WH: Trigger BOOKING.CANCELLED WH-->>TP: Webhook notification TP-->>WH: 204 No Content end Note over TP,AS: Alternative Flow - ENQUIRY CLOSED alt Enquiry Closed Without Booking AS->>XC: Close enquiry
(with closure reason) XC->>WH: Trigger ENQUIRY.CLOSED WH-->>TP: Webhook notification TP-->>WH: 204 No Content end ```