Travel/Support context

Support that knows which trip the traveler means.

Signals tells your assistant and support desk which route and dates this traveler was booking, which fare they picked and what failed before they opened chat, so the first reply can start from the trip instead of asking for it.

Shorter handle times

Cut handle time by opening the chat on the trip the traveler was booking.

Handle time moves when the assistant or agent does not have to ask which trip, which dates and what went wrong. Signals gives your assistant and support desk the route and dates from this session, the fare the traveler picked, the error they hit and the pages they read before asking, current to the last event. Your assistant or agent decides what to say with it.

Open the chat on the booking that failed

A traveler got through the booking flow for Denver to Cancun, two passengers, next month, and the card was refused on the payment step. A minute later they are in chat. The assistant's first question asks which booking and what happened, and the traveler types out the route, the dates and the message they saw, then waits while it is looked up. The error code, the route, the dates and the fare were recorded when the payment failed. The chat can open with the booking on screen and the reason the card was refused, and move straight to retrying the payment.

What Signals knows
last_payment_error
The error code from the most recent payment failure this visit
route_session
The route of the booking they were on last this visit
travel_dates_session
The departure date of that booking
fare_family_session
The fare family they picked, such as basic or flex
What your assistant and support desk do

Opens the chat with the route, dates and fare on screen and the payment error named, and offers the payment retry as the first move when a payment has failed this visit. The retry runs through your payment provider and the assistant decides how to word it.

support.ts · 15 lines
// In the handler that runs when the chat widget opens
const traveler = await signals.getServiceAttributes({
  name: "trip_support_payment",
  attribute_key: "domain_sessionid",
  identifier: sessionId,
});
// { last_payment_error: "card_refused", route_session: "DEN-CUN", travel_dates_session: "2026-11-14", fare_family_session: "basic" }

if (traveler.last_payment_error) {
  assistant.open({
    intent: "retry_payment",
    booking: { route: traveler.route_session, departs: traveler.travel_dates_session, fare: traveler.fare_family_session },
    error: traveler.last_payment_error,
  });
}

Try it on your own site.

Add the SDK, define one thing you want to know about a visitor, and watch it update while you click around. The free tier runs on the real engine: no card, no sales call.