One number is true. Make everything read it
Under2 connects booking systems to websites, channel managers and supplier feeds. Our own inbound DMC runs on Bokun, so the edge cases described here are ones we have had to answer for with a real guest arriving on a real Sunday.
The three sources of truth
Ask an operator where availability lives and the answer depends on who you ask. Reservations says the spreadsheet. The website says whatever was typed into it last month. The channel manager says whatever the marketplace last accepted. Three people update three things at three different times, and nothing reconciles them until a guest is affected.
A booking integration is not a data pipe. It is the decision about which system is allowed to be right, followed by the work of making every other system read from that one and stop holding opinions of its own.
| The thing | Who thinks they own it | What happens when two systems both do |
|---|---|---|
| Availability | Reservations, and the marketplace extranet | The same seat is sold twice on the same Saturday, in two languages |
| Price | Sales, and whoever set up the website | A guest books at last season's rate and expects to be honoured |
| Product content | Marketing, and the marketplace listing | Inclusions differ by channel and the complaint arrives at the guide |
Not which interface. Which system is allowed to be wrong, and who is allowed to change a number by hand once the integration is running.
What we connect, and where the knowledge comes from
Alotour, the inbound DMC inside the Under2 group, sells Vietnam and runs on Bokun. That is where our depth in it comes from: not a certificate, but years of having to fix something on a Friday because a guest was landing on Sunday.
Bokun
Products, availability, rates and bookings connected to a site we build or to one you already have. This includes the parts that read cleanly in documentation and behave differently in practice: option and rate mapping, cut-off times, holds, and the way a cancellation actually propagates.
Channel managers
Where an operator sells through marketplaces as well as directly, the channel manager sits between inventory and those marketplaces. Our job is usually to make the direct channel a first-class citizen rather than the one that gets updated last, because the direct channel is the one with no commission on it.
Supplier feeds
A DMC buys from hotels, boats and transport suppliers whose data arrives as a feed, a spreadsheet or an email attachment. Feed quality varies more than any other input in this work, and it, not the file format, sets the price of the integration.
An embedded widget is not an integration
Most booking platforms hand you a snippet to paste into a page. It works, it installs in an afternoon, and for some businesses it is the right answer. It is worth being clear about what you are getting.
| Embedded widget | Real integration | |
|---|---|---|
| Time to install | An afternoon | Weeks |
| Look and feel | Theirs, sitting inside your page | Yours |
| Page weight | A third-party script on every page it appears on | Your pages stay self-contained |
| Search | The products inside it are not your pages and do not rank | Product pages are yours, with your structured data |
| Booking data | Lives in their system | Lives in yours, or in both by deliberate design |
| When it breaks | You wait for their fix | You fix it, or it fails in a way you chose |
Our advice is not automatically the integration. If you sell fifteen products and the widget converts, keep it and spend the money somewhere that moves the number. The widget stops being enough the day you want product pages that rank, a checkout in your own brand, or booking data in a system that is not the vendor's.
The four failures worth designing for
Integrations rarely fail by throwing an error. They fail quietly, in one of four ways, and each needs a decision made in advance rather than at the time.
The sync is late
Every integration has a lag, whether it is thirty seconds or fifteen minutes. The real question is what the website shows during that window. Presenting nine-minute-old availability as live is a promise you cannot keep. Showing the departure as on request and confirming within the hour is a promise you can. We would rather build the second and have you sell slightly less than build the first and have you apologise.
A stale price is pushed back
The nastiest case in this work is a system that has been out of contact catching up and overwriting a correct value with an old one. New season rates go live, a channel manager reconnects, and last year's price lands on top of them. The defence is a declared direction of travel: one system writes, the others read, and a write arriving from the wrong direction is rejected and logged rather than accepted politely.
A hold expires between two systems
A cabin is held for fifteen minutes while a guest looks for a card. The agent cancels at minute fourteen. The channel manager was never told about the hold, then is told about the release, and the seat quietly vanishes from both places. Every hold needs an owner, an expiry and a reconciliation that runs afterwards and makes noise about anything it cannot account for.
The other end changes without telling you
Vendors rename fields, retire endpoints and tighten rate limits. An integration with no monitoring finds out from a customer. We log every exchange, alert on failure rates rather than on single errors, and keep the last known good payload so the difference is visible in minutes instead of days.
The acceptance gate before anything goes live
Under2's rule on our own platform migration is that the new system passes an acceptance gate before a single live site moves onto it, never in parallel. Client integrations run the same way. This is what the gate checks.
- A booking made on every channel appears in the system of record with the right price, option and passenger details
- A cancellation on each channel removes capacity everywhere inside the stated sync window
- A deliberately stale write is rejected and logged, and the correct value survives
- A hold is allowed to expire under test and the released capacity reappears in both systems
- Every failure path has a visible state and a named person whose job is to look at it
- A rollback exists: the old path can be turned back on within a stated time, following a written procedure
Nothing goes live because it worked in a demonstration. It goes live because a list like this has been signed. The whole sequence is set out on how we work.
When integration is the wrong answer
Sometimes the right recommendation is to stop connecting things and change the platform instead.
- If you are paying every month to keep three systems agreeing and none of them is the one you would choose today, that budget is rent on an old decision. Moving to a single platform such as izBooking can be cheaper inside the first year.
- If the source system has no usable interface and the plan involves scraping screens or importing a spreadsheet every night, we will say so. That kind of integration works right up until it does not, and it fails silently.
- If nobody internally is allowed to decide which system is the master, the integration will encode the argument instead of settling it.
- If it has to be live in under two weeks and money moves through it, no — see payment gateway for why approvals rather than code set that date.
Tell us what disagrees
Which systems you run, which one you trust, and the last time they contradicted each other in front of a guest. You get a written approach and a range.
What travel operators ask us most
Do we have to leave Bokun to work with you?
No, and we would usually advise against it. If Bokun holds your products and your team knows it, the useful work is making your website and your channels read from it properly.
We only raise a platform move when the cost of keeping several systems in agreement is higher than the cost of consolidating.
How fast does a sync need to be?
That depends on how close to capacity you sell. A boat with twelve cabins in high season needs a much shorter window than a walking tour with sixty places.
We set the window with you, then design what the site shows during it, rather than promising a number and hoping the network cooperates.
Can you connect a system you have not worked with before?
Yes. We start with a short paid assessment of its interface and its documented limits, which usually takes a few days and tells you whether the integration you want is possible at all.
If it is not, you have paid for a small piece of work instead of half a project.
Our supplier only sends spreadsheets. Is that workable?
It can be, as a scheduled import with validation, a preview of what will change, and a rejected-rows report a human reads.
What we will not build is a silent import that overwrites live prices. If a supplier file arrives malformed, the correct outcome is that nothing changes and somebody is told.
Read next
Tell us what you are trying to run
What you sell, what you use today, and what is breaking. You get a written answer with an approach and a price range - not a brochure.