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.


© 2021-2026 CaptainBook.io - All rights reserved.
Legal Terms - Privacy policy

© 2021-2026 CaptainBook.io - All rights reserved.
Legal Terms - Privacy policy

© 2021-2026 CaptainBook.io - All rights reserved.
Legal Terms - Privacy policy