Skip to main content
Skip table of contents

WebHooks and Structured URL's

This document outlines the methods by which you can pass consumer trip data to Holibob to personalise the user experience for individual travellers and cross-sell targeted things to do. This means if the consumer is travelling to London with their Children, we will render a family-friendly shelf on the London Destination Page.

For Developers, you can see a link to our WebHook technical documentation here - https://webhook.documentation.holibob.tech/operation/operation-post-booking-event-create-parameter

Method / Mechanism

When would you use this

Advantages

Limitations

Webhook

PREFFERED

This method allows our partners to send customer booking data to Holibob when they confirm, cancel or amend a booking for their original purchase via your brand. (Flight, hotel, other travel product)

Best used when: Holibob markets to these consumers on our partner's behalf via WhatsApp close to the travel date / in-destination to maximise conversion.

Allows partners to reap the full benefit of the Holibob personalisation engine.

Holibob can power marketing automation on your behalf.
Enables use of short URL: https://experiences.{partnerName}.com/ct/gxqmyqbj

Holibob can filter consumers based on available destinations.

Real-time updates on booking creation, modification, and cancellation.

Not applicable if marketing tours and experiences before your consumer has made a booking (flight / hotel etc.)

Url Params / Structured URL

ALTERNATIVE

Partners can easily embed a structured URL across your booking journey and existing pre and post-booking touch points. For example, booking confirmation screens, voucher emails etc.

Best used when: Promoting experiences pre-booking or in placements in existing booking journey.

Smaller engineering lift

Only need to send data at time of consumer clocking the link

We may not cover 100% of the destinations you serve, therefor we would land the consumer on the global experience, enabling them to select their destination of interest.

Webhooks

Utilising Webhooks allows our partners to pass data at the point a consumer makes an initial purchase via your brand, leaving Holibob to deliver the personalised consumer experience. We set up webhook endpoints for our partners to send booking events in real-time, including updates on booking creation, modification, and cancellation. This means we won’t market to any consumers who have changed or cancelled their booking.

Timing:

We advise partners to send trip data as soon as the booking is made on their side. E.g:

  1. a flight is booked

  2. a hotel is booked

This enables us to not miss opportunities to market to customers who book at the last minute.

Implementation

Architecture

  1. Partner system sends us booking events in real-time

  2. Partner events are sent to a Holibob API

  3. Holibob markets to consumers close to the travel date

Events

We typically set up three endpoints for the following events:

Event

Use

Importance

Booking Create

When the consumer creates a new booking

Scheduling marketing and personalising UX

Booking Update

When the consumer updates any information on an existing booking

Ensure we do not personalise experience based on stale data

Booking Cancel

When the consumer cancels a booking

Ensure that we do not send any marketing when trip has been cancelled

Authentication

We do not require any authentication on our endpoints, making them easy to integrate with. They are protected by “security through obscurity” and kept hidden, even from us. The endpoint itself is treated as a secret and securely sent, as per the steps below:

Receiving your secret:

  • We use Bitwarden Send to securely send your secret.

  • You will receive an email that allows you to view your secret only once and times out after (24 hrs)

  • When you are ready, please co-ordinate with your partner success manager to initiate this process.

Example Secret: 12345678

Example endpoints:

Booking create: https://webhook.production.holibob.tech/booking-event/create/12345678

Booking Update: https://webhook.production.holibob.tech/booking-event/update/12345678

Booking Cancel: https://webhook.production.holibob.tech/booking-event/cancel/12345678

Url Parameters

The tableattached shows all of the parameters that can be passed on the URL:

Data Point

Data Type

Url Param Field

Supported in DB?

Forwarded to Braze?

Braze field name

Use

Level

Page details field

Consumer Id

String

n/a

YES

YES

consumerId

Consumer

Consumer Given Name

String

consumerTrip.consumer.givenName={{variable}}

YES

YES

first_name

Personalisation

Consumer

Consumer Partner External Reference

String

consumerTrip.consumer.selector.type=reference&consumerTrip.consumer.selector.value={{variable}}

YES

YES

Linking Partner's customers to consumers in the Holibob system. Grouping multiple bookings under the same consumer.

Consumer

Consumer Phone

Phone

n/a

YES

YES

phone

Sending marketing campaigns

Consumer

Consumer Email

Email

n/a

YES

YES

email

Consumer

Consumer Nationality

String

n/a

NO

No

Consumer

Consumer Currency

String

n/a

NO

No

Consumer

Consumer Trip Id

String

n/a

YES

YES

external_id / consumerTripId

consumer_trip

Consumer Trip Code

String

n/a

YES

YES

consumerTripCode

consumer_trip

Consumer Trip Partner External Reference

String

consumerTrip.selector.type=reference&consumerTrip.selector.value={{variable}}

YES

YES

partnerExternalReference

consumer_trip

Consumer Trip Venue name

String

consumerTrip.venueName

YES

No

consumer_trip

Arrival date

Date or Datetime

consumerTrip.arrivalDate

YES

YES

consumer_trip

Return date

Date or Datetime

consumerTrip.returnDate

YES

YES

consumerTripReturnDate

consumer_trip

Child count

Positive integer

consumerTrip.childCount

YES

YES

consumerTripChildCount

Infant count

Positive integer

consumerTrip.infantCount

YES

YES

Person count

Positive integer

consumerTrip.personCount

YES

YES

consumer_trip

Departure city

String

YES

YES

consumer_trip

Departure country

String

consumerTrip.departureCountryName

YES

No

consumer_trip

Departure airport code

String

consumerTrip.departureAirportCode

YES

YES

consumer_trip

Arrival flight number

String

consumerTrip.arrivalFlightNumber

YES

YES

consumer_trip

Departure flight number

String

consumerTrip.departureFlightNumber

YES

YES

consumer_trip

Departure flight class

ENUM

consumerTrip.departureFlightClass

YES

No

consumer_trip

Booking date

Date or Datetime

consumerTrip.bookingDate

YES

No

consumer_trip

Booking link

URL

NO

YES

consumer_trip

Accomodation name

String

consumerTrip.accommodationName

YES

YES

consumer_trip

Accomodation address

String

consumerTrip.accommodationAddress

YES

No

consumer_trip

Venue address

String

YES

No

consumer_trip

Destination name

String

consumerTrip.destinationName

YES

YES

consumer_trip

Destination country name

String

consumerTrip.destinationCountryName

YES

No

consumer_trip

Destination airport code

String

consumerTrip.destinationAirportCode

YES

YES

consumer_trip

Arrival airport name

String

consumerTrip.arrivalAirportName

YES

No

consumer_trip

Departure airport name

String

consumerTrip.departureAirportName

YES

No

consumer_trip

External product name

String

consumerTrip.externalProductName

YES

No

consumer_trip

Is international

boolean

NO

No

consumer_trip

Is regional

boolean

NO

No

consumer_trip

Is local

boolean

NO

No

consumer_trip

Example → A two-week trip to Rome with Kids

https://numa.booking.holibob.tech/?consumerTrip.destinationName=Rome&consumerTrip.arrivalDate=2025-01-01&consumerTrip.departureDate=2025-01-15&consumerTrip.childCount=2&consumerTrip.personCount=4

URL Param Field

Example data

consumerTrip.destinationName

Rome

consumerTrip.arrivalDate

2025-01-01

consumerTrip.departureDate

2025-01-15

consumerTrip.childCount

2

consumerTrip.personCount

4

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.