Turning Cruise Confirmations Into Booking Data Automatically

4 min read

A schematic in the brand palette: the information already exists. it just exists over there.

Part 2 of 3 in The Working Pipeline

A confirmation arrives. You open it, find the booking reference, the ship, the sail date, the stateroom, the fare and the final payment date, and you type all six into your tracker. It takes four minutes if the email is well laid out and seven if the detail is in an attachment.

Then you do it again for the next one, and again after every change to either.

The re-typing tax, counted honestly

Say five minutes per confirmation, and say two confirmations per booking once amendments are included. At a hundred and fifty bookings a year that is roughly twenty-five hours — most of a working week, spent moving information that already exists in a structured form from one place into another.

The hours are not the worst of it. Re-typing introduces errors at a predictable rate, and the errors it introduces are the expensive kind: a transposed sail date, a final payment date typed from the wrong line's schedule, a stateroom number off by one. Every one of those is silent. Nothing objects. You find out when a client asks a question and your answer does not match their document.

Why this is genuinely hard for software

It is reasonable to ask why, if the information is already structured at the cruise line, it arrives as prose.

Because the confirmation is written for the guest, not for a system. Every line formats differently, and the same line formats differently across brands and across booking channels. Some put the essentials in the email body. Many put the detail in an attached PDF and use the body for marketing. Field labels vary: sail date, departure date, embarkation. The booking reference might be a booking number, a reservation ID or a confirmation code.

There is no standard because there was never a reason for one. Each line built its own confirmation for its own guests, and it works perfectly well for that purpose.

So reading them reliably means handling many formats, most of the detail living in attachments, and language rather than fields. That is exactly the kind of problem that was impractical to automate until recently and is now tractable.

What can be read reliably, and what should not be trusted

The parts that extract dependably are the ones stated unambiguously: the booking reference, the ship, the sail date, the stateroom number and category, the guest names, the fare, and the payment schedule where the confirmation states it.

The parts that need care are the ones that require judgement. Which of two dates is the final payment when the document lists several. Whether a fare is per person or total. Whether an amendment supersedes an earlier confirmation or sits alongside it. Those are readable most of the time and wrong occasionally, and occasionally wrong is not good enough for a number that governs whether a booking survives.

Which is why the sensible design is not full automation. It is extraction followed by a human glance.

Parsed, then confirmed

Travel Agent Companion syncs the mailbox through Microsoft Graph and uses AI to parse reservations from email attachments — this is running in the product today, not planned. Extracted bookings arrive in a reservation queue rather than being written straight into the record.

The queue is the important part of that sentence. What you get is a proposed booking with the fields already filled in, which you confirm or correct in seconds rather than type in minutes. The work changes from transcription to review, and review is both faster and more accurate, because checking six pre-filled fields against a document is a different cognitive task from copying them.

It also keeps the failure mode benign. A parse that misreads a date produces a wrong value you can see and fix, sitting in a queue. Straight-through automation would produce a wrong value nobody looks at until it matters.

What changes once the record exists on arrival

The immediate saving is the hours, and they are real. The compounding effect is different: the booking record now exists from the moment the confirmation lands, rather than from whenever you next sat down to do admin.

That matters because everything else keys off the record existing. A final payment date can only appear in a fortnight view if the booking is in the system. A commission expectation can only be tracked if the fare was captured. A client's booking history is only complete if every sailing made it in, including the ones booked in a busy week when the tracker fell behind.

The gap between "booked" and "recorded" is where most tracking systems actually fail. Not because the design was wrong, but because the manual step was skipped during exactly the periods when there was most to track.

What to check before trusting any parsing

Two things, and both are quick.

Give it your hardest confirmations rather than your cleanest — the line whose PDF is a table, the amendment that changes one cabin, the group booking with eleven staterooms. Anything can read a tidy email.

Then check whether it tells you what it was unsure about. A system that reports confidence, or that leaves a field blank rather than guessing, is one you can work with. A system that always returns a full set of values is telling you nothing about which of them to check.

Travel Agent Companion is free during early access. If you are still re-typing confirmations, join the waitlist.