Four ways to design a more user-friendly booking system

March 29, 2019

Read time 10 min

Over the past year, we’ve been working on different kinds of booking systems for very different kinds of airlines. What did we learn, and how can we improve an experience that is so often broken? Here’s our short guide to designing better online booking engines.

Booking travel is one of those tasks that is rarely good fun, though the trip itself often will be. It’s a chore, and often quite stressful: it takes time, there are lots of decisions to make, there’s lots of money involved, and there’s a time pressure to get a good deal. If you’re trying to find the cheapest flight option within a range of dates, you’ll be putting in serious work and end up with lots of browser tabs open before you hit jackpot.

These issues have been discussed before, and some ways to make the process more user-friendly have been suggested. However, changes in the travel business are slow – and often “because it’s better for the user” isn’t enough of an argument to get changes implemented. In this business, the investments are huge, competition is tough, and costs and profits must be optimized.

When it comes to the airline business, there is little incentive to improve the user experience because of one simple fact: People will buy airline tickets no matter how bad the experience is. Their motivation to travel is high, so they’ll do what it takes to book the flights. Booking a flight is a hassle, and people know it. They don’t expect the booking flow to be a pleasant journey, but they let it go, because “the systems are always like that”.

As designers, we see that our job is to change this and start showing how things can be improved so that preparing for a holiday wouldn’t be such a stressful experience. Here we’ll share some of the questions we think designers should be asking themselves when they start designing a booking system. They’re based on a countless number of both user and stakeholder interviews we’ve conducted, and some we learned the hard way ourselves. And although the principles we uncovered are especially important when designing for airlines, these same lessons hold for other kinds of booking systems to some extent as well. Designing a movie ticket booking system? Or one for guided tours? Have a look and see what you can take away.

Alternate reality: A booking engine that the users want

Imagine you’re buying a simple train ticket. It’s quite straight-forward: You choose the train you want to take, pay for the ticket, maybe choose a seat or a travel class, and that’s it. You don’t have to give extra details, you don’t have to decide on how many bags you’re bringing, you don’t have to provide a passport number, nor do you need to click “no” to countless insurance offers.

Now imagine that booking flights was more like booking train tickets. You’d simply choose the flight you want, pay for it, and you’d be all done. Then at any point before your flight, you could log in and select any extras you need (bags, seat selection, food, and so on) and fill out the passenger details that the airline needs.

This type of booking system would be fully user-centric. However, the reality is that the business requirements don’t often fully overlap with the user needs. In the end, like any business system, designing for airlines means balancing between what the users want and what the business wants. It’s not easy, but it’s necessary if we want to fix a booking experience that so often appears broken.


The two sides of the booking engine

Common pain points and painkillers for them

When designing user interfaces, we usually want to identify the key decisions that must be made in a system, and then design the UIs so that making a decision is as easy as possible. And when booking a flight, there are some quite complex decisions to be made:

1. Finding suitable travel dates and flights

Our recommendation: Think about how you can design a system that allows users to make a decision without the need to go back and forth between pages with different important information on them.


In a traditional airline booking engine, you first select your travel dates. Usually the date selection (calendar) is a blind UI: you don’t know what to expect in the next step. The result might be “no flights available”, or the flights might not be suitable for you. You might end up hitting the back button and repeating this process until you find something that does.

And this isn’t the case for just flights, either: You can see this same pattern in lots of different booking systems, from trains to hotels and more. The worst case scenario is that you select e.g. dates for a stay at a hotel, only to get to the next page and be told that they’re fully booked.

What we’ve found is that the user-friendliest way to handle these situations is to think about how you can give crucial information in the first step, without the user having to go back and forth. Think about ways you can combine the information into one, or signal important information about e.g. availability before the user selects dates.

2. What’s included in my ticket, and what do I actually want?

Our recommendation: Think of ways to make different fares intuitively understandable: what’s included in each, and what will the total price be.


What’s included in the fare, what’s not, and what will this all cost in the end? Often you get this information bit by bit, and you have to piece it together to get the full picture. One of the first things you’ll see is a price – but you may not know what’s included or what the conditions are (for example, can you make changes after purchase?).

Let’s say you might want to take a checked bag with you. If you select a fare without a checked bag, you won’t know what an extra bag will cost till the next step. Once you’re offered the extra bag, the cost may be so high that it would have been wiser to choose an airline or a fare with the bag included. And why do you need to decide right now, anyway? Your flight may be a long way off, and there’s no way to know how much stuff you’ll want to bring.

What if the pricing was completely clear? Each fare would tell explicitly what’s included, and what are the prices for things that are not included. Or take it further: no fixed fares with fixed contents. What if you could choose exactly what you want? You might want to sit (or lay down) in business class without having all the other services bundled with the business ticket (like lounge access and the ability to change your flights for no fee). Fixed fares exist because it’s good business to bundle services together and sell more for more money.

Taking it even further:
Just get a ticket for the flight you want, and decide on the package later (when you actually know what you need). Of course, some simple choices have to be made – like whether you want to sit in business or economy class.

3. Why do I have to give so many details?

Our recommendation: During the booking, only ask what’s needed to actually issue a ticket, and give users the option of coming back later to provide the details required before the trip

When you book a ticket, what’s crucial from the users’ perspective is selecting 1) destination 2) travel dates, and 3) the number of passengers. That’s what is absolutely required in order to guarantee seats for a certain flight to a certain destination on a certain date.

The first two are the big decisions, and not always easy ones. Everything else – like filling out the passenger details, or what they will bring with them onboard – seems secondary at this point. They can be worried about later, and they don’t seem important for the airlines at this point in time, either; it should be enough for them to know how many seats are booked on each flight, so they can keep selling tickets as usual.

However, often you need to tell all the details of your trip at the time of booking. This includes selecting the ticket class or extra services or adding all the names, phone numbers and special diets of the passengers. As a user, you’d appreciate the chance to do this later, so that you don’t have to a) spend time your precious time on filling out forms now, and b) decide every detail of your trip yet. Your motivation to come back later to provide the details later is quite high anyway, as you’ve already paid for the tickets – and would give airlines an opportunity to sell you extra services closer to your travel dates when they are more relevant anyhow.

This would be one more thing that would make life easier for the user, and it doesn’t seem harmful from the airline perspective either.

4. Why does the system make senseless assumptions about me?

Our recommendation: Think of ways to make selections automatically for the user, or to offer services that might suit the passenger’s interests


This is not an issue for the users, but it’s seems to be an issue for the airlines. Airlines want to better know their customers – whether this means getting the user to create an account and log in, or trying to guess or deduce who they are and what they want. They want to know the user in order to offer them a personalized experience, but what does that mean?

It can mean altering the buying flow based on decisions the user makes. Easy places to start include deducing the purpose of the trip – is it a day-long business trip to Frankfurt, or a whole family going to Spain for a week? The two users probably want and need different things, so based on this you can already customize the flow.

Customization can also mean that selections are made or pre-filled based on preferences for known passengers – after a user has logged in, or by utilizing browser cookies. It could even mean something like offering the user a trip bundle based on their destination or choices, but that’s quite advanced considering the current status of personalization in booking engines. The caveat is that the more personalized the offering, the higher the risk of coming off as “creepy”, so tread lightly here.

It’s also good to keep in mind that out of all the users we talked to, no one wanted a “more personalized” experience. They just wanted to buy their ticket and get on with their day. But if personalization can make the booking process simpler or faster, it’s most likely a very welcome improvement – right now users just don’t know to ask for it.

The way forward: questions to ask yourself

Here are our steps for designing and building a better online booking system:

1. What’s the big picture?

Each department inside a company may have their own goals, but someone has to think about the whole picture and the way it is presented to the user.

2. Who decides – the business or the customers?

It’s an act of balancing between these two groups, and it might pay off to have really satisfied customers.

3. Is your product too complex?

Do you have lots of fares, ticket types, and different rules for each of them? If you yourself have a hard time understanding them, how will your customers fare?

4. Are your services and prices understandable?

Clearly state what’s included in the ticket, what’s not, and how much it costs to get what wasn’t included in the ticket.

5. Are you differentiated from the competition?

How else can you differentiate from others, and be memorable?

6. Did you remember to think of the whole journey?

Think about what happens before and after the booking, and how the booking engine slots into the overall customer experience.

Sign up for our newsletter

Get the latest from us in tech, business, design – and why not life.