Until recently travelers couldn’t learn how many frequent flyer miles will they get before purchasing a ticket. Now using Milefy API it’s become easy. As a flight search provider you can use our API to submit flight results and receive mileage earnings data in return, ready to present to your user. But are these numbers relevant for the user? What if he uses different frequent flyer program?
Example
John is a frequent flyer. He lives in Brussels, but flies often to both London and Barcelona for business meetings. He is a member of British Airways Executive Club frequent flyer program. As a result he prefers to fly with British Airways or Iberia, because he knows, he can earn miles on these flights.
Example above illustrates, that Milefy API calculates miles for the default program for the flight’s marketing airline. In other words for the British Airways it’s British Airways Executive Club, for Iberia it’s Iberia Plus and so on. Fortunatelly John is a savvy frequent flyer and he knows, that Iberia flights will most likely earn some miles for his Executive Club too, but what if he had flown with an airline he is not familiar with?
In another example John takes a trip from Brussels to Singapore.
Now how John can learn if any of these flights can earn him miles to his Executive Club program?
He can personalize his search by selecting frequent flyer program membership, that he holds.
To sum up, the more you know about your user and his frequent flyer program memberships, the more relevant and valuable results you can present to him. But learning user’s program name is just a first step in this journey.
Levels of personalization
After reading this section you will learn what are the benefits of personalization, both for the user and the business you’re working for. Depending how much information user has shared with your application, you will be able to provide different value.
Overview
Level | Benefits |
---|---|
Program | You can hides irrelevant frequent flyer programs and display mileage earnings and cabin upgrades for the user’s selected program. |
Program and status tier | You can display exact number of mileage earnings and eligible status benefits for the selected program. |
Multiple programs | You can add ability to switch between programs earning on the same flight result. |
Mileage tracking | User can automatically update mileage earnings in his memberships and track progress towards his next status tier. |
Level 1: Program
If you know the frequent flyer program membership, that user holds, then you can display mileage earnings only for this program. User won’t see anymore irrelevant flight results containing earnings for other programs.
In this case, basic status tier for selected program is assumed.
Benefits
- Display relevant mileage earnings only for the program membership, that user holds,
- Fine tune your promotional offers using user selected program to focus on specific airline or alliance.
User input
Perhaps the easiest way for the user to input the frequent flyer program is to type a few letters of its name and then select from the list of matching programs supported by Milefy API.
Of course regular list (HTML select element) would be easier to implement, but there are two reasons why it’s not the best approach from the user experience point of view:
- The list with over 65 frequent flyer programs is too long to allow fast selection,
- Users tend to forget the name of the frequent flyer program, that they use, but remember the airline they registered with and the program it belongs to. For example they may not remember Miles & Smiles name, but they know, that they use Turkish Airlines program. With autocomplete, you can match both frequent flyer and airline name.
Implementation
First of all you should identify the user within the Milefy API. If you can recognize the user in your application and you have already stored his traveler ID, then you should re-use an existing traveler ID. Recognition doesn’t necessarily mean, that user created an account with your application. For users, that haven’t opened account yet, traveler ID can be stored as a part of the browser cookie
or in localStorage
.
If you don’t recognize the user, then you should create a traveler profile for him using Create traveler method.
Next you can display frequent flyer program input field with the list of all supported programs. You can retrieve such list using Get program collection method.
Once an user selects his program, you should use Create membership method to save his frequent flyer program membership under his traveler profile referenced by traveler ID. In the simplest form, you can create the membership with only frequent flyer program code, for example MAS
for Turkish Airlines Miles & Smiles.
Now, when you have traveler profile with one frequent flyer program membership attached, you are ready to create a flight search with mileage calculations included. You should use Calculate frequent flyer info method, specifying in request traveler ID and set of flights to calculate miles for. The response will contain mileage earnings personalized automatically according to the specified traveler profile.
Level 2: Program and status tier
In addition to the program name, you can ask user for the status tier he holds in particular program. As a result, our engine will no longer assume, that user holds basic status tier in the program and apply relevant, usually higher mileage earnings.
Benefits
- User receives always 100% relevant and accurate information about his mileage earnings and cabin upgrades,
- Besides mileage earnings and cabin upgrades, information about status benefits also becomes available to the user.
User input
Every frequent flyer program has an individual number of available status tiers. Their official names also differ across different programs, even though travelers usually recognize only some common names like: Silver, Gold and Platinum tier.
Implementation
Implementation is almost the same as in Level 1: Program. The only difference is, that after user selected his frequent flyer program, application should prompt user with status tier selection.
The list of status tiers can be retrieved from Get program collection method.
After user selected a status tier from the list, you should use Create membership method to save membership under his traveler profile, but this time you need to specify not only program code, but also code of the selected status tier.
Once you complete this, you can send request to calculate mileage earnings using Calculate frequent flyer info. Results will be automatically personalized according to traveler’s selected frequent flyer program and his status tier.
Level 3: Multiple programs
There is no limit to number of frequent flyer program memberships, that one user can add to his traveler’s profile. Usually frequent flyers tend to use 1-3 programs and choose them depending on the route, that they fly. Milefy API can calculate mileage earnings for all of them at once, so user can have an overview of all the options, including these, when two or more programs earn miles on the same flight.
Benefits
- User can make better choices comparing benefits from different frequent flyer programs he is a member of.
User input
Interface should allow user to add and delete frequent flyer membership. If user can input status tier, then it might be worth supporting edit action as well.
Implementation
The implementation most likely will require user to open persistent account with the application. Otherwise user may lose time to re-input the data when using different device (assuming traveler ID is stoted temporarily e.g. in cookie
).
The workflow regarding Milefy API communication remains exactly the same as in Level 2: Program and status tier. The only difference is, that user can add more than one membership to his traveler’s profile.
Level 4: Mileage tracking
We offer the most advanced level of personalization using membership connection feature. User can input his frequent flyer membership credentials to sign in and your application will automatically receive data including mileage earnings, expiration dates and current and next status tier.
Moreover, if user decides to store credentials with our system, you can update his mileage earnings any time. This way a user can create a virtual wallet consisting of all his frequent flyer memberships. And whenever he will run a new flight search, all his membership connected that way will be taken under account.
Benefits
- User does not need to remember any information about his frequent flyer program (status tier, mileage balances), because he retrieve it automatically,
- User can track his mileage earnings,
- User can track his progress towards next status tier or re-qualification.
User input
Every frequent flyer program has its own configuration of the account connection form (view in the middle). Some programs require more than two fields (membership number and password), others require user email address instead of membership number, so the form needs to be constructed dynamically based on configuration specified in Milefy API.
The configuration specifies number of required input fields and following information for each of them:
- Label for the end user,
- Type of the field (
email
,number
,select
etc.), - Hint helping user input valid information (optional),
- Regular expression pattern, that can be used for the input validation (optional),
- Array of options if field type equals
select
, - Order in which fields should be displayed.
Account connection and update is a time-consuming process. This type of request may last anywhere from a few seconds to even one minute. Due to that you should build the interface in a way, that user doesn’t need to wait actively for the request being completed. Instead, this action should take place in the background, not preventing user to interact with other parts of the application and notifying him when connection is complete and his mileage earnings updated.
Implementation
Assuming you have already created a traveler profile using Create traveler method, you should then create requested by the user frequent flyer program membership. You should do it the same way like in the Level 1: Program using Create membership method specifying only program code in the request body.
Once you have created the membership, then you should authenticate it with the user credentials. You need to use Create simple authentication method to do so, specifying traveler ID and program code as URL parameters and login credentials in the request body. You can choose to store this data securely on 30K servers, which allows for automatic update of user mileage earnings or not and require credentials with every update. You can also store just membership number and not password. It all depends on your privacy policy and can be modified any time.
After successful connection, the membership will contain updated information (mileage earnings, current status tier, expiration date etc.). You can retrieve this data using Get membership method.
Finally you can update mileage earnings of the user if he decided to store his credentials. You can do it for all user memberships at once using Update membership collection method. This can be either done on user request or automatically on behalf of the user, for example once a month for the active user accounts.
Onboarding user
Designing good workflow for onboarding user is a key to successful Milefy API integration. Since higher level of personalization allows user to benefit from additional features and more relevant data, he makes more informed choices, which in turn results in purchase of more expensive fares. In other words the goal is to convert regular, anonymous users into loyal frequent flyers with set of connected memberships, because it is profits they will generate this way.
Problem
At first glance it is a simple task. You could for example add a frequent flyer section in the user profile, where user could add and connect his memberships. That however might be ignored by the vast majority of the users, because they wouldn’t know such feature exists, they would be forced to open an account to use it and finally they don’t even know how they could benefit from it.
Then there are other problems such as users, that don’t remember their password to the frequent flyer program account they use or need to explain difficult terms such as status tier qualification to the less savvy frequent flyers. In short words — it’s a great challenge to invent workflow and interface, that will make the personalization easy for the user.
Solution
Instead of trying to convince user to input his frequent flyer programs and connect them one by one in the user profile, we suggest to build workflow, that gradually introduces new features and prompts user to add more data bit by bit.
It’s very unlikely that user will input all his frequent flyer programs at once, even if promised with mileage earnings, tracking of his earnings and seeing status benefits. Instead you can fetch user frequent flyer program and his membership number from the existing fields on the booking page to store this information and personalize the flight search he will perform in the future.
During this next search you may prompt the user to specify his status tier in this frequent flyer program. Next time he comes back, he will see already status benefits on flight search results. He makes another booking and instead of sending him regular confirmation to his email, you send him information about the mileage earnings he should collect from this flight asking if he wants to keep track of them in his profile.
This way user finally reaches highest level of personalization with created account, a few frequent flyer program memberships assigned to it and connected with user credentials. It took a few steps and a few visits, but the goal was achieved with very little friction for the user.
Example of step-by-step workflow
Onboarding workflow ideas
Below you can find a few ideas for how to design user interface and onboarding workflow.
Flight search form
Loading flight results
Call to action on the flight search page
Filters on flight search page
Flight details
Booking page
Email confirmation
Questions?
Visit section for developers, check resources there or give as a shout: support@30k.com.