Travel/Loyalty timing

A join prompt that waits for the second trip.

Signals tells your site how many trips a traveler has booked this year, how many times they have closed the join prompt and whether a member has used a benefit, so the prompt shows when there is a reason to say yes.

More loyalty sign-ups

Get more loyalty sign-ups by asking when the traveler has a reason to join.

Loyalty sign-ups move when the prompt reaches a traveler who has a reason to join, and stays out of the way of one who does not have it yet. Signals gives your site how many trips this traveler has booked in the last year, how many visits they have made this month, how many times they have closed the join prompt and whether a member has used a benefit on a booking. Your site decides when the prompt shows and what it says.

Show the join prompt on the booking that earns the points

A traveler booked a flight in March and is back in October, two passengers picked, on the confirmation step of a second trip. A join prompt that shows on arrival reached this traveler on their first visit, when they had no idea whether they would fly with you again, and the no they gave then cost them nothing. The reason to join arrives now, as the points this booking would earn, and the prompt belongs on this step with that number in it.

What Signals knows
bookings_1y
Bookings completed on this browser in the last year
visits_30d
Separate visits in the last 30 days
What your site does

Shows the join prompt at the confirmation step once a traveler has a completed booking in the last year, and fills in the points this booking would earn from your program's own rules. The step stays clear of the prompt for a traveler booking their first trip.

confirmation.tsx · 15 lines
// In the code that renders the confirmation step
const traveler = await signals.getServiceAttributes({
  name: "trip_loyalty_second_trip",
  attribute_key: "domain_userid",
  identifier: domainUserId,
});
// { bookings_1y: 1, visits_30d: 3 }

if (traveler.bookings_1y >= 1) {
  confirmation.show({
    prompt: "join",
    points: loyalty.pointsFor(booking),
    headline: "Join now and this trip earns points",
  });
}

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.