Their trip is booked. What’s next?
Add activity recommendations to a hotel or car rental confirmation. Pass the dates and group size so customers can start exploring right away.
Add Huavela’s activity finder to your website with one script tag. It helps people discover the best things to do on Oʻahu for their interests, travel dates and group, in colors that fit your brand.
Try the activity finder Become a partner →This is the live widget. Change the options and copy the code for your page.
Loading the activity finder…
<div id="oahu-activities"></div>
<script src="https://huavela.com/assets/embed.js"></script>
<script>
Huavela.mount("#oahu-activities", {
partner: "your-partner-id",
height: 480,
traveler: {
name: "John",
adults: 2,
children: 1
},
theme: {
accent: "#216d91",
background: "#f7fafb",
text: "#14394f",
radius: 18
}
});
</script>Huavela.mount with what you know about your customer.<div id="oahu-activities"></div>
<script src="https://huavela.com/assets/embed.js"></script>
<script>
Huavela.mount("#oahu-activities", {
partner: "your-partner-id",
height: 560,
traveler: { name: "John", adults: 2, children: 1 },
trip: { start: "2026-10-23", end: "2026-10-27" },
theme: { accent: "#216d91", background: "#f7fafb", text: "#14394f", radius: 18 },
});
</script>That is the whole integration. Every option is optional: with none, the activity finder opens with a general greeting in our default colors.
If your page is built from a template, put the same options on the container as attributes. The script finds every element marked data-huavela.
<div data-huavela
data-partner="your-partner-id"
data-height="560"
data-name="John" data-adults="2" data-children="1"
data-trip-start="2026-10-23" data-trip-end="2026-10-27"
data-theme-accent="#216d91"
data-theme-background="#f7fafb"></div>
<script async src="https://huavela.com/assets/embed.js"></script>| Option | Type | What it does |
|---|---|---|
partner | string | Your partner ID. It identifies conversations that start on your site. |
height | number | Height of the chat in pixels, from 360 to 1200. Default 560. The widget is always as wide as its container; recommended experiences appear below the chat and add to the height. |
traveler.name | string | How to greet your customer, for example “John” or “John Smith”. Letters, spaces, hyphens and apostrophes; up to 60 characters. |
traveler.adults | number | Adults in the party, 1 to 30. |
traveler.children | number | Children in the party, 0 to 20. |
trip.start, trip.end | YYYY-MM-DD | First and last day on Oahu. The activity finder mentions them in its greeting and remembers them for the conversation. |
placeholder | string | Hint shown in the empty message box. |
overlay | boolean | Default true: an experience opens over your page and closes back to the conversation. Set false to open it in a new tab. |
autoScroll | boolean | Default true: when the first recommendations arrive, the page scrolls just enough to show them. |
onEvent | function | Called with (name, detail) when something happens in the widget. See Events. |
As attributes, the same options are data-partner, data-height, data-name, data-adults, data-children, data-trip-start, data-trip-end, data-placeholder, data-overlay and data-auto-scroll.
After a checkout you already know who is traveling and when. Pass it in, and the conversation starts where a good host would:
Hey John, I’m your Oʻahu activity finder. I see you’ll be on the island from October 23 to 27, traveling as a party of 3. Would you like me to find some amazing experiences for your stay?
Your customer can answer “yes” and the activity finder carries on from there. Leave out anything you do not know; the greeting uses only what you pass.
#, the part of an address a browser does not send to a server. They reach Huavela only when your customer sends a first message.Pass a theme to match the page around it. The defaults use Huavela’s ocean blues, soft surfaces, rounded cards and DM Sans typeface. Colors take any CSS color. As attributes they are data-theme-accent, data-theme-background-image and so on.
| Theme option | What it styles |
|---|---|
accent | Buttons, the visitor’s own messages and focus rings. Use your brand color. |
accentText | Text on the accent color. Chosen for contrast when you leave it out. |
background | Background of the chat. |
text | Text in the chat. |
backgroundImage | An https image shown behind the chat. |
backgroundOverlay | A color laid over the image so text stays readable, for example rgba(0,0,0,.45). |
cardBackground, cardText | Colors of the experience cards. |
radius | Corner radius in pixels, 0 to 40. |
font | A font stack already available on the visitor’s device, for example Georgia, serif. |
googleFont | The name of a Google Font to load, for example Poppins. |
The space around the experience cards is transparent, so the cards sit on your page’s own background.
Follow what your customers do with the widget in your own analytics. Events carry counts and experience identifiers, never the text of the conversation.
var widget = Huavela.mount("#oahu-activities", {
partner: "your-partner-id",
onEvent: function (name, detail) {
// name: "ready" | "message" | "results" | "experience_open"
// | "experience_close" | "booking_click"
analytics.track("oahu_activities_" + name, detail);
},
});
// The same events also reach the container as DOM events.
document.querySelector("#oahu-activities")
.addEventListener("huavela:booking_click", function (event) {
console.log(event.detail.slug);
});
// In a single-page app, remove the widget when its view goes away.
widget.destroy();| Event | When | Detail |
|---|---|---|
ready | The widget is on screen. | |
message | Your customer sent a message. | |
results | The activity finder showed experience cards. | count |
experience_open | Your customer opened an experience. | slug |
experience_close | They closed it and returned to the conversation. | slug |
booking_click | They followed the booking link of an experience. | slug |
Help customers turn their Oʻahu plans into days they will remember. The live preview above shows how the activity finder fits into your page.
Add activity recommendations to a hotel or car rental confirmation. Pass the dates and group size so customers can start exploring right away.
Put the activity finder on a trip dashboard or pre-arrival page. Customers can ask for family outings, ocean adventures, food tours and more.
Let visitors describe what they love. They get relevant activities, can explore the details, and follow a link to book.
No. The script is a few kilobytes and has no dependencies. The widget runs in its own frame, so neither side’s styles or scripts reach the other.
Allow https://huavela.com in both script-src and frame-src.
No. A conversation lives only while the page is open.
Each experience shows its details, dates and prices in the panel over your page. The booking itself is completed with the experience’s booking partner, in a new tab. Huavela may earn a commission on affiliate bookings at no additional cost to your customer.
Yes. Trip dashboards, pre-arrival pages and destination guides all work. One page can hold more than one widget.
Email aloha@huavela.com with your site’s address. We will send your partner ID and help you get set up.