Direct Booking Engine and Channel Sync
A hotel taking most of its bookings through online travel agents at 15–20% commission, with a website that has a contact form and no way to book.
The reality
A hotel is taking most of its bookings through online travel agents at 15–20% commission. Its own website has a contact form and no way to actually book. A guest who searches the hotel by name at 11pm, finds it directly, still books through the agent — because there's nowhere else to click.
Where it breaks
- A fifth of every room sold through an agent never reaches the hotel — it's paid away as commission before the guest even checks in.
- The hotel has no way to take a booking outside office hours, so a guest ready to book at night defaults back to the agent.
- Channel sync is never instantaneous, so the same room can look available on three channels at once if nothing is pushing updates between them.
- Nobody can say with a number what each channel actually costs versus what a direct booking would have cost.
The Afivox approach
Afivox doesn't propose a generic booking button. It starts from the actual gap — a hotel with real demand and no direct channel to capture it — and builds the narrowest system that closes that gap: a booking widget the hotel's own site can carry, wired to the same availability the agents see, with every channel's real cost visible afterward.
The system
Users
Guests booking directly, front-office staff managing bookings
Application
Booking widget, booking management
Services
Rates and availability, channel sync, payments
Data
RoomType → Allocation, RatePlan → RateRule, Booking → Payment, Channel → SyncLog
Integrations
Booking.com, Expedia, Agoda and other channels with an API
Security
Payment capture, channel sync logging
What it looks like
Concept mockups — illustrative interfaces, not a built system.
Booking widget
Rates and availability
| Room type | Rate | Min. stay | Status |
|---|---|---|---|
| Standard Double | ₦32,000 | 1 night | |
| Deluxe Twin | ₦45,000 | 1 night | |
| Executive Suite | ₦78,000 | 2 nights |
Channel sync log
| Channel | Action | Time | Status |
|---|---|---|---|
| Booking.com | Availability push | 09:12 | |
| Expedia | Booking pull | 09:10 | |
| Agoda | Rate push | 08:47 |
Booking management
| Guest | Source | Dates | Status |
|---|---|---|---|
| T. Bello | Direct | 18–21 Sep | |
| S. Musa | Booking.com | 19–20 Sep | |
| R. Obi | Direct | 20–22 Sep |
Source reporting
41%
Direct bookings
₦412,000
Commission paid
₦286,000
Commission avoided
How it flows
Secure by design
- A rate is captured on the booking at the moment it's made, so a later rate change never rewrites what a guest actually agreed to pay.
- Every channel sync — push or pull, successful or not — writes to a log; an unlogged failure is how double bookings get discovered a week late.
- Availability is computed from actual bookings, never stored as a count that can drift from reality.
Designed to improve
- Direct revenue — a guest who finds the hotel directly can book without an agent taking a cut.
- Cost visibility — the hotel can see what each channel actually costs it, not estimate it.
- Consistency — availability is one number the widget, the office and every channel agree on, instead of several that disagree.
Before
- A guest who wants to book directly has nowhere to do it except a contact form and a wait for a reply.
- Every agent booking quietly costs a fifth of the room, with no easy way to see the total.
- Availability lives in whichever channel was updated most recently.
After
- A guest can book directly, any time, from the hotel's own site.
- Commission paid versus commission avoided is a number on a screen, not a guess.
- Availability is one number, pushed to every channel from the same source.
Your operation probably has a workflow like this.
One session. We look at what's breaking, and what we'd build around it — whether or not you hire us afterward.
Tell us where yours breaks