How It Works — From Quote to Booking¶
Who this is for: anyone who needs to understand how Wilderness Window turns an enquiry into a confirmed trip, without using the system every day. Product managers, business leads, new joiners, anyone joining a conversation about booking process or system change.
What this is not: a click-by-click user guide, and not a description of how the business should work. Everything below is what the software actually does today, read directly out of the application itself.
The one-paragraph version¶
A quote is a booking. Same record, same screens, same trip — the only difference is a flag saying "this is not real yet". Turning a quote into a booking does not copy anything or create anything new: it flips that flag, and the trip re-enters the booking wizard as a live booking. It then has to pass through two more gates — holding the space with the camps and airlines, and confirming it into Tourplan, the reservation system of record. Only that last gate touches money, suppliers and the guest's actual beds.
The four gates¶
Most confusion about this process comes from treating it as one action. It is four, and each one can fail on its own terms.
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ QUOTE │───▶│ DRAFT │───▶│ PROV │───▶│ CONF │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
"Quote" "a real "space is "it's a
a priced booking, held for booking,
idea not held" a while" Tourplan
knows"
Gate 1: CONVERT Gate 2: HOLD Gate 3: CONFIRM
flip the flag ask camps and write to Tourplan,
re-check rooms airlines to hold invoice the deposit
force a reprice set an expiry date tell HubSpot, Onbase
| Stage | What it means commercially | What is true about it |
|---|---|---|
| Quote | A costed proposal. Nothing is reserved. | No space held anywhere. No supplier knows about it. It can sit for years. |
| Draft | A real booking that has not asked for anything yet. | Live in the Window, invisible to Tourplan and to suppliers. |
| Provisional ("Prov") | Space is held, with a deadline. | Camps and airlines have set the beds and seats aside. There is an expiry date. If it passes, the space goes back. |
| Confirmed ("Conf") | The booking exists in Tourplan. | Suppliers notified, deposit invoice raised, downstream systems updated. |
Cancelled ("Canc"), Invoiced, Paid, Travelling and Travelled come later and are outside this document.
Systems that hear about it automatically¶
Four systems outside the Window are told about a booking as it moves, with no person involved:
| System | What it is | Told when |
|---|---|---|
| Wish | Wilderness's own camp inventory | Space held, confirmed, expiry changed |
| Tourplan | Reservation and financial system of record | Confirmation only |
| HubSpot | Sales CRM | Booking goes provisional, and again on confirmation |
| OnBase | Document management | Convert, provisional, confirm and cancel |
Two things worth knowing about the automatic ones:
- The OnBase notification is fire-and-forget. The Window sends it and never checks whether it arrived. If it fails, nothing surfaces to anyone. OnBase most likely drives document generation — vouchers, itineraries — so a silent failure would show up as missing paperwork rather than as an error.
- The HubSpot update on going provisional depends on which button was used. There are two "hold the space" actions; one updates the HubSpot deal and one does not. That is a per-button difference, not a per-person one, so whether a sales record gets updated depends on the screen route taken rather than on who took it. Worth checking against how the sales team expects pipeline data to arrive.
Gate 0 — where a quote comes from¶
Three routes create a quote:
- An agent creates one in the Window. If their agency has a single named Wilderness consultant, the quote is created against that person straight away; if the agency has several, the agent picks one first.
- A Wilderness consultant creates one on an agent's behalf.
- A partner system creates one through the API — an integration such as iTrvl sends the trip in and it lands as a quote.
The partner route is worth understanding separately, because it compresses the whole journey. A single API call converts the quote, builds the booking lines and holds the space — the first three gates below in one step. It refuses politely and with a specific reason code for the five cheap checks (no data, unknown booking, cancelled, already converted, not a quote), but if the trip fails the room-configuration check it returns a bare "unsuccessful" with no explanation. A partner integration seeing unexplained failures is most likely hitting that.
It also only ever sees bookings that were created through the API. A quote built in the Window by a consultant cannot be converted by a partner call, even with the right reference.
Partners can also change a booking after it exists, through a separate set of operations: add or remove a camp, change the number of nights, switch accommodation, add flights, copy a booking, or replace its whole itinerary. Roughly 25 published operations alter a booking in some way. Two implications for the business:
- A booking can change without any Wilderness user touching it, so "who changed this and when" needs to allow for the partner channel, not just consultant activity.
- Those edit operations reuse the same internal machinery as cancellation. A line removed by an itinerary edit is flagged the same way as a cancelled one, so reporting that counts that flag will overstate cancellations. Real cancellations are identified by booking and line status, not by that flag.
This area is not yet documented in the same depth as the rest of this guide.
Two things block quote creation entirely:
- Portal-only agents cannot quote. Agencies can be set up with access to the Information Centre and camp availability only. Those users get told to contact their Wilderness sales representative.
- The consultant must exist in Tourplan. If the consultant/agency combination has no Tourplan login configured, no quote is created at all. This is the most common "the system wouldn't let me start" report, and it is a master-data problem, not a booking problem.
When a quote is created, the Window copies about thirty-five settings off the agency onto the booking: preferred currency, whether they use a DMC, whether they can see SADC pricing, whether invoices can be split, meet-and-greet defaults, which Tourplan instance to use, and so on. These are copied once, at creation, and never refreshed. A quote created before an agency's terms changed still carries the old terms. This matters for long-lived quotes.
The quote then runs through the booking wizard: party and dates (Step 1), availability and rooms (Step 2), the day-by-day timeline (Step 3), and pricing (Step 4).
Gate 1 — converting the quote into a booking¶
This is the step people mean when they say "convert". It is deliberately cheap: a flag changes, and the trip goes back into the wizard as a live booking.
What has to be true first¶
| Condition | Why it exists |
|---|---|
| It must actually be a quote | You cannot convert something that is already a booking, and you cannot convert the same quote twice. |
| It must be at Step 3 or Step 4 of the wizard | The trip must have a timeline and pricing behind it. A quote sitting at Step 1 is just a party and some dates. |
| Departure must be more than 24 hours away — unless a manager does it | Anyone can convert a trip departing in more than a day. Inside 24 hours, only a manager can, and they get a warning first. |
| Room configuration must still be valid | Every room the quote asked for is re-checked against the camp's policy — child age limits, occupancy rules, and so on. A quote built months ago against rules that have since changed will not convert. |
What actually changes¶
- The booking stops being a quote and becomes a Window booking.
- Its status becomes Draft.
- Availability is re-checked from scratch. This is the important part. Quote availability is a snapshot; the moment it becomes a real booking the system re-asks the camps. Space that was free when the quote was priced may be gone.
- If the quote was at the pricing step, the price is cleared. The booking must be repriced before it can be confirmed. Quote pricing is never allowed to become booking pricing without being re-run.
- Tourplan is not told anything. Nothing is reserved yet. No supplier is contacted.
What it does not do¶
Conversion is one-way. There is no "turn this back into a quote" function. If a converted booking is not wanted, it is cancelled, not reverted.
Where the button lives¶
On the booking file, on the booking menu, and on the quotes and agent overview grids. On the grids you must select exactly one quote — selecting several is rejected.
Gate 2 — holding the space¶
A Draft booking has not asked anyone for anything. Holding the space provisionally is what turns it into a real claim on beds and seats.
The system walks every line of the trip and asks the relevant inventory system whether it can be held:
- Yes → the line becomes Provisional. The camp or airline has set it aside.
- No, and it is accommodation → the line is waitlisted. It stays on the booking, flagged, and will be picked up if space opens.
- No, and it is something else → the line drops back to Draft and needs attention.
- On-request products are marked "On request" and wait for the supplier to answer.
Third-party (non-Wilderness) product is held through a separate channel at the same time.
Once space is held, the booking becomes Provisional and the consultant and agent are e-mailed.
The expiry date — the part that catches people out¶
A provisional hold is not indefinite. The Window sets an expiry date on the booking:
- Normally, the earliest expiry date of any held camp line. The whole booking inherits the tightest deadline on it.
- If nothing is held with a date, and the trip starts within a week, expiry is set to the day after the trip ends — effectively "no expiry, this is imminent".
- Otherwise it is today plus the agency's own expiry window — a per-agency setting (7 days by default), so different agencies genuinely get different amounts of time.
If any hold is due to lapse within 48 hours, or has already lapsed, the consultant is warned on screen while they are in the booking.
Only a manager can extend an expiry date. Extending pushes the new date back out to the camps.
Worth knowing: the scheduled job that was meant to e-mail agents about approaching quote expiry is not running — it is switched off in the deployed application and points at an attribute that is no longer used. In practice, expiry warnings only reach people who are in the booking at the time, or through the notifications sent when a booking goes provisional. If the business believes agents are being chased automatically about expiring quotes, that belief is not currently supported by the system.
There is a second, separate kind of expiry: quoted prices from third-party suppliers can go stale. When that happens the consultant is warned that the supplier may re-quote — but it does not block anything.
Gate 3 — confirming the booking¶
This is the expensive gate. It writes the booking into Tourplan, which is the reservation system of record, and it triggers everything financial and operational downstream.
The checks, in the order the system applies them¶
- Tax set-up. The agency must have a tax indicator configured for the specific Tourplan instance this booking uses. If not, the consultant is told to contact RARA (master data) and to try again after the overnight refresh. Because it is per instance, an agency can be valid for one Tourplan region and not another.
- The booking must be at the right wizard step (the quote/timeline stage).
- The booking must not be locked. Locked bookings must be taken "ex-Window" — handled directly in Tourplan.
- Tourplan must be open. There are windows where it is closed to the Window.
- Who is confirming:
- Agents need their own "allowed to confirm" permission and their agency must have full Window access. Otherwise they are told to speak to their agency administrator or a Wilderness consultant.
- Consultants working on a provisional-only agency face two extra rules: agencies whose
code starts
ZZZ(placeholder agencies) cannot be confirmed at all, and otherwise only a manager, and only within 14 days of travel, can confirm. - The booking must be priced. This is where a converted quote that has not been repriced is stopped.
- Inventory must be held. If the booking is still Draft, the system quietly holds the space first, then carries on — which is why a booking can appear to go from Draft to Confirmed in one click.
- Overridden lines need a proper description. Any line where the standard product was overridden must have had its description edited, or confirmation is refused with the offending lines named. This exists so Tourplan and the supplier voucher say something meaningful.
- Outstanding supplier confirmations are flagged but do not block. The booking is marked Pending and a list is shown, but confirmation proceeds.
What happens on success¶
- The booking becomes Confirmed and the confirmation date is stamped — the first time only. Reconfirming never overwrites the original confirmation date.
- All held lines become Confirmed.
- Wilderness camp inventory is confirmed in Wish.
- The booking is written into Tourplan and gets its Tourplan reference.
- Supplier confirmation e-mails go out; the consultant and agent are notified.
- HubSpot is updated with the confirmed lodges.
- Onbase (document management) is notified.
- Guest details are flagged as needing an update, and the original confirmed start date is recorded so later date changes can be measured against it.
- If the booking came from a lead or referral, that referral is marked Confirmed.
- A deposit invoice is raised — but only under specific conditions (below).
When the deposit invoice is not raised¶
The deposit invoice is one of the most misunderstood parts of confirmation. It only happens on the first confirmation, and it is skipped entirely — with an on-screen message each time — when the booking:
- allows invoice splitting,
- is a groups or series booking,
- is an EU booking, or
- is in a holding pattern.
In every one of those cases the consultant is told "please ensure the booking is deposit invoiced" — i.e. it becomes a manual task. If deposit invoicing is being chased manually for a chunk of bookings, these four flags are where to look first.
Two things that surprise people¶
"Confirmed" in the Window does not guarantee "confirmed" in Tourplan. The Window marks the booking Confirmed before it writes to Tourplan. If the Tourplan write then fails, the booking sits looking confirmed while Tourplan knows nothing about it. The system does compensate — when the consultant leaves the booking, it warns them that the booking is confirmed but not in a completed state — but any report or dashboard counting "Confirmed" bookings is counting Window status, not Tourplan reality.
Some bookings do not need a Tourplan write at all. If the system determines Tourplan confirmation is not required, the booking is marked Confirmed and the process stops there — which also means the deposit invoice and the HubSpot and Onbase updates do not run.
What happens to quotes nobody converts¶
Quotes are cheap to leave lying around, and the system eventually cleans them up:
| What | When | What happens |
|---|---|---|
| Old quotes and placeholders | More than 4 years past trip end | Deleted, with an archive log entry |
| Brochure-costing quotes | More than 2 years past trip end | Deleted, with an archive log entry |
| Stale provisional bookings already cancelled at camp level | More than 13 months past trip end | Cancelled in the Window |
| Long-cancelled bookings with no Tourplan or camp reference | More than 4 years past trip start, and only if the party has no live booking | Deleted |
Everything is archive-logged before deletion. The job processes 150 records per sweep per run, so a large backlog clears over several runs rather than all at once.
One caveat for anyone auditing these deletions: the reason text written into the archive log does not match what the job actually selects — it says "6 months" where the job uses 13 months, and "one year" where the job uses 4 years. The behaviour is right; the labels are stale. Do not reconcile deletion volumes against those descriptions.
Where this process typically goes wrong¶
| Symptom | Usual cause |
|---|---|
| "I can't create a quote at all" | The consultant/agency has no Tourplan login set up, or the agent is on portal-only access |
| "Convert does nothing" | Room configuration no longer passes the camp's policy — usually child ages or occupancy rules that changed since the quote was built |
| "It says I have to be on step 3" | The quote is not far enough through the wizard, or was never priced |
| "It won't let me confirm — not priced" | The quote was converted from the pricing step, which clears the price on purpose. Reprice and retry |
| "It won't let me confirm — tax indicator" | Master data gap for that agency in that Tourplan region. Goes to RARA, usually fixed overnight |
| "The agent says they can't confirm" | Either their personal confirm permission is off, or their agency does not have full Window access |
| "It confirmed but Tourplan doesn't have it" | The Tourplan write failed after the Window status changed. The consultant should have seen a warning on leaving the booking |
| "No deposit invoice was raised" | One of the four suppression flags — invoice splitting, groups/series, EU, holding pattern — or it was not the first confirmation |
| "The hold expired and nobody told us" | The automated expiry-chaser e-mail is not running |
Who can do what¶
| Action | Agent | Consultant (Employee) | Manager |
|---|---|---|---|
| Create a quote | Yes, unless portal-only | Yes | Yes |
| Convert quote to booking | Yes | Yes | Yes |
| Convert within 24 h of departure | No | No | Yes |
| Hold space provisionally | Yes | Yes | Yes |
| Extend an expiry date | No | No | Yes |
| Confirm a booking | Only with personal permission and full agency Window access | Yes, unless the agency is provisional-only | Yes; required for provisional-only agencies within 14 days of travel |
Glossary¶
| Term | Meaning |
|---|---|
| Window / Wilderness Window | This application. Where quoting, booking and trip management happen. |
| Tourplan | The reservation and financial system of record. A booking is not "real" to the wider business until it is in Tourplan. There are several regional Tourplan instances and a booking belongs to exactly one. |
| Wish | The inventory system for Wilderness's own camps — what holds and confirms actual beds. |
| Booking line | One item on a trip: a night at a camp, a flight sector, a transfer, an activity, a permit. |
| Provisional | Space held with a deadline; not yet a commitment. |
| Holding pattern | A flag that lets a booking be confirmed while normal supplier and invoicing rules are relaxed. Powerful — worth knowing who can set it. |
| Ex-Window / ex-Tourplan | A booking that has left the Window's control and is handled directly in Tourplan. |
| DMC | Destination management company — a local partner some agencies book through. |
| RARA | The master-data function: camps, suppliers, rates, and the tax indicators that gate confirmation. |
| OnBase | Document management. Notified automatically whenever a booking's status changes; the Window never checks that the message arrived. |
| iTrvl | The main partner system booking through the Window's API. |
| ZZZ agency | A placeholder agency code. Bookings against one cannot be confirmed into Tourplan. |
| Ex-window lock | A booking flagged so it can no longer be changed in the Window. |
Where the detail lives¶
- Engineers:
docs/deep-dives/quote-to-booking.md— every rule above traced to the exact logic that implements it. - QA:
docs/qa/regression-quote-to-booking.md— the test cases that prove each rule. - Wider process map:
docs/03-business-flows.md.
A note on confidence. Everything here was read out of the application's own logic, not from process documentation or interviews. That makes it accurate about what the software does. It does not tell you why a rule exists — where intent mattered and the system did not state it, this document says so rather than guessing. The 14-day rule, the four deposit-invoice suppressions and the agency expiry windows are all good candidates for a short conversation with the reservations team to capture the reasoning before it is lost.