source: Unsplash

How Traveloka’s Channel Manager Integration Helps Hotel Owners

It involves zero code changes!

Puspacinantya
Traveloka Engineering Blog
5 min readNov 22, 2019

--

Imagine that you were a manager of a rising, top-notch hotel in Jakarta. It’s peak season and the rooms you are selling are being bought faster than regular days. People book the rooms through various Online Travel Agents (OTAs) that your hotel is already connected to. In response, you, as a manager, have to insert or update room availability information to each and every OTA platform in order to keep your hotel’s inventory up-to-date.

The question is: how many hours do you think it would take you to manually input and allocate inventories to those OTA platforms?

Well, probably a lot.

Figure 1. This is a situation you may find yourself in. Can you feel the unnecessary pain that the hotel (and especially you as the manager) has to go through to insert the same room availability information over and over again?

This situation is surely not ideal, not to mention inefficient; especially for those hotels with chains and subsidiaries. It will feel like doing the same task repeatedly for different online travel agents. It slows the hotel operation and increases the percentage of human errors while updating inventories to each platform. Furthermore, as allotment and room rates are still being updated across OTAs, new bookings may come in and cause overbooking or inaccurate pricings. This is where Channel Managers come to the rescue to solve the problem above.

What exactly is a Channel Manager?

A channel manager is a web-based application that works as an interface between hotels and OTA platforms. It enables hotels to update allotment and room rates just once and the Channel Manager will distribute the updated information to all OTA platforms simultaneously. OTA platforms also send real-time booking notification to Channel Manager for every reservation made. This benefits the hotel in terms of managing inventories across several websites with actual updates. In a world where technology prospers, the existence of Channel Manager can be seen as a catalyst for hotels’ online presence as it provides efficiencies and efficacies to distribute information.

Figure 2. Channel Manager helps hotels to connect with Traveloka, enabling room availability and its room rate to seamlessly sync with our platform.

Integration between Traveloka and Channel Manager

Figure 3. A bidirectional interaction between Traveloka and Channel Manager.

As the leading online booking platform technology company in South East Asia, Traveloka has integrated its system with various Channel Managers through our TERA platform (Traveloka Extranet Reservation Access). There are two sets of information flow that happen between TERA and hotels. The first information flow happens when a user reserves a room through Traveloka. Once each new reservation is made, TERA will notify the Channel Manager of this booking. The Channel Manager will, in turn, update the reservation to the hotel’s extranet and propagate this booking to other OTAs that this hotel is connected to. The second information flow occurs when the hotel wants to update room allotment or room rate. After the updated info is inserted into their Property Management System (PMS), the Channel Manager will send the updated information to TERA, where it will then be up-to-date with the latest information.

The Pain Point

The integration between Channel Managers and TERA is obviously mutually beneficial for both hotels and Traveloka. However, in the early days of TERA, we realized that there was a repetitive development efforts with new channel manager integration. After conducting further research to find the root cause, the TERA team concluded that most Channel Managers use a common OTA standard that did not match TERA’s standard (OTA, in this case, is OpenTravel Alliance. A general API standard in the travel industry).

So what did we do about it?

Refactor. We realized that this disparity in API specification had resulted in us having additional development effort. Not only that it was adding extra works, but also added maintenance complexity to all the different but similar integrations. We realized that Traveloka will connect to even more channel managers in the future. So, TERA has to be able to integrate with Channel Managers with minimal development effort, which requires zero code change.

Automatic Object Generation with JAXB

Since the interaction between TERA and Channel Managers is in the form of data exchange through XML, we had to find a new way of parsing XML. When the team had an initial discussion about refactoring, we decided to integrate JAXB (Java Architecture for XML Binding) to the TERA system. It has the ability to marshal (write) Java objects into XML and unmarshal (read) XML into Java objects. JAXB in our case turned out to be useful since the amount of exchanged data was quite immense and the implementation was also simpler than the ones we had before.

Figure 4. JAXB works as the mediator between the Channel Manager and Java classes in TERA to convert XML documents into Java objects and vice versa.

As we can see from Figure 4 above, there are some involvements of Krasa JAXB, Hibernate Validator, and JAXB in our TERA system. Krasa JAXB will put annotations to Java class. These annotations are defined in the XSD file provided by Open Travel Alliance. When Java object is created in runtime, Hibernate Validator will then check if the object violates the annotation or not.

In the midst of refactoring, no other teams in the Accommodation group had used JAXB before. It was quite challenging for engineers to understand and adopt this concept, especially for new engineers. Despite many trials and errors, we were finally able to integrate with dozens of Channel Managers’ API with zero code changes. Nowadays, it only takes a couple of configuration steps to add Channel Managers in Product Ops’ self-serve tools.

• • •

Thank you for reading one of our experiences in building solutions on our beloved platform! Please never hesitate to read more of our diverse experiences as engineers at Traveloka and even better, come and be a part of our terrific team. Happy coding! 🙌

--

--