For developers
Integrating Let's Book.
With one script tag and a link, you take bookings right away. After that, you decide how far to go: your own pages, analytics, code, the API, the rules.
Put the booking form on your website
What it does
Add one script tag to your site's head. Then any link to the form URL opens the form in an overlay on your page. WordPress has a plugin. On Wix or Squarespace, you paste the tag into a custom code field.
When you need it
Always. This is the whole integration. Stop here and you take bookings.
<head>
<script src="https://cdn.letsbook.app/assets/lb-widgets.min.js" type="module" defer></script>
</head>
<body>
<a href="https://your-slug.letsbook.app/en-us/form">Book now</a>
<!-- that is the integration -->
</body>Set up a custom return URL
What it does
After the booking, the customer lands on your own thank-you page instead of our confirmation screen. You set its URL per language. The query string carries the booking: reference, boat, dock, total, coupon, partner.
When you need it
A thank-you page in your own design, with the route to the dock. A conversion in an analytics tool other than Google Analytics.
Skip it if Google Analytics is all you need. With a return URL, the form doesn't send the automatic purchase event to Google Analytics.
Let Google Analytics see the booking flow
What it does
Add one more script tag before the form script. It finds the GA4 or Tag Manager already on your page. It sends the flow as the standard ecommerce events, amounts included. A debug flag logs each event to the console.
When you need it
The funnel: where people leave the checkout. A Google Ads conversion with the real value of the booking. An agency that runs Tag Manager and wants the data there.
Let a partner sell through the form
What it does
A partner gets a URL with a code of their own, or embeds the form on their site. Every booking through it is tagged with the partner. The dashboard filters and exports per partner. A pricing condition gives them their own rate.
When you need it
A hotel concierge, a tourism site, or a reseller in another city with a different price. You settle the commission at the end of the month, with the numbers per partner.
Drive the form from your own code
What it does
The script puts a global on the window when it's ready. Open, hide and destroy the form from JavaScript, with the same options the URL takes. Listen for events as the customer moves through it.
When you need it
A fleet page with a button per boat. A location page that shows one dock. A single-page app. A member area where members log in first. An analytics or chat tool that follows the customer through the form.
window.addEventListener('lb-ready', () => {
for (const button of document.querySelectorAll('[data-boat]')) {
button.onclick = () => LetsBook.show({
boatModelId: button.dataset.boat,
dockId: HARBOR,
});
}
});
window.addEventListener('lb-complete', () => {
// booked. confetti is your call.
});Talk to the API, listen to webhooks
What it does
A REST API with an API key you make in the dashboard. It reads bookings, customers, coupons, availability, docks and boats, and it writes bookings, customers and coupons. Webhooks post signed events to your URL the moment they happen. One API key can reach several Let's Book accounts. Standard and Pro both include the API, at no extra charge. There's no separate test environment for the API.
When you need it
Bookings into a CRM or your accounting software. A Slack message on a big booking. A screen at the dock that follows the trips. A nightly sync of what changed. One integration for several companies.
Write the rules a customer books under
What it does
A booking condition is an expression per customer type. It sees the booking, how far ahead it is booked, and what the customer already has coming up. You add it to a customer type in the dashboard.
When you need it
A club member holds one weekend and one weekday booking at a time. A next-day booking is fine until 3 p.m. A company account books weekdays only.
/* one weekend and one weekday booking open at a time,
unless it is for tomorrow and booked before three */
(future_bookings.count_per_day.weekend <= 1
and future_bookings.count_per_day.weekday <= 1)
or (booked_ahead.day_count == 1
and is_before(booking.booked_at, '15:00'))Is it down? Check the status page first.
status.letsbook.app watches four things and shows their uptime per day, for the last day, week, month and quarter. When something's wrong, we post what we know on that page.
- APIapi.letsbook.app, the endpoints your integration calls
- Core applicationthe dashboard and the booking form
- Marketing websitethis site
- Support centerthe guides and the API reference
Stuck somewhere?
tech@lets-book.com reaches our developers. Tell us what you're building, and we'll happily tell you which step it needs.