Nothing here is mandatory. You can go straight from
GET /v1/offers to
POST /v1/redemptions and skip the whole interest stage — it behaves exactly as it
always has. The steps below are what makes the concierge’s job possible before the
points move, rather than after.At a glance
1–2. Interest opens the conversation
A member does not have to spend anything to start talking to a concierge. An interest registers that they want an experience and opens the thread — no points debited, no inventory held.conversationId. That thread is live immediately.
3–4. Chat, and the intake form
PassconversationId to sendMessage and the member is talking to a concierge. Dates,
party size and the rest go through the intake endpoint, which replaces the whole block
each time.
The three health fields — dietary, allergies, accessibility — are accepted here and
never stored. See Interests and intake.
5. Terms, if your organisation requires them
Off by default. When Expys enables it,POST /v1/redemptions refuses an unaccepted member
with TERMS_NOT_ACCEPTED and names the version, so you can open the sheet straight from
the error. See Terms of service.
6. Redeeming from the interest
interest means the redemption inherits that conversation and the intake. No
second thread opens, and the member keeps one continuous chat from first curiosity to
post-trip follow-up.
7–9. Fulfilment
Everything from here is our concierge team working, and reaches you without you asking:redemption.*webhooks for every status transitionconversation.message_createdfor each concierge reply, withhasAttachmentswhen they send tickets or an itinerarystreamMessages(conversationId)for the live thread in-app
10. Afterwards
completed redemption accepts it. Averages come back per experience on
GET /v1/analytics/offers.
What each step needs
A member token acts as itself. An Org-API-Key names the member with
externalUserID. See
Authentication.