Go Back  FlyerTalk Forums > Travel&Dining > Travel Tools
Reload this Page >

ITA-Matrix-PowerTools - Userscript for Orbitz/DL/UA/AA/BA/CZ/IB/LA/LH/LX/TK

Old Nov 11, 2014, 10:54 am
FlyerTalk Forums Expert How-Tos and Guides
Last edit by: IAkH
Welcome to the ITA-Matrix-PowerTools
*** About ***
The ITA-Matrix-PowerTools are a user script maintained by fellow flyertalk members to enhance the already powerful Matrix of ITA Software by providing new features and booking links.

Features added to the itinerary details page:
  • convert times into 24h format
  • translation support
  • open fare rules in new window by default
  • price breakdown (base fare, taxes & carrier imposed surcharges)
  • editor mode (adjust cabin prior extraction)
  • multiple handy links (Seatguru, Planefinder, WhereToCredit)
  • new on page features like detailed mileage breakdown*, GCM-Map* and earned frequent flyer miles*
  • create links to various providers (OTAs / airlines / other tools) to try direct booking of your itinerary

Originally Posted by Error: Unable to find class IR6M2QD-k-i for itinRow.
If you see this error, currently you'll need to manually edit your installed script.

See posts from October 1st, 2018 for more information.
*requires background requests

The script may have lots of bugs and comes without warranty of any kind! Not all fares will be bookable or will price correctly in the booking engines. You are responsible for the money you spend - so double check your flights before purchasing AND use your sanity! Read this and the next two posts as an example: click

*** How it works ***
Using pure JavaScript we are "creating" some sort of hook that is periodically checking for page changes while working with the Matrix. As soon as you reload or leave the page the script stops (leaving the page or using the console-version) or starts from the beginning (using the userscript and perfoming a reload). Also this script is only running in these tabs/windows in which you are looking at the Matrix.
As soon as the script detects the itinerary page it reads its content - unless you activated the editor mode. It's parsing all the information found and creates - based on this information - several links to OTAs, airlines and other tools. Since we are able to remove, replace and add content to the page - we make them visible and clickable in a way you choose. By default there are no background requests.

*** How to get it running ***
There are three methods to install the script. All three below run exactly the same underlying script but are listed in order of installation complexity:

Method 1: Browser Extensions
Method 2: As a UserScript
It takes a moment to get it running but after that it will start automatically everytime you visit the Matrix and we will be able to store your settings. You will need to install a script manager.

Warning: Using a script manager and installing user scripts is a potential security risk - We need to mention it here.
Step 1: Install a script manager Step 2: Install the script
See the FAQ of your script manager how to install the script.
  • Through GreasyFork
  • Through OpenUserJS
  • Through GitHub: you should be asked whether you want to install it - make sure your script manager is running.
Method 3: iOS Safari Shortcut

Get the "Add ITA Matrix Powertools" Shortcut

Instructions much be run each time
  • Open ITA Matrix in Safari on your iPhone or iPad
  • Tap on the Share button in the bottom navigation
  • Scroll down through all the actions
  • Select Add ITA Matrix Powertools

Method 4: Console/Debug mode
You need to access the command line of your browser to execute the script. You can use either the regular version or the minified version. Just copy the entire text.

Chrome:
  1. Open Chrome DevTools: developer.chrome.com
  2. Switch to the console tab
  3. Paste the script into the command line: developer.chrome.com
  4. Run it
Firefox:
  1. Open the web console: developer.mozilla.org
  2. Switch to the console tab
  3. Paste the script into the command line: developer.mozilla.org
  4. Run it
Internet Explorer:
  1. Open the web console by pressing F12
  2. Switch to the console tab
  3. Paste the script into the command line - at the very bottom
  4. Run it by pressing the green triangle

*** How to use it ***
Once the script is running you should see a new line above the ITA logo:
Code:
Passengers (1a) Settings (v0.18) (Cabin: Auto)
As long as you see this line, there is no need to reexecute the script. Make sure to get used to the "Settings"-feature -> just click on Settings. Within the settings menu you can configure the script towards your needs/preferences. Enabling/disabling features and/or setting standard editions of providers on the fly. When using a script manager these settings should be stored and automatically load as soon as you visit matrix.itasoftware.com - but the passengers as well as the cabin detection will not be stored!
Your settings are "reloaded" everytime the itinerary details show up! If you want to use other settings, just get back to the flight selection and reselect your flights - the new settings will be used. This belongs to the passengers and cabin detection as well

Passengers:
The passenger count will not be taken from your search results! Use the passenger config on the upper left and make sure they are set before you get to the itinerary details. We had to do it this way because some providers require the age of children. But always make sure to search for the equivalent passenger count. There might be seat availability for one passenger but not for two!

Cabin detection:
You should set the cabin on the upper right to the appropriate main cabin you are looking for. Sometimes you will have economy/business class segments in mainly business/first class itineraries. These mixed itineraries make it hard to autodetect the main cabin - so you can set it manually.

*** Background requests - Privacy issues ***
Some features require to contact other servers. As long as you do not activate any of the autoload features within the settings there won't be any automatic background requests. You will have to initiate them manually. The following list will tell which features are contacting what server and what information will be transferred. All websites will know you are using this script und you are currently using the Matrix - what by the way applies to the link targets you click as well.
  • GCM-Map in inline mode - contacting gcmap.com (non SSL) providing full route data
  • WhereToCredit.com mileage accrual breakdown - contacting wheretocredit.com (non SSL or SSL - depending on whether you use the Matrix with or without SSL) providing full itinerary
  • Skimlinks affiliate links - loads a js script to adds affiliate ids to some links if and only if the "Support this tool" setting is enabled. If it is disabled, no external scripts are loaded
*** FT-Posts you should read ***
General statement regarding this script: click
How to fix class names yourself: click
Problems and limitations regarding pricing itins: click

*** Contributors ***
paul21, Steppo, IAkH, 18sas, Benchmarc and others!

I'd like to give special thanks to paul21 for starting this idea.

*** Latest Version ***
GitHub Repo

OR install directly: Executable Version minified

FYI
Steppo & IAkH (Adam Hwang) have full access to this repository.

Discussion - written by paul21:
The original posting can be found here, related to building links on delta's booking engine. The script scrapes the flight info from the itinerary (flight numbers, dates, class of service, price) and builds a link string to two booking engines (Orbitz/Delta). These links are the same links used by Google Flights (owns ITA) , Kayak, et. al. to drive purchases. I used the Google referrer codes in the scripts, so they should get the commission. It's beyond me why ITA doesn't have some form of purchase link. This a userscript, and like an ad-blocker, it modifies the way a page is viewed by editing DOM objects in the browser. Keep in mind that this tool is meant to do something you already do yourself, but to save time in the process. Any tickets issued by Orbitz/DL via these links could be issued via phone or web search. If the links work, you are avoiding a phone booking fee potentially.







Print Wikipost

ITA-Matrix-PowerTools - Userscript for Orbitz/DL/UA/AA/BA/CZ/IB/LA/LH/LX/TK

Old Jan 21, 2018, 8:01 am
  #526  
 
Join Date: Jan 2013
Location: NYC
Posts: 538
Originally Posted by kacheng
Hi,

I'm having some issues with the handover to Lufthansa with ITA-Matrix-Powertools v0.27.
Because of upgrade possibility I'm choosing a specific booking class, however after the handover LH.com always goes into the lowest possible.
Anyone else having this issue? I'm not 100% sure, but I think it worked correctly before.

Any other way to force booking classes?

Thanks
Originally Posted by LacMajeur
I am facing the same issue
Can either of you provide an example itinerary? I think I can replicate the problem, but I am not sure.

As a general rule, making sure that you are on the latest released version of the userscript and providing a screenshot or text itinerary are crucial to helping resolve these sorts of problems.
st1575 is offline  
Old Jan 21, 2018, 8:09 am
  #527  
 
Join Date: Dec 2017
Posts: 833
Originally Posted by st1575
Did you click on "Resolve Timezones" before using the AA links? The latest version (0.28) introduced some changes to fix AA links, but you may still need to "resolve timezones" for AA.

Feel free to post an itinerary in "text" mode.
Yes, that did the trick - thanks. Looks great.

Although just noticed the OTP to PHX option. Might have a look at that instead

Thanks again.
zen100 is offline  
Old Jan 26, 2018, 2:59 am
  #528  
 
Join Date: Nov 2017
Posts: 167
Originally Posted by st1575
Can either of you provide an example itinerary? I think I can replicate the problem, but I am not sure.
As a general rule, making sure that you are on the latest released version of the userscript and providing a screenshot or text itinerary are crucial to helping resolve these sorts of problems.
I am using v0.28. For example, any cross-border D fare with Lufthansa will lead to the cheaper P fare if it exists.

Again, many thanks for your work


Last edited by LacMajeur; Jan 29, 2018 at 3:18 am Reason: screen capture link update
LacMajeur is offline  
Old Jan 26, 2018, 10:35 am
  #529  
 
Join Date: Jan 2013
Location: NYC
Posts: 538
Originally Posted by LacMajeur
I am pretty sure I did reply to your message, but I can't see my answer anymore.

I am using v0.28. For example, any cross-border D fare with Lufthansa will lead to the cheaper P fare if it exists.
I am able to replicate this, but I think this is a limitation of the LH site; it seems to be ignoring the specific fare classes that are being passed. For this particular itinerary, LH is quoting 997 CHF, which is just a strange number.

As a test, I tried to book this on some other LH group sites since the D fare can be ticketed on LX, SN, or OS. LX gives the same 997 CHF price and tells me that it wants to book into P on the GVA-LUX flights and into C on the return. Of course, if you plug the flights into ITA specifying those classes, it returns a price of 982.20 CHF and the fine details don't match with the breakdowns on LH or LX.

Trying to even bring up the itinerary on OS and SN sites failed miserably.
st1575 is offline  
Old Jan 26, 2018, 11:32 am
  #530  
 
Join Date: Nov 2017
Posts: 167
Thanks a lot!
I find the right fares using FareFreaks to Expedia, if and only if the trip is limited to five segments maximum.
LacMajeur is offline  
Old Jan 31, 2018, 1:09 pm
  #531  
 
Join Date: Jan 2018
Posts: 1
Hi I'm having trouble getting the AA, Priceline and CheapoAir links to work using PowerTools. CheapOAir sends me to a $1369 ticket although I found the same flight on CheapoAir myself for $692. Any idea how I can find this fare? I've tried rebuilding and tweaking the urls but no luck.
Fare rules say price expires today so any help GREATLY appreciated!!
Thanks guys!

I'm new so not allowed to post link, but the flight info is LAX-DPS March 24th China Eastern Return DPS-LAX April 3 $469.61
Fare Construction (can be useful to travel agents)
LAX MU X/SHA MU DPS 97.50TPRUSS MU X/SHA MU LAX 97.50TPRUSS NUC 195.00 END ROE 1.00 XT 5.65YC 7.00XY 3.96XA 36.60US 5.60AY 28.40CN 16.80D5 166.00YQ 4.50XF LAX4.50

Message me and I'll send a link or photo of the ITA search, wish it would let me at least post a photo :/

Last edited by tropicalsurfer25; Jan 31, 2018 at 2:25 pm
tropicalsurfer25 is offline  
Old Feb 1, 2018, 1:10 am
  #532  
 
Join Date: Oct 2013
Posts: 639
Originally Posted by tropicalsurfer25
Hi I'm having trouble getting the AA, Priceline and CheapoAir links to work using PowerTools. CheapOAir sends me to a $1369 ticket although I found the same flight on CheapoAir myself for $692. Any idea how I can find this fare? I've tried rebuilding and tweaking the urls but no luck.
Fare rules say price expires today so any help GREATLY appreciated!!
Thanks guys!

I'm new so not allowed to post link, but the flight info is LAX-DPS March 24th China Eastern Return DPS-LAX April 3 $469.61
Fare Construction (can be useful to travel agents)
LAX MU X/SHA MU DPS 97.50TPRUSS MU X/SHA MU LAX 97.50TPRUSS NUC 195.00 END ROE 1.00 XT 5.65YC 7.00XY 3.96XA 36.60US 5.60AY 28.40CN 16.80D5 166.00YQ 4.50XF LAX4.50
Message me and I'll send a link or photo of the ITA search, wish it would let me at least post a photo :/
Cheapest I can see on your dates on ita is this:
https://i.imgur.com/GkSMloo.png
fuyao is offline  
Old Feb 7, 2018, 7:08 pm
  #533  
 
Join Date: Feb 2018
Posts: 3
Greetings!

I've been using ITA and PowerTools for many years to locate/purchase tickets for our annual trip to Jamaica. Never had a problem getting the same price or lower when moving from ITA to Delta until today. Today, I find the flights for both of us, go to Delta, see the correct itinerary, go through the booking process, then am rewarded with "Uh-oh! We're sorry, but the fare for the flights you selected is no longer available. Please search again to view and select alternate flights. 100503R" I can't seem to get it to work at all! Can anyone please help? What am I doing wrong??

Passenger 1:

Fare Construction (can be useful to travel agents)
SEA DL X/ATL DL MBJ 532.00ZNNQ7NFZ DL X/ATL DL SEA 532.00ZNNQ7NFZ NUC 1064.00 END ROE 1.00 XT 5.65YC 7.00XY 3.96XA 36.60US 11.20AY 22.54EK 5.00EL 20.00HG 3.00JT 20.00QK 8.00UC 35.00WD 13.50XF ATL4.50 SEA4.50 ATL4.50

Passenger 2:

Fare Construction (can be useful to travel agents)
SEA DL X/ATL DL MBJ 724.00MNXA0UFY DL X/ATL DL SEA 734.00MNWA0UFY NUC 1458.00 END ROE 1.00 XT 5.65YC 7.00XY 3.96XA 36.60US 11.20AY 22.54EK 5.00EL 20.00HG 3.00JT 20.00QK 8.00UC 35.00WD 13.50XF ATL4.50 SEA4.50 ATL4.50

If you put this in the ITA link, you will see it: view-details:research=SEAMBJ-MBJSEA;solution=03BRfwPFMUzOUl3oZArMSUN/Sqil3HaSqQONWlvaQgv4i800q

I also wish I could attach URL's or screenshots, happy to provide if necessary!

Thank you!
Greg
gregma is offline  
Old Feb 8, 2018, 1:08 am
  #534  
 
Join Date: Oct 2013
Posts: 639
Originally Posted by gregma
Fare Construction (can be useful to travel agents)
SEA DL X/ATL DL MBJ 532.00ZNNQ7NFZ DL X/ATL DL SEA 532.00ZNNQ7NFZ NUC 1064.00 END ROE 1.00 XT 5.65YC 7.00XY 3.96XA 36.60US 11.20AY 22.54EK 5.00EL 20.00HG 3.00JT 20.00QK 8.00UC 35.00WD 13.50XF ATL4.50 SEA4.50 ATL4.50

Passenger 2:

Fare Construction (can be useful to travel agents)
SEA DL X/ATL DL MBJ 724.00MNXA0UFY DL X/ATL DL SEA 734.00MNWA0UFY NUC 1458.00 END ROE 1.00 XT 5.65YC 7.00XY 3.96XA 36.60US 11.20AY 22.54EK 5.00EL 20.00HG 3.00JT 20.00QK 8.00UC 35.00WD 13.50XF ATL4.50 SEA4.50 ATL4.50
A screenshot would be best because we don't even know at which flights + dates you're looking at.
fuyao is offline  
Old Feb 8, 2018, 7:21 am
  #535  
 
Join Date: Feb 2018
Posts: 3
Originally Posted by fuyao
A screenshot would be best because we don't even know at which flights + dates you're looking at.

I would love to do that, unfortunately, no can do because I'm too new on this login. I can give the itinerary...


Itinerary
Seattle (SEA) to Montego Bay (MBJ) — Tue, Aug 21Load mileage
Long layoverOvernight flightPreferred cabin is not available on some flights.

Seattle (SEA) to Atlanta (ATL) — Tue, Aug 21
Delta 2580
Dep: 3:30 pm
Arr: 11:21 pm


Atlanta (ATL) to Montego Bay (MBJ) — Wed, Aug 22
Delta 727
Dep: 10:45 am
Arr: 12:35 pm


Montego Bay (MBJ) to Atlanta (ATL) — Sat, Sep 1
Delta 360
Dep: 12:00 pm
Arr: 3:54 pm


Atlanta (ATL) to Seattle (SEA) — Sat, Sep 1
Delta 2725
Dep: 8:40 pm
Arr: 11:07 pm
gregma is offline  
Old Feb 8, 2018, 1:40 pm
  #536  
 
Join Date: Jan 2013
Location: NYC
Posts: 538
Originally Posted by gregma
I would love to do that, unfortunately, no can do because I'm too new on this login. I can give the itinerary...
Can you also provide details on your search (e.g., cabin class, etc.)? I can't seem to replicate it even though you have included the fare basis.

Also, it would be helpful to have a copy of the "Delta" URL the userscript is generating to send you to Delta. Feel free to PM it if you are concerned about harvesting or something.
st1575 is offline  
Old Feb 9, 2018, 2:12 am
  #537  
 
Join Date: Oct 2013
Posts: 639
So you are looking at:
passenger 1: ZNNQ7NFZ
passenger 2: MNXA0UFY

This is the cheapest biz itinerary on DL on ita for your given dates + flight numbers:
https://i.imgur.com/jrRaluT.png

Different classes than yours and different basefares, but that doesn't matter since I already see the mistake you made.
You have a different fare construction for pax 1 and 2, meaning 2 different basefares (=and 2 different fare classes) since ITA says there is only 1 seat left in the cheaper class for 1431$ total and one for 1474$

There is not a single OTA, airline website or any automatic booking engine that is out there that is able to book 2 or more passengers on the same booking with different classes. All passengers need to be booked in the same class. This is why you are always getting the error on the DL website when coming from ITA.

Workaround:
a) Book each passenger individually
b) Book both passengers together but in the same booking class by forcing the basefare / fare class to the more expensive fare for both of you, for example:

SEA ::DL2580 ATL DL727 / airlines DL; f DL..KNXJ0NFY; minconnect 683; maxconnect 685
MBJ ::DL360 ATL DL2725 / airlines DL; f DL..MNWA0UFY; minconnect 285; maxconnect 287

Put the 1st line in the "Departing from" line
2nd line in "Destination"
then it will force both passengers in the more expensive basefare where still 2 seats are left.

Thats what it would look like for the search you did in Z class (your search for passenger 1), but this one is sold out already.
SEA ::DL2580 ATL DL727 / airlines DL; f DL..ZNNQ7NFZ; minconnect 683; maxconnect 685
MBJ ::DL360 ATL DL2725 / airlines DL; f DL..ZNNQ7NFZ; minconnect 285; maxconnect 287
Bohemian1, WolfvanWeen and andydd like this.
fuyao is offline  
Old Feb 9, 2018, 2:43 am
  #538  
 
Join Date: Dec 2013
Location: Valencia, Spain
Programs: Pascal and Python, no C++
Posts: 738
compliments, fuyao, that is masterclass
WolfvanWeen is offline  
Old Feb 9, 2018, 7:14 am
  #539  
 
Join Date: Feb 2018
Posts: 3
Originally Posted by fuyao
So you are looking at:
passenger 1: ZNNQ7NFZ
passenger 2: MNXA0UFY

Different classes than yours and different basefares, but that doesn't matter since I already see the mistake you made.
You have a different fare construction for pax 1 and 2, meaning 2 different basefares (=and 2 different fare classes) since ITA says there is only 1 seat left in the cheaper class for 1431$ total and one for 1474$

There is not a single OTA, airline website or any automatic booking engine that is out there that is able to book 2 or more passengers on the same booking with different classes. All passengers need to be booked in the same class. This is why you are always getting the error on the DL website when coming from ITA.

Workaround:
a) Book each passenger individually
b) Book both passengers together but in the same booking class by forcing the basefare / fare class to the more expensive fare for both of you, for example:

SEA :L2580 ATL DL727 / airlines DL; f DL..KNXJ0NFY; minconnect 683; maxconnect 685
MBJ :L360 ATL DL2725 / airlines DL; f DL..MNWA0UFY; minconnect 285; maxconnect 287

Put the 1st line in the "Departing from" line
2nd line in "Destination"
then it will force both passengers in the more expensive basefare where still 2 seats are left.

Thats what it would look like for the search you did in Z class (your search for passenger 1), but this one is sold out already.
SEA :L2580 ATL DL727 / airlines DL; f DL..ZNNQ7NFZ; minconnect 683; maxconnect 685
MBJ :L360 ATL DL2725 / airlines DL; f DL..ZNNQ7NFZ; minconnect 285; maxconnect 287
That did it! That was the most challenging I've ever been through, I chose 1st class for both passengers on all legs through ITA during the search. I finally found through the powertools someone that would do just that. Of course once it got booked through them, I saw that the last leg had been booked coach "because there was no business class on the last leg. After an hour or so, they finally got that sorted out and for an extra $48 got First class on all legs. Cost an extra $200 over the original doing it that way, but I can live with it. Interesting that ITA chose a mixed class ticket (probably did this because there was only one seat at the lower amount, then it changed class for the 2nd passenger. Wound up with first leg P class, 2nd leg D class, 3rd leg D class, 4th leg P class.

WOW, I can't even include a URL in a QUOTE. This is the second attempt

Thanks!
-Greg
gregma is offline  
Old Feb 10, 2018, 5:53 pm
  #540  
 
Join Date: Jul 2016
Posts: 145
Originally Posted by fuyao
So you are looking at:
passenger 1: ZNNQ7NFZ
passenger 2: MNXA0UFY

This is the cheapest biz itinerary on DL on ita for your given dates + flight numbers:
https://i.imgur.com/jrRaluT.png

Different classes than yours and different basefares, but that doesn't matter since I already see the mistake you made.
You have a different fare construction for pax 1 and 2, meaning 2 different basefares (=and 2 different fare classes) since ITA says there is only 1 seat left in the cheaper class for 1431$ total and one for 1474$

There is not a single OTA, airline website or any automatic booking engine that is out there that is able to book 2 or more passengers on the same booking with different classes. All passengers need to be booked in the same class. This is why you are always getting the error on the DL website when coming from ITA.

Workaround:
a) Book each passenger individually
b) Book both passengers together but in the same booking class by forcing the basefare / fare class to the more expensive fare for both of you, for example:

SEA :L2580 ATL DL727 / airlines DL; f DL..KNXJ0NFY; minconnect 683; maxconnect 685
MBJ :L360 ATL DL2725 / airlines DL; f DL..MNWA0UFY; minconnect 285; maxconnect 287

Put the 1st line in the "Departing from" line
2nd line in "Destination"
then it will force both passengers in the more expensive basefare where still 2 seats are left.

Thats what it would look like for the search you did in Z class (your search for passenger 1), but this one is sold out already.
SEA :L2580 ATL DL727 / airlines DL; f DL..ZNNQ7NFZ; minconnect 683; maxconnect 685
MBJ :L360 ATL DL2725 / airlines DL; f DL..ZNNQ7NFZ; minconnect 285; maxconnect 287
Clever use of script. but may I ask why did you use keyword airline?
Additionally, since you already specified the flight numbers, the minconnect and maxconnect parameters were probably unnecessary (except of course there's a stopover allowed in the fare and the possibility to get the next day's flight instead).
andydd is offline  

Thread Tools
Search this Thread

Contact Us - Manage Preferences - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service -

This site is owned, operated, and maintained by MH Sub I, LLC dba Internet Brands. Copyright © 2024 MH Sub I, LLC dba Internet Brands. All rights reserved. Designated trademarks are the property of their respective owners.