
Stay updated
Stay informed and see how CaptainBook evolves to deliver smarter
v28.7.1
Captainbook v28.7.1
Improved
Open a customer's record straight from the bookings feed
The customer name in the bookings feed is now a link to that customer's
record, opening in a new tab so you keep your filters and your place in
the feed. Previously you had to search for them in Customers.
Fixed
Emails you ask CaptainBook AI to send now actually reach the customer
Asking CaptainBook AI to resend a booking confirmation, to tell a customer
about a comp or a refund, or to send a gift card recorded the request but
never sent the email. Those messages now go out, and they are the same
emails the booking and gift card pages send. Voiding a gift card can now
also let the holder know it has been cancelled.
The assistant now tells you when a proposed change has expired
If you left a proposed change waiting too long, clicking Approve used to do
nothing at all -- no message, no error. The assistant now says the proposal is
too old to apply and offers to re-check, and a proposal that lapses is marked
as such in the conversation instead of quietly disappearing. Approve and Cancel
also now always act on the card you are looking at, even if you have the
assistant open in more than one tab.
Fixed gift card emails and PDFs not reaching the recipient
Gift cards bought from 16 October onwards did not reach the person they were
bought for: the PDF was never produced and the "you've received a gift card"
email never went out, even though the buyer's receipt confirmed it had. Both now
send, and affected cards can be re-issued.
Gift certificates are no longer created when the card payment did not go through
Selling a gift certificate from the back office and paying by card could
create the certificate even though no card was ever charged, and the
certificate was fully redeemable. The screen now refuses the sale and tells you
to take cash or PayPal, or to send the customer a payment link instead. Gift
certificate PDFs are also attached to the recipient's email again.
Gift certificate links can no longer be charged at the wrong amount
A gift certificate is now always priced at the value recorded on the
certificate, or at one of the amounts you offer for sale, and that price is
confirmed against your records at the moment of payment. A payment link can
only be paid once. The gift payment link sent from the back office can now
complete a payment at all — it previously failed with a generic payment error.
The gift checkout page also no longer errors if the payment step loads before
prices have been worked out, or if the certificate has no "from" name.
Turning an AI assistant off for one widget now sticks
The online/offline badge and switch under a widget's product list now reflect
that widget alone. If your assistant was connected to more than one widget,
switching it off for one of them appeared to work but reverted to online on
reload, and editing the assistant switched it back on everywhere it had been
turned off.
Clear a shared capacity that was silently limiting bookings
If an experience had a capacity shared across its schedules while the shared-capacity
feature was off, the field was hidden — so bookings could be refused across two
schedules that overlap in time with nothing on the page explaining why, and no way to
undo it. The field now appears whenever a shared capacity is set, says what it does,
and can be cleared. It can also no longer be set through the API on an account that
does not have the feature.
Gift-certificate checkout no longer fails with an unexplained error
A gift-certificate purchase could fail with a generic error page instead of
either taking the payment or telling the buyer which field was wrong. The
checkout now always validates the gift details and reports them properly.
v28.7.0
Captainbook v28.7.0
New
Pause a workflow until someone approves what it is about to send
Workflows can now stop and wait for a person. Add a "Wait for approval" step
and the run holds until one of the people you choose reads the message it is
about to send, edits it if you let them, and approves or rejects it. Rejecting
stops the run without reporting a failure, and you decide what happens if
nobody answers in time. Approvals waiting on you appear under Approvals in the
Workflows page, by email and as a push notification.
Limit how many trips a guide or boat can run per day
You can now set a maximum number of departures per day on a resource — "this skipper
runs at most two trips a day" — either for the resource everywhere or just for one
schedule. Once a resource hits its limit for a day, its remaining slots that day stop
being bookable, including on unrelated schedules. Extra guests on a departure it is
already running are still accepted, and a cancellation frees the slot back up.
Choose per widget whether experience cards always show a Book now button
Each widget now has its own "Book button on experience cards" option in its settings. Switch it on for your main site and leave it off for a minimal partner embed. When it is off, the button still appears once your customer has picked a date.
Show the customer's chosen pickup location as the meeting point in booking emails and tickets
If you ask customers where they want to be picked up with a "Location list" question, you can now show their answer as the meeting point in the confirmation and reminder emails and on the ticket, instead of the experience's start location. Switch it on in Company setup.
Improved
Cancelling for the off-season now says what you lose while you are closed
If you cancel because your season has ended, the confirmation screen now tells you
that a cancelled account cannot take next season's bookings, cannot sell gift
certificates, and is not published for the day you reopen. Your data is still kept
for at least 12 months.
Fixed
Booking pages keep working when a link carries a damaged or unsupported currency
A booking or gift-certificate link whose currency had been damaged in transit — or
that asked for a currency the account cannot be quoted in — used to show an error
page instead of the product. Those pages now simply price in the operator's own
currency and carry on.
The booking checkout always charges the correct price, including with discount codes and gift certificates
The checkout now works out the price itself before confirming a booking, so a booking can no longer be completed for less than it costs. Expired or used-up codes are removed with a clear message asking the customer to check the new price, and the card payment always matches the price shown, including deposits and part payments.
Bookings can no longer be moved onto a departure that has already left
Moving a booking to a date and time that has already passed is now refused, on
the app and for connected channels, with a message naming the departure so you
can see which one was picked by mistake. Previously the move was accepted and
the customer was notified about a trip that was already over. Back-office users
can still correct a past booking on purpose from the calendar.
The assistant no longer says a change is waiting for your approval when nothing is
CaptainBook AI could tell you a change was "waiting for your approval" when no
approval card had been created, leaving you looking for a button that was never
there. It now knows what is actually waiting before it answers, and the panel
adds a correction if it ever gets this wrong again. Product search in the API is
also now case- and accent-insensitive, so "excursion" finds "Excursión".
Connecting CaptainBook to ChatGPT no longer clears your email when the account lookup fails
When connecting your CaptainBook account to ChatGPT, if the account address or
email did not match, the form came back with your company name but an empty
email box. Your browser could then refill it with a different address, so the
same screen would fail once and work the next time for no visible reason. Both
fields are now handed back exactly as you typed them.
The assistant now tells you when a proposed change has expired
If you left a proposed change waiting too long, clicking Approve used to do
nothing at all -- no message, no error. The assistant now says the proposal is
too old to apply and offers to re-check, and a proposal that lapses is marked
as such in the conversation instead of quietly disappearing. Approve and Cancel
also now always act on the card you are looking at, even if you have the
assistant open in more than one tab.
Customer exports now arrive in your notifications instead of timing out
Exporting a large customer list used to fail with a timeout and no file. The
export now runs in the background: you get a confirmation straight away and the
spreadsheet arrives as a download link in your notification bell, the same way
booking exports already work. The file itself is fixed too — the Origin column
no longer shifts every other column out of place, the Amount column matches the
total shown on screen and uses your account's currency, and Secondary e-mail
and Creation date now fill in when you enable them.
Emails you ask CaptainBook AI to send now actually reach the customer
Asking CaptainBook AI to resend a booking confirmation, to tell a customer
about a comp or a refund, or to send a gift card recorded the request but
never sent the email. Those messages now go out, and they are the same
emails the booking and gift card pages send. Voiding a gift card can now
also let the holder know it has been cancelled.
Limited discount codes count their uses correctly when customers pay by card
A discount code with a limited number of uses could show the wrong number of uses left when two customers paid by card at the same moment, or when one booking was paid in more than one payment. The count is now taken once per booking and stays accurate.
Fix the error that blocked the last step of signup
New accounts could not be created: the final step of signup failed for
everyone from 12 to 16 October. Signing up now completes normally. The
"I don't have a website" checkbox also clears the website error instead
of leaving it on screen.
Departure-cap availability now updates itself after a plan change
Turning the departure cap on or off for an account used to leave the calendar
showing the old answer until support stepped in. Slots the cap had closed stayed
closed after a downgrade, and after an upgrade the booking page could offer a
departure that checkout then refused. The calendar is now re-derived
automatically when the plan changes.
v28.6.1
Captainbook v28.6.1
Fixed
Exporting customers works again
The Export entry in the Customers quick-actions menu greyed itself out when
clicked and never produced a file. It now downloads the spreadsheet, with the
columns, search and filters you have applied to the list.
v28.6.0
Captainbook v28.6.0
Fixed
Subscription invoices show the correct euro amount when you pay in another currency
If your CaptainBook plan is billed in a currency other than euros, the official invoice now shows the amount converted to euros at the European Central Bank rate, together with the original amount you were charged. Before, it showed the same number as euros.
Correct the spelling of "expensive" in the tiered-pricing starting-price setting
The tiered-pricing option that shows your highest tier as the "starting
from" price said "expansive" instead of "expensive" in its label and
description. The wording is now correct, the setting is translated in
German, Greek, Spanish, French and Italian instead of falling back to
English, and clicking its label text now flips the switch.
Upgrade prompts for the AI tools now name the right plan
When an AI tool was not included in your plan, the message told you to upgrade
to Extended or Ultra even though Starter already includes the Statistics and
Inventory tools. It now names the cheapest plan that actually unlocks the tool
you asked for, so you are not sold a more expensive plan than you need.
Exporting customers works again
The Export entry in the Customers quick-actions menu did nothing when clicked.
It now downloads the spreadsheet again, with the columns, search and filters you
have applied to the list. The same fault was quietly breaking the Segments
quick-actions menu (duplicate, both exports, restore, archive) and the Save
button in the workflow builder's header — all working again.
Build capacity rules per resource and per day in workflows
Find Bookings can now be filtered by resource and by the slot's own start
and end time, so a workflow can ask "how many bookings does this guide have
on this day". Create Resource Block now reads your dates in your account's
timezone instead of UTC, so a block authored for a day closes that day
rather than straddling two of them, and it now fails visibly — instead of
reporting success — when the resource is one that cannot hold a calendar
block, such as equipment.
v28.5.0
Captainbook v28.5.0
New
Calendar widgets can start compact and now size themselves to their content
Calendar widgets have a new "Compact mode" setting that hides the session
list until a visitor picks a date, so the widget fits a narrow sidebar
without scrolling. Every calendar widget also now shrinks to fit its own
content instead of staying at a fixed 700px, and a page with more than one
widget no longer sizes them all to the tallest.
Require an adult (or another guest type) before children can be booked
On an experience's pricing page you can now say that a guest type "must travel with" another, for example Children need at least 1 Adult. Customers are guided in the booking widget and cannot book a party that breaks the rule, and the same rule applies to bookings from GetYourGuide, Viator and resellers. Your team can still override it from the back office when needed.
Delete specific availabilities in bulk, not just a whole date range (AI)
Bulk availability deletion can now target the exact departures you pick,
instead of only everything inside a date range. That makes a cleanup
possible after a schedule is reloaded at new times: the old departures can
go while the new ones on the same days stay.
Sell in Swiss francs
Swiss francs are now available across CaptainBook. Visitors can be quoted in CHF
on any account, and operators can price their business in CHF. CaptainBook still
invoices CHF accounts in euros, so nothing changes about your subscription.
Improved
Warn before a repeating schedule doubles up on days that already have a departure
When you create repeating availabilities, the preview now tells you if any
of those days already have a departure at a different time, and shows you
which times they are. Reloading a season at corrected times used to look
identical to loading an empty one, so a day could end up selling twice
without anything saying so.
Confirm a bulk availability change by typing its departure count
Approving a repeating schedule or a bulk availability change now asks you to
type the number of departures it affects, the way deleting a range already
did. Both write hundreds of departures at once and neither can be undone, so
the number is now something you read before approving rather than after.
Fixed
Calendar events from apps like CalenGoo now show up again
If a team member syncs their Google Calendar through a third-party app
such as CalenGoo, their events stopped appearing on the resource
calendars and in the mobile app — the list view showed them, the
calendar did not. They are visible again everywhere.
See what add-ons a customer bought, and get the right booking total (AI)
Booking totals now include the add-ons a customer bought. Before, a booking's
total showed only the tour price, so a booking with add-ons looked cheaper than
what the customer actually paid. Opening a booking also now lists each add-on
with the quantity and the price that customer was charged, so you can see at a
glance what the total is made of. CaptainBook AI and the CLI read the same
figures, so asking the assistant what a trip cost now matches the booking.
Resource imports work when optional columns are left unmapped
Importing a resource list no longer fails on every row when you map only some of the columns, such as name, type, username and email. Re-importing a list also no longer charges again for resources you already have.
Policy rule page displays correctly again
The page for creating or editing a channel policy rule was cut off and its form was squeezed into a narrow column. It now uses the full page again.
v28.4.0
Captainbook v28.4.0
Fixed
Groupon commissions on your CaptainBook invoice are billed once, in the right amount
Each Groupon voucher your customers redeem now adds exactly one commission line to your CaptainBook invoice, labelled with the booking and the voucher code, in the right currency. Retried checkouts no longer add a second line, and accounts in currencies other than euro are no longer charged the wrong amount.
A Groupon voucher can no longer be used for two free bookings
If two customers applied the same Groupon code at the same time, both could get the booking for free. Now the second customer is told the code has already been used and sees their real price, so a voucher pays for one booking only.
GetYourGuide and Viator bookings are counted in your reports again
Since early August, bookings from GetYourGuide and Viator were missing from the OTA bookings figure and their revenue showed as zero on the Reporting page and in the weekly stats email. New bookings are counted correctly again, and your past figures are being rebuilt from your bookings.
Booking emails read cleanly for travellers who receive them through GetYourGuide and Viator
Travellers who get your booking emails relayed by GetYourGuide or Viator now see clean, readable text: no stray code, no table symbols, and every link keeps its address. Access codes, Wi-Fi passwords and your own instructions arrive exactly as you typed them.
Adding or changing an affiliate's products no longer fails for older affiliate accounts
Affiliates created before September 2026 could not receive product changes because their connection key was stored in the wrong place. The key is now repaired automatically the next time their products are synced.
v28.3.0
Captainbook v28.3.0
New
Hand every customer their self-guided tour access code automatically
Install the Self-Guided Tours app, upload your access codes as a CSV, and
CaptainBook gives each confirmed booking a code from your pool and puts it in
the customer's confirmation email and on their ticket. Codes follow a booking
through a reschedule, are retired when one is cancelled, and a screen shows you
what is left, which bookings are still waiting, and why. You are emailed when
the pool runs dry.
CaptainBook AI can answer totals like revenue per channel or bookings in a month
Ask CaptainBook AI "how much did we sell through GetYourGuide this year" or
"how many bookings did we get last month" and it answers in one step from
your reports, instead of paging through bookings. Totals need the View
reports permission (Admin and Manager by default).
Filter any statistics report by one sales channel
The statistics API's channel filter now accepts any channel id the channels
breakdown reports — an OTA such as GetYourGuide or Viator, one reseller, or a
whole group like "your own website" or "partners". Before, only a reseller id
worked, so the one question the breakdown invites — how a single OTA's revenue,
best products or customers compare — could not be asked. CaptainBook AI can
answer it too.
Scope any report to a single guide, and see which locations sell best
Reports can now be narrowed to one guide, captain, boat or piece of equipment. Read the
id off the Resources report, then use it on products, revenue, customers, channels,
extras, discounts and the new Locations report to see exactly what that person runs,
sells and earns.
Locations is a new report ranking your sites, lakes or meeting points by bookings,
revenue or guests — and it tells you how many bookings it could not place because a
product has no location on file.
Every one of these can now be dated by when the trip DEPARTS rather than by when it was sold, which is usually what "his October" or "last season" means.
Filter channel and browsing reports by day of the week
The channel breakdown and the browsing funnel now accept the day_of_week
filter, so "how did we do on weekends by channel" and "which weekdays do
visitors browse" are answerable without exporting anything. On the channel
report the weekday is the one the trip departs, matching the bookings
report; on browsing it is the day the visit happened, in your own timezone.
Get your official invoices by email and see them all in your billing area
When you pay Captainbook, we now issue your official (MyData/Oxygen) invoice
automatically and email your billing contacts a link to it. Before subscribing you
can add your VAT / AFM number (required for EU businesses), and your billing page now
lists your official invoices.
Export workflow results straight into a Google Sheet
Connect your Google account and add an "Export to Google Sheet" step to any workflow. Each run writes the columns you choose to your sheet — append new rows, replace the tab, or create a fresh sheet each time — so booking and customer lists land in Google Sheets automatically.
Ask CaptainBook AI when a guide or asset is busy
You can now ask the assistant when a guide or asset is busy and get one
answer covering bookings, their synced Google Calendar, and any blocks you
have placed. It reports busy time only and tells you when it cannot see a
guide's calendar, so an empty answer is never mistaken for "they are free".
Improved
The mobile calendar loads in about a second however far ahead you look
Opening a wide date range in the mobile app's calendar used to get slower the
further ahead you looked, up to half a minute for a six-month view. It now
takes about the same second whether you ask for a week or six months.
Set up several daily departure times in one go, and close a day's departures except the ones you want to keep
CaptainBook AI can now set up a whole season in one confirmation instead of
one per departure time: ask for "11:30, 15:00 and 18:30 every day from 1 to
18 April" and it proposes all three at once, telling you how many departures
each time would add and which were already on the calendar. Closing a range
of departures can now spare the ones you name — "close everything on Friday
except the 9am" — and the preview tells you how many of the departures you
are about to close already have bookings, so you can decide before you
approve.
Fixed
Remove stray text from the booking details panel
The booking details panel was showing a paragraph of developer notes above the
customer's avatar on every booking. That text is gone and the panel reads as it
should.
Fix customer pages failing to open for some names
A customer whose saved name ended in a space made their record page fail to
load. Those pages open normally again, and avatars elsewhere no longer break on
unusual names. Avatars for people with a single-word name now show one letter
instead of the whole name squeezed into the circle.
CaptainBook AI finds a specific customer's bookings instead of listing everyone's
When you ask CaptainBook AI about one customer's bookings, it now searches by that customer instead of returning every booking in your account. Searches it cannot run are refused with a clear reason, so it no longer presents an unfiltered list as an answer.
Experiences with under a year of history no longer get a gap when you extend the season
Extending the season on a newer experience could leave a gap of a month
or more between your last departure and the start of the new period,
because we read a short trading history as a seasonal closure. We now
recognise an experience that has simply never closed, fill the stretch
it had no equivalent period to copy from, and tell you on the preview
exactly which departures were added that way and why. Any gap we cannot
explain is now shown on the preview instead of being published silently.
Recurring departures now match the preview exactly, and never double up
When you set up recurring departures, the number shown before you approve is now
exactly the number created — previously some days could be silently skipped. Running
the same rule again no longer creates duplicate departures; it tells you how many
already exist instead.
The assistant's progress line now matches what it is doing
While CaptainBook AI works on a question it shows what it is doing
("Checking departures...", "Working out the numbers..."). Those lines
used to appear only once each step had already finished, so during the
slowest part of a turn the panel showed the previous step. They now
appear as each step starts.
CaptainBook AI no longer asks you to approve changes that would do nothing
When a requested change would not modify anything, for example a date range that matches no departures, CaptainBook AI now explains why instead of showing an approval card. If a change becomes pointless before you approve it, the card is withdrawn with a short note. Questions that need too much looking up now get a clear reply asking for a narrower request instead of an empty message.
Pasting an image into a product description no longer breaks the page
Pasting a screenshot directly into a product's description, instructions or
requirements used to save the whole image inside the text, which could make the
product page impossible to open afterwards. Pasted images are now removed as you
paste, with a message explaining why, and the fields have a size limit so the
page always loads.
Reports now tell you when a filter does not apply, instead of ignoring it
Some report types cannot be filtered by every option — a weekday filter means
nothing to a gift-certificate total, and occupancy counts departure slots rather
than bookings, so it has no sales channel to filter by. Those combinations used
to be accepted and quietly ignored, which produced a real number answering a
different question. They are now refused with a message naming the reports that
do support the filter.
Fix recurring departures losing a day around a daylight-saving change
Setting up repeating departures across a daylight-saving change could quietly
drop the last day of the range and shift the following departures an hour
late. It now creates exactly the days and times you asked for, wherever your
account and your product are based. The preview also shows departure times in
the product's own timezone, matching the rest of the calendar.
Report totals now respect who may see prices
Report access and price access are two different permissions, and reports were
only checking the first. A role allowed to see reports but not prices now gets
the full report with the amounts left blank rather than filled in, and a role
allowed to see prices but not those from sales channels gets totals that leave
channel sales out — with the report saying how many bookings are missing from
the figures, so a partial total is never mistaken for a complete one.
Adding a departure over a date range now points you at recurring departures instead of making one long slot
Asking the assistant to add a departure on every day of a date range could
produce a single departure spanning the whole range, which went on sale on
your channels as one very long trip. It now creates the recurring departures
you asked for, and when a departure really does run for several days the
confirmation card says so before you approve it.
Reports now use your own calendar day, refuse filters they cannot apply, and respect who may see prices
Three fixes to reporting. Totals are now dated by your own business day rather
than UTC, so sales made in the first hours of the morning no longer count
against the day before — or, on 1 January, the year before. Asking for a filter
a particular report cannot apply now returns a clear error instead of quietly
ignoring it and reporting that it had been applied. And report access and price
access are now two separate permissions: a role allowed to see reports but not
prices gets the full report with the amounts left blank, and a role that may not
see sales-channel prices gets totals that leave those out — with the report
saying how many bookings are missing, so a partial total is never mistaken for a
complete one.
The experience picker's Apply button stays on screen
The "Select experiences" dropdown could drift away from its button when you
scrolled, and its Apply button could end up hidden behind the bottom bar with
no way to reach it — so a selection could not be confirmed. It now stays
anchored to its button and always fits the space available.
Booking pages keep working when a link carries a damaged or unsupported currency
A booking or gift-certificate link whose currency had been damaged in transit — or
that asked for a currency the account cannot be quoted in — used to show an error
page instead of the product. Those pages now simply price in the operator's own
currency and carry on.
Zapier and Make automations receive booking amounts again
Booking totals, payments and prices stopped reaching Zapier and Make.com
automations, arriving empty instead. They now come through correctly on both
the polling and webhook triggers. If you built a Zap while this was broken,
re-test the trigger so its field mapping picks the amounts back up.
Bookings exports no longer fail on accounts with a large booking history
Exporting booking main records could fail with a server error on accounts
with a lot of bookings, however narrow the filters were. The export now
sizes itself by the bookings you actually asked for, so it starts reliably
and queues far less work.
Captainbook AI now explains why an availability rule was rejected instead of reporting an error
When Captainbook AI or an API client sent a recurring-availability rule with a
field named wrongly, the reply said only that something had gone wrong and not
to try again — so there was nothing to correct. It now says exactly which
fields are missing, so the assistant can fix the request and carry on.
CaptainBook AI now answers questions about trips that ran, not just bookings that were sold
Ask about a guide's January and you now get the trips that actually departed that
month, not the bookings that happened to be sold in it. Before, a trip booked in
December and run in January was left out with no warning, so a captain with three
January charters could come back as having none. Every answer now also states which
date it counted by, so the figures can be checked rather than taken on trust.
Set the number of seats when you create repeating departures
Creating departures from a recurring schedule now takes a capacity, so every
departure it generates is put on sale with the seats you asked for. Previously
the capacity was silently ignored and each departure inherited the schedule's
own number. Leave it out and nothing changes - each departure still inherits.
Customers can pay a second held booking right after paying the first
After paying one booking, opening another unpaid booking from the cart now shows its payment form instead of a "We're confirming your payment" screen. Pressing Back after paying still returns to the confirmation page, now in the right widget and currency.
Scheduling a season no longer accepts a capacity your guides already decide
When a product option gets its capacity from the guides or equipment assigned
to it, a capacity sent with a recurring-availability rule was saved and then
ignored — the preview confirmed the number you asked for while the departures
went on sale at whatever those resources add up to. The API now refuses that
request and tells you the real number and where to change it, and every
preview says which of the three places the capacity came from.
Reports now show how many guests actually travelled, not just how many were ever booked
Guest totals in reporting and in CaptainBook AI counted cancelled bookings and
abandoned checkouts as passengers, so "how many people did we take out in
January" could come back at more than double the real number. Every guest
report now carries a confirmed figure alongside the booked one, and the
assistant answers attendance from it.
Fix guest counts on GetYourGuide group bookings showing as 1 person
Bookings taken through GetYourGuide for a whole group were showing a party of one
instead of the real number of guests — on the manifest, on check-in, and in the
booking's guest list. The price was always correct; only the headcount was wrong.
Existing bookings are corrected too.
v28.2.0
Captainbook v28.2.0
New
Hide sales-channel prices from guides while keeping the balance they collect
You can now stop guides seeing what a customer paid an OTA, without hiding
anything else about the booking. Everyone still sees the party, the schedule and
the balance left to collect on the day; only the channel's price is withheld,
and where it is, the booking says why instead of showing a blank.
Nothing changes until you ask for it: everyone keeps full visibility by default.
To hide channel prices from guides, un-tick "See the price of bookings from
sales channels" for the Guide role under Settings > Roles.
Improved
Tickets now show the traveller's country
The ticket PDF sent with each booking confirmation now shows the traveller's country under the tour language, so your crew can see at a glance where guests are from when they check them in.
Clicking a customer on a booking opens their record instead of the edit form
Clicking a customer's avatar on a booking now opens their full record — bookings,
documents, timeline — instead of dropping you into the edit form. The record also
now respects roles: guides limited to their own trips see only those, and prices,
signature details and gift-certificate codes follow the same permissions they do
everywhere else in CaptainBook.
Fixed
Booking confirmation emails no longer fail to send after a pricing tier is deleted
If you deleted a pricing tier from a product, resending a confirmation for an
existing booking on it could silently fail and the customer received no email.
Those emails now send correctly, and the price line reads from the right tier.
Google Analytics now reports add-to-cart and checkout consistently across every booking widget
Add-to-cart events were being suppressed after the first attempt at a given
departure, and were missing entirely from the monthly calendar and marketplace
widgets, so Google Analytics could show more checkout starts than add-to-carts.
Gift-certificate checkout starts and Google Tag Manager custom-event triggers
were also missing events on some setups. Your funnel now counts one add-to-cart
and one checkout start per booking attempt, wherever the booking started.
Stop offering waiver actions your plan cannot complete
The Documents & digital waivers screen offered "Create a PDF template" next to an
"Upgrade to add more waivers" prompt. Following it led to a PDF upload that could
never be attached to an experience. Every create action on that screen now matches
what your plan allows, and offers the upgrade in its place when it does not.
Viator booking changes can no longer add more guests than the assigned guide or asset can take
When a customer changed a Viator booking to add people, the check could allow
more guests than the guide or asset on that booking can actually carry, quietly
overbooking them. Amendments are now capped at the real capacity of the guide the
booking is assigned to.
Sign-in links now ask for your two-factor code
A one-tap sign-in link used to skip the two-factor step for accounts that had it
switched on. It now asks for your code like a normal sign-in does. New accounts also
need a password of at least 8 characters, matching what the password-reset screen has
always required.
Segments with an incomplete rule no longer match every customer
A saved segment that still had a blank or unreadable rule row was matching
everyone in the business unit instead of nobody. Any workflow or ad audience
built on that segment was acting on your whole customer list. Incomplete rules
are now refused when you save, and existing segments are corrected on release
without sending anyone a "joined" or "left" email for the correction.
The AI assistant and API now respect your team's availability permissions
Creating, editing or deleting departures through the CaptainBook AI assistant or the API now requires the same availability permissions as the web app. Team members whose role can't change the calendar can no longer do it through the assistant either.
Gift certificate links that point to an experience open that experience instead of an error page
Sharing a gift certificate link that also points to one of your experiences now takes your customer straight to that experience, keeping your widget, the guide the link belongs to and your campaign tracking. If that experience is not bookable, the customer stays on the gift certificate instead of landing somewhere else.
Embedded pages no longer error on a malformed link
A booking, calendar or gift-certificate page opened with a garbled or
hand-built web address used to fail to load entirely. It now ignores the
unusable part of the address and shows the page as normal.
v28.1.0
Captainbook v28.1.0
Improved
Check-in guest list now shows each guest's ticket type
The mobile check-in screen now labels every guest in the list with their
ticket type (Adult, Child, Senior...), so a guide reading a mixed party can
tell at a glance who is who. Previously the list showed only names and the
ticket types were a single summary line for the whole booking. Where the
ticket type can no longer be determined reliably, the label is left off
rather than guessed.
v28.0.0
Captainbook v28.0.0
New
CaptainBook AI remembers your conversations and how you work
CaptainBook AI now picks up where you left off instead of starting blank every
time you reload, and it keeps short facts about how you work — what you call
things, the capacity you usually set — so you stop repeating yourself. It also
notices patterns from what you approve and turn down, and tells you when it
does. Everything it remembers is listed on your profile page and in the reply
that used it, and you can delete any of it in one click.
Merge two customer records even when nothing matched automatically
You can now search for the other record yourself on a customer's Possible
duplicates tab and merge the two, instead of only being offered the pairs we
detect. That covers the common case where the same person booked twice with a
different email address and a different phone number, which nothing could
match on before.
Sync your customer segments to Google Ads and Facebook audiences
Segments can now be synced to Google Ads and Facebook as targeting or suppression
audiences, kept up to date automatically as customers join and leave. The booking
record also shows what each customer was actually sent and how far it got —
delivered, opened, or failed — so you can see at a glance whether a confirmation
reached them.
Know your customers, and ask CaptainBook AI to change your inventory for you
Signing in looks and behaves the same everywhere now, and carries your own
company's branding rather than ours. The panel beside the form shows what is new
in CaptainBook, in your language. You can ask for a sign-in link by email instead
of a password.
Every customer now has a record page with a live activity timeline: what they
browsed, what they booked, and which emails and texts they opened or clicked.
Smart segments turn that behaviour into audiences you can drive into workflows,
or sync straight to Google Ads and Facebook Ads — including suppression
audiences, so you stop paying to advertise to people who already booked.
Duplicate customer records can be merged field by field, with everything moved
onto the surviving record and 30 days to undo it. A Duplicate customers page
lists every likely match so you can clear a backlog in one sitting.
CaptainBook AI is a new assistant in the dashboard. Ask it in plain language —
"add slots next Tuesday", "which departures have no bookings?", "close today's
departures" — and it looks up your own products and departures and prepares the
change. Nothing is saved until you approve a card showing exactly what will
change, before and after.
CaptainBook AI now picks up where you left off instead of starting blank every
time, and remembers the short things you tell it — what you call your slots,
the capacity you usually run, that your season ends in November — so you stop
repeating yourself. It also notices what you keep approving. Everything it
remembers is listed on your profile, in plain sentences, and you can delete
any of it in one click or tell it "forget that" mid-conversation. Facts about
your business are shared with your team; facts about how you work are yours.
The timeline fills itself from your booking widget: what a visitor viewed,
searched, put in the cart and abandoned, whether or not you use Google
Analytics. Where a product asks customers to accept a cancellation policy,
the exact wording they agreed to is kept as evidence on the booking, with
the time, IP and browser — the record you need when a card is disputed.
A new Customer tracking screen puts you in control of all of it: turn
recording off entirely, or decide what happens for visitors whose consent
your website cannot determine.
You can also open any email, SMS or WhatsApp message on a customer's timeline
and read exactly what was delivered to them, alongside a Messages tab on the
customer and a "Messages sent" panel on each booking. Copies are kept for 90
days on Extended and 15 months on Ultra and Corporate, so a "what did you
actually tell me?" dispute is settled without digging through your inbox. Each
message also shows how far it got — accepted, delivered, opened or failed — so
you can see at a glance whether a confirmation actually reached someone.
The admin also gets a full redesign: a collapsible sidebar, a keyboard-driven command palette, and dark mode across every screen.
Connect ChatGPT to your Captainbook account
You can now connect ChatGPT (or any OAuth-capable AI assistant) to your
Captainbook account from Settings, without creating or pasting an API token.
You choose what the assistant may do — browse your inventory, make changes, or
handle customer service — and which business unit it can see, and you can
revoke it at any time. Existing API tokens keep working exactly as before.
Improved
A redesigned sign-in experience, with news from CaptainBook on it
Signing in now looks and behaves the same everywhere — login, password reset,
two-factor, email verification and setting your first password — and carries your
company's own branding rather than ours. The panel beside the form shows what is
new in CaptainBook, in your language. Setting a password after someone invites you
now actually takes you to your dashboard instead of leaving you on the form.
Blocking many schedules now shows as one calendar entry with the schedule count
When you block a date across several schedules, the resource calendar now shows a single "Blocked date(s)" entry with the number of schedules it covers, instead of one identical row per schedule. Hovering lists the schedules. In the block list you can remove the whole block in one click, or expand it and remove a single schedule.
Fixed
Sign-in links now ask for your two-factor code
A one-tap sign-in link used to skip the two-factor step for accounts that had it
switched on. It now asks for your code like a normal sign-in does. New accounts also
need a password of at least 8 characters, matching what the password-reset screen has
always required.
CaptainBook AI can now move a single departure and build a complete workflow
Ask the assistant to move one departure to a new time and it now moves that
one, instead of every session on the day. Ask it to build an automation and
it now hands you a workflow with its trigger and steps already in place,
ready to switch on, instead of an empty one you had to finish yourself.
On a customer's timeline you can now open the emails you sent them and read
exactly what they received, instead of only seeing that something was
delivered.
Policy acceptances now show the correct local time
The time a customer agreed to your cancellation policy was showing in the
right timezone but with the wrong clock time, up to several hours off. It
now reads correctly, and always names the timezone it is showing. The IP
address on that panel is now a link to the public registry, so you can see
which network and country it belongs to when you are answering a dispute.
Text message delivery now shows on the customer timeline
Sent, delivered and failed text messages appear on a customer's timeline again,
alongside their emails and WhatsApp messages. Delivery events had been getting
dropped before they were recorded, so the SMS you sent showed up nowhere.
Cancellation policies now show the same terms everywhere, and only while they are switched on
Your cancellation policy now says the same thing on the booking page, the
confirmation email, the ticket PDF and the channels you sell through. A policy
you have switched off no longer appears on any of them, and a policy you have
switched on is no longer replaced by a generic "you will be charged 100% if you
cancel" line. Policies imported from a spreadsheet are switched on automatically
so your customers can see and accept them.
Deposit payments now charge exactly the percentage you set
When a product had a deposit and a discount was running, checkout asked the
customer for more than the deposit percentage configured on the product — a 20%
deposit was billed at 23%. Deposits now charge exactly the percentage set, and
the total shown when paying a deposit matches the total shown when paying in
full.



