✈️ February: Travel Hacking – #12ProjectsIn12Months

February: Travel Hacking

12 startups projects in 12 months

Okay so I’ll start with an admission – 12 startups in 12 months was a little ambitious.

Not least because I still have a day job (!) and this is just a way to fill my evenings and weekends… In the spirit of being agile and iterative therefore, I’ve pivoted slightly.

Instead of 12 startups, I’m now working towardsΒ 12 projects in 12 months. My aim remains the same: build new skills and have some fun while I do it.

Here’s what happened in February!

TL;DRΒ πŸƒπŸ½β€β™‚οΈ

I created a simple app – based on Google Spreadsheet and a Flow XO chatbot, to compare airfares from several flight search engines.


The idea πŸ’‘

I love to travel – and I love travelling even more when I get a good deal.

I’ve spent the past few years building up a series of techniques to find cheaper flights. Over time, I’ve managed to score some pretty cheap flights:

  • Copenhagen – New York – Copenhagen (~Β£120 on Air Berlin)
  • Brussels – Seoul – London (~Β£150 on Alitalia)
  • Lisbon – Sao Paulo – London (~Β£220 on Azul)
  • London – Bangkok – London (~Β£280 on Emirates)

These techniques, collectively known as Travel Hacking, are a mix of common sense – being flexible with your dates, for example – and less obvious tricks (see my article on flying from Europe to save on flights).

The one thing they have in common is that they often involve a lot of manual effort and trial-and-error.

Given that I spend a lot of time (probably too much) searching for flights, both for myself and for others, my idea for February was somewhat selfish: attempt to automate my travel hacks so I could spend more time flying and less time searching.


The game plan 🎯

There are a ton of ways to save money on flights. For this month’s exercise to be a success, I wanted to start small and focus on one area.

Once I’ve determined where and when I’m flying, one technique I use is to compare prices across multiple flight meta-search engines, and in multiple languages*

*Kayak and Skyscanner index local OTAs (online travel agencies) specific to the country you’re searching from (e.g. British of UK travel agencies). As such, prices can vary from country-to-country, so it’s worth checking beyond .co.ukΒ πŸ™‚

As this process can be a bit time consuming, I set about looking for a way to automate it. In effect, I was creating a sort of search engine of search engines.

I would need a simple way to:

  1. Capture the user’s request (where and when are you flying?)
  2. Search for flights based on that request
  3. Compare prices (and return the best options)

The solution πŸ“±

Part 1: Capturing user requests

Using my favourite chatbot tool (see what I built in January!), I created a basic user interface to capture request information from a user:

  1. Where are you flying FROM?
  2. Where are you flying TO?
  3. What’s the DEPARTURE date?
  4. What’s the RETURN date?

I also decided to ask a few follow-up questions to see what price the user had found so far. Instead of just performing a search, the system could then compare prices against the best price a user had found. In the longer term, this could turn into a potential revenue stream: if I beat your price, pay me a % of the saving to unlock the link:

  1. What AIRLINE was your best flight deal with?
  2. What’s the best PRICE you found on your dates?
  3. WHERE did you see that price?

Once the user answers these questions, the results are saved into a new row on a Google Spreadsheet.

Part 2: Search for flights

The next part was the searching itself. Thanks to the handy links provided onΒ flightlist.io, I decided to try connecting to Kiwi.com’s flight pricing API as a starting point.

While I could have built a separate site/webapp, I decided to use Google Sheets’ handy IMPORTXML function to run the query directly in the spreadsheet, using the user request as inputs.

After a bit of tinkering, I got it working pretty well:

As you can see, I was also able to test additional search parameters, such as limiting the search to a single airline (CX = Cathay Pacific) or restricting the number of stopovers en route.

Part 3: Compare prices

The next step was to compare these Kiwi.com prices to whatever the user had entered, showing whether I had actually found a good deal or not.

I simply added an additional column to my table with some conditional formatting to indicate if my price was cheaper or more expensive than what the user had found:

It worked!

Okay… so the results weren’t great. But the API was working and the spreadsheet was correctly comparing the price it found to what the user had entered.

And let’s remember that this was Kiwi.com was just the first of many sites to check. Eventually, the system would index several different flight search engines, with the aim of finding a wider range of prices.

At the time of writing, I am still trying to get access to additional APIs – Kiwi.com is the only one working right now.

The result πŸ†

As you can probably tell, I didn’t get quite as far as I wanted to this month. What I put together isn’t quite ready for real customers yet, but I am still pretty chuffed with the results.

After just a few nights’ work, I was successfully able to:

  1. Accept user inputs via a chatbot
  2. Connect to an API (never done that before!) to get live flight prices
  3. Compare the two and indicate whether I had beaten a user’s price

Fingers crossed that I’ll be able to build this out in the coming months and continue my travel hackery!

Leave a Reply