What does it mean?
This article explains how to connect and map your TourCMS products to Viator so that:
Availability and pricing in TourCMS match what is shown on Viator.
Bookings made on Viator are sent automatically into TourCMS with the correct product, date, time, option and rate type.
Tickets and barcodes are generated consistently and, where configured, taken directly from TourCMS instead of Viator creating separate codes.
The core of the mapping process is the Viator mapping code and the “four pillars of mapping”:
Account ID
Tour ID
Offer (departures / starting times / supplier notes)
Rates
For a flawless connection, all four of these must be aligned and consistent between TourCMS and Viator:
The same tours (Account ID and Tour ID) must exist in both systems.
Departure structure (single or multiple times, options, supplier notes) must match.
Rate types (e.g. Adult / Child / Infant / Senior) must be compatible.
Use this article when:
You already have a contract in place with Viator.
You have connected with Viator in the TourCMS Marketplace. For more information, please visit this article.
You are ready to map existing TourCMS products to Viator products and options, or need to verify that the current mapping is correct.
What should I do?
Before you start, make sure you meet these prerequisites:
You already have a commercial agreement and supplier account with Viator in place.
-
Your products are fully created and configured in the Viator extranet, including:
Schedules & prices (departure structure, times, options)
Tickets (and “Barcode from reservation system” ready to be set to TourCMS, if applicable)
-
The corresponding tours exist in TourCMS and are properly configured with:
Correct availability and pricing
The appropriate Viator mapping code under Operation / Suppliers
-
You are ready to connect existing TourCMS products to existing Viator products/options, rather than creating new products from scratch.
The TourCMS Support team are able to assist with that after which your products are ready to be mapped between your TourCMS account and the Viator extranet.
For flawless mapping, keep in mind what we call “the four pillars of mapping”: AccountID, TourID, Offer (starting times /supplier notes), and Rates. This information should always be consistent in both systems.
Here’s a quick guide on how to map your products yourself.
1. Fill in the Viator mapping codes on TourCMS
Go to one of the products that will be distributed through Viator, click on Setup -> Operation / Suppliers
Add the Viator mapping code in the respective field to enable the system to send this tour’s information to the Viator extranet. The code consists of two main parts:
Important: After adding the Viator mapping code in TourCMS, please wait a couple of hours for both systems to synchronise before attempting the product mapping on the Viator portal.
The first part of the Viator mapping code will be the UniqueID of the tour, which you can find in the Operation/Suppliers tab. The Unique ID is formed by two letters, your account ID and the tour ID. For example, if the Unique ID of a tour is PA_14091_4, we know the Account ID is 14091 and the Tour ID inside that account is 4.
The second part of the Viator mapping code will depend on how your tour’s departures are configured, based on starting times and supplier notes.
There are four main types of Viator mapping codes depending on departure configuration:
1.1. Single departure per day
Viator mapping code = UniqueID
If a tour has one departure per day, there is no need to add anything to the Unique ID of the tour.
1.2. Several departures per day with different departure times.
Viator mapping code = UniqueID|MAP_TIME
If you have several departures per day differing only by start time, you should add |MAP_TIME to the Unique ID. Every time-slot in TourCMS is mapped to a time-slot in Viator.
1.3. Several timeslots per day (mapping to departure codes)
Viator mapping code = UniqueID|MAP_SUPPLIER_OC_TO_DEPARTURE
Viator can send a SupplierOptionCode in their availability request. If (by chance) you have the codes as your departure codes (in TourCMS) then we can map them directly. In the product code box in TourCMS, place UniqueID|MAP_SUPPLIER_OC_TO_DEPARTURE, where UniqueID should be the Viator product code for the tour.
1.4. Several timeslots per day with different supplier notes (one departure time per date or no set times in TourCMS and on Viator):
Viator mapping code = UniqueID|MAP_SUPPLIER_OC_TO_SUPPLIER
If you have several departures per day with no time set or starting at the same time but with different supplier notes (for example, multilingual tours), you need to add |MAP_SUPPLIER_OC_TO_SUPPLIER.
In the example below, as starting times are the same, it is not possible to match those to departures with a time-slot in Viator, so you must match each supplier note with an option in Viator.
1.5. Several start times per day with different supplier notes (multiple start times per date):
Viator mapping code = UniqueID|MAP_SUPPLIER_OC_TO_SUPPLIER_PLUS_TIME
If you have several departures per date with different start times plus with different options (for example, multilingual tours), you need to add |MAP_SUPPLIER_OC_TO_SUPPLIER_PLUS_TIME.
For example, a cruise departing at 7:30 pm and 9 pm each day with options of Dinner only / Dinner and Drinks / Dinner, drinks and window table. As the starting times are more than one per day with different start times, Viator's system needs to be triggered to send both option and time when booking for bookings to enter TourCMS into the correct timeslot. Please note this means that each option (supplier note) in TourCMS would require its own Option on Viator portal.
1.6. Several start times per day with unique codes for each departure (e.g., "EN1300" or "EN1700"):
This configuration is more complex and requires assistance from our Support team. Please refer to this support article for a step-by-step guide on how to map these types of tours.
2. Connect your products on the Viator extranet.
Note: For this step you must have created and set up your products on the Viator extranet and added the Viator mapping codes in TourCMS.
2. 1. Go to Viator portal and locate the product you want to connect to TourCMS. Ensure that Schedules & prices tab holds the same departure schedule as TourCMS does.
Please note Viator's calendar displays departures as per what is loaded under Schedules & prices on Viator portal. Departures are not pulled in automatically from TourCMS.
2. 2. Make sure to check if Tickets tab is amended to take codes from TourCMS. If not amended to Yes under Barcode from reservation system, Viator will continue to generate their own codes on Viator vouchers.
Default setting on Viator is one ticket per booking. If your subsystem is sending TourCMS 1 x code per unit booked for a product, please ensure this is correctly reflected on Viator portal under Tickets/Ticket details (as shown on screenshot below). If not done, Viator will again generate their own code per booking as it receives per unit codes from TourCMS.
2. 3. Only after the above 2 actions are taken, go to tab Product connection > Connect
Click on Select a product to display a list of your products in TourCMS with their name and UniqueID. Only the tours with a Viator mapping code added in TourCMS will be shown in this list.
In case you are mapping a tour with a single departure per day, choose the correct product from the list, and voilà! The connection is done.
Multiple start times per day - as long as you have configured the Schedules and prices tab on Viator and correctly added the Viator mapping code in TourCMS, the times will be synchronized automatically when you choose the product from the list and connect it. Please note that if there are discrepancies shown here - i.e. 10 am exists on Viator, but does not exist in TourCMS, you need to delete it from Viator portal. Otherwise, Viator will send bookings via email for this start time that does not exist in TourCMS.
If the product has different options and different supplier notes, you will need to created different options on Viator portal under Schedules and prices.
Then, in product connection, you will be shown those options so you can map each one with its corresponding time or supplier note. Please note mapping on TourCMS will need to end on
3. Rate Types.
Keep in mind that rates also need to be the same in TourCMS and Viator. Many OTAs like Viator have a specific catalog of rate types (for example: adult, child, infant, senior), meaning that any other rates won’t be valid.
Troubleshooting
Use this checklist if your Viator–TourCMS connection is not working as expected.
-
Product is missing from the “Product connection” list on Viator
Check in TourCMS: Has the Viator mapping code been filled in for this tour under PRODUCTS > TOURS > TOUR SETUP > OPERATION / SUPPLIERS ?
Reminder: Only tours with a Viator mapping code in TourCMS appear in the Viator connection list.
-
Bookings are coming through for the wrong time or not entering the correct timeslot
-
Confirm that the Viator mapping code matches your departure structure:
Single departure: UniqueID
Multiple departures (time-based only):
UniqueID|MAP_TIMESupplier option codes mapped to departures:
UniqueID|MAP_SUPPLIER_OC_TO_DEPARTURESeveral options with the same time or no time:
UniqueID|MAP_SUPPLIER_OC_TO_SUPPLIERSeveral times plus different options:
UniqueID|MAP_SUPPLIER_OC_TO_SUPPLIER_PLUS_TIME
On Viator, open Schedules & prices and check that times and options match exactly what you have in TourCMS.
Remove any departure times on Viator that do not exist in TourCMS (otherwise Viator will send bookings by email for those mismatched times).
-
-
Times in TourCMS and Viator do not match
In Viator’s Schedules & prices tab, ensure you have manually configured the same schedule as in TourCMS. Viator does not pull the schedule automatically from TourCMS.
If you update times in TourCMS, make sure you mirror those changes in Viator and re-check the mapping code.
-
Tickets / barcodes are not coming from TourCMS
Go to the Tickets tab for the product in the Viator portal.
Ensure “Barcode from reservation system” is set to “Yes” so Viator takes the code from TourCMS rather than generating its own.
If TourCMS is sending one code per unit (per person), make sure Viator’s ticket settings reflect that (not “one ticket per booking” if that does not match your TourCMS configuration).
-
Complex departure codes such as “EN1300”, “EN1700”, etc.
This configuration requires additional setup beyond standard mapping codes.
Follow the dedicated Viator partial mapping: Support for Complex Departure Codes and, if needed, contact Support for help.
-
Some options or languages are missing when connecting the product
Check that each supplier note / option in TourCMS has a corresponding Option in Viator under Schedules & prices.
Ensure the mapping code you use (for example |MAP_SUPPLIER_OC_TO_SUPPLIER or |MAP_SUPPLIER_OC_TO_SUPPLIER_PLUS_TIME) is appropriate for your structure.
In Product connection on Viator, verify that each option is explicitly mapped to the relevant time or supplier note in TourCMS.
-
Rates are rejected or do not book correctly
Confirm that your rate types in TourCMS (e.g. Adult, Child, Infant, Senior) match Viator’s supported catalogue.
Avoid creating custom rate names that Viator does not accept.
Frequently asked questions (FAQs)
➕ Can I map several TourCMS products to a single product on Viator?
Yes. You can configure one Viator product with several Options (e.g. Málaga, Seville, Granada)
and map each option to a different TourCMS product.
In the Product connection tab on Viator, connect:
- Option 1 (e.g. Málaga) → TourCMS product ID 1
- Option 2 (e.g. Seville) → TourCMS product ID 2
- Option 3 (e.g. Granada) → TourCMS product ID 3
This works the same way as connecting options in Viator to supplier notes in TourCMS, but you are connecting to separate products instead.
➕ Can I map pick-up points between TourCMS and Viator?
Pick-up points can be mapped between TourCMS and Palisis. For details on how to configure this, please refer to this article: https://support.tourcms.com/hc/en-us/articles/9841618690193-How-to-map-pickup-points-article-
➕ Do I need to create and configure my products in Viator before mapping?
Yes. For mapping to work:
- The product must exist and be fully set up on the Viator extranet (including Schedules & prices and Tickets).
- The corresponding product must exist in TourCMS and have a Viator mapping code configured.
- Only then should you use the Product connection tab in Viator to connect the two.
➕ Why do some departures still appear on Viator after I removed them from TourCMS?
Viator does not automatically remove or update departures when you change them in TourCMS. If a time exists on Viator but not in TourCMS:
- Edit the product in the Viator portal.
- Go to Schedules & prices and manually delete any times that you no longer operate in TourCMS.
- Otherwise, Viator may send bookings by email for times that TourCMS does not recognise.
➕ What should I check first if mapping is not working at all?
Start with these steps:
- Confirm your Viator Supplier ID and API key are correctly entered in TourCMS.
- Check that a Viator mapping code has been set for the TourCMS product.
- Make sure the corresponding product on Viator is active and correctly configured under Account → Connectivity with TourCMS chosen as your reservation system.
- Re-open the Product connection tab on Viator and try mapping again.
Related articles
For more details on specific configurations, see the related articles below.
Viator Batch and Real Time Pricing
Connecting your Viator supplier to TourCMS
Viator partial mapping: Support for Complex Departure Codes