Skip to article

Post-booking is the trust product

Checkout wins a transaction. What happens during a change, cancellation or refund decides whether the customer will trust you with the next trip.

Travel products are often designed as funnels. Search becomes selection, selection becomes checkout, and checkout becomes a confirmation screen. The graph rises toward conversion and then, organisationally, the customer disappears.

The traveller’s experience is only beginning.

Between booking and fulfilment, suppliers change schedules, plans evolve, documents need to be found and money may need to reverse direction. The brand that made the sale becomes most visible when the original promise is under pressure.

That is why post-booking is not a support appendix. It is the trust product.

Trust is created by legibility

Customers do not expect a travel company to control the weather, an airline’s operation or every hotel decision. They do expect the company to know what happened and to make the next step clear.

In an exception, trust comes from five forms of legibility:

  1. State: what is confirmed, changed, pending or cancelled?
  2. Consequence: which parts of the trip are affected?
  3. Choice: what can the traveller do now?
  4. Money: what will be charged or returned, and what is still pending?
  5. Ownership: who is taking the next action?

A polished apology without these answers is decoration. A plain interface with them can feel remarkably calm.

A booking is not a receipt

A receipt is static. A travel order is a living record that can contain several supplier commitments, travellers, payment movements and fulfilment states.

Model the order accordingly. It needs stable identifiers, component-level status, a chronological event history, the terms accepted at purchase, and links between each service action and its financial consequence. The system should preserve both current truth and how it arrived there.

OnArrival’s platform treats booking as a lifecycle spanning discovery, transaction, service and settlement. That framing matters because a change is not an isolated support action. It updates the same object that powers the itinerary, notifications, supplier instructions and finance records. The travel order lifecycle guide describes that underlying state model in detail.

Design the unhappy paths first

Post-booking quality is easiest to judge with scenarios, not feature lists. Choose real journeys and rehearse them end to end.

ScenarioProduct must explainSystem must coordinate
Supplier changes a flight timeNew time, affected connection, available choicesEvent ingestion, order update, re-shop or escalation
Traveller cancels a hotelPenalty, refund amount, remaining tripPolicy interpretation, supplier cancellation, ledger update
One bundle component failsWhat is still confirmed and what happens nextComponent states, rollback or recovery, communication
Refund is in progressAmount, method, current stage and next expectationSupplier recovery, payment movement, reconciliation
Traveller changes one passengerEligibility, price difference and documentsSupplier rules, order mutation, payment and audit trail

The bundle-failure row deserves particular respect. When one component fails while others have already committed, recovery is a compensation saga across suppliers, and the travel cart essay walks that commit-and-compensate sequence step by step. Post-booking inherits whatever the commit leaves behind, so both need to write to the same journal.

The purpose is not to automate every edge case. It is to ensure every edge case has a safe state, a visible owner and a route forward.

Events should become decisions

A supplier webhook is not a customer experience. It is an input.

An effective event pipeline deduplicates repeated messages, preserves ordering where it matters and attaches the event to the correct booking component. Then policy decides whether to notify, offer self-service, take an automatic action or create a human task.

For flights, OnArrival describes schedule-change webhooks and ranked re-accommodation options in the Flights product. The valuable part is not merely receiving the change. It is connecting that change to an actionable order state. A well-formed event carries everything that attachment needs:

{
  "event_id": "evt_5c90a1",
  "type": "schedule.changed",
  "sequence": 3,
  "occurred_at": "2026-08-03T04:18:00Z",
  "order_id": "ord_82f4c7",
  "item_id": "itm_flight_outbound",
  "change": {
    "segment": "BLR-DXB",
    "old_departure": "2026-08-21T08:05+05:30",
    "new_departure": "2026-08-21T11:40+05:30",
    "delta_minutes": 215
  }
}

The event_id powers deduplication, sequence restores order when retries arrive backwards, and the order_id and item_id pair pins the change to the exact component whose fare rules and policy apply. From there, the pipeline is a short, inspectable path from webhook to updated order:

no response by deadline · policy default or human task EVENT ATTACH RANK OPTIONS CHOICE ORDER v(n+1) schedule.changed retried · deduped map to order item assess connections keep · rebook · refund policy filters first traveller or policy idempotent commit same state everywhere refund entry if due T+0 T+seconds T+minutes traveller decides on commit SAME EVENT HISTORY FEEDS AUTOMATION, TRAVELLER AND SUPPORT
A disruption timeline. The event attaches, options rank, someone chooses, and the same order everyone can see is updated.

Good automation is bounded. A low-risk update might be accepted by policy. A complex itinerary or ambiguous supplier response may require a person. Both paths should use the same event history, so the human does not begin by reconstructing the trip.

Self-service needs a confidence boundary

Customers value control, but a button is not self-service if the outcome is uncertain.

Before exposing an action, the product should know:

  • Whether the action is allowed now
  • The exact or bounded financial effect
  • Which trip components it changes
  • Whether confirmation is immediate or asynchronous
  • What happens if the supplier times out
  • How the action can be retried without running twice

That last point matters. Change, cancel and refund operations should be idempotent: a nervous double tap or network retry must not create a second action.

When certainty is not available, the interface should say so and create an inspectable pending state. Honest waiting is better than false confirmation.

Support needs an operating cockpit, not another inbox

A support agent should not ask the traveller to forward the confirmation that your system created. The workspace should make the order’s state, timeline, traveller messages, supplier references and money movements visible together.

The ideal handoff includes:

  • The reason automation stopped
  • Actions already attempted and their responses
  • Allowed next actions and relevant policy
  • The customer’s latest choice
  • Time sensitivity and downstream trip dependencies
  • A clear owner and resolution status

This is where product and operations converge. Every repeated manual pattern is evidence for a better policy, tool or self-service flow. Every automated path should still be observable by the people accountable for its outcome.

Refunds are communication products

“Refunded” can describe several different moments: a supplier approved it, a ledger entry was created, a payment instruction was submitted, or the customer’s bank displayed the credit. Collapsing them into one label creates avoidable anxiety.

Use states that reflect what the system actually knows. Attach the refund to the original order and payment. Show the amount, destination and any component-level penalty. Keep the customer informed when the state changes, not merely when the process begins.

Refund stateWhat the system knowsWhat the customer should see
calculatedPolicy produced an amount and a penaltyThe exact figure, before they commit
approvedSupplier or policy agreed to return itAmount, destination and expected timeline
instructedA payment instruction was submitted“Sent to your original payment method” with a date
settledThe processor confirmed the movementCompletion, with a reference they can quote
failedThe instruction bouncedA concrete next step, never a dead end

The travel-aware model on the Payments page connects customer collection, supplier settlement, refunds and reconciliation. That shared context is essential: support should not promise money that finance cannot trace. For the financial mechanics, continue to One booking, many money movements.

Measure resolution, not deflection

Self-service rate and contact deflection can be useful, but they are incomplete. A customer who gives up is not a successful automation.

Add measures such as:

  • Time from supplier event to customer-visible state
  • Share of exceptions with a named next action
  • Successful completion rate by service action
  • Repeat contacts for the same order and issue
  • Time spent in ambiguous or pending states
  • Refund state accuracy across product and finance systems
  • Manual interventions caused by missing context

Review failures as product work, not only agent coaching.

The post-booking readiness checklist

Before calling a travel experience production-ready, verify that:

  • Every booking component has a current, inspectable status.
  • Supplier events are retried, deduplicated and attached to the order.
  • The customer can reach manage-booking from the itinerary and confirmation.
  • Cancellation and change consequences appear before commitment.
  • Pending actions cannot vanish between automated and human queues.
  • Support sees the same state the customer sees, plus the event history.
  • Refund states correspond to real money states.
  • Reduced connectivity and travel-day use have been considered.
  • Communications state the next action, not just the problem.

Acquisition earns attention. Checkout earns revenue. Resolution earns permission to be chosen again.