How to map APIs
Last updated: November 17, 2025
Airbnb Experiences
Receiving requests
Authorization Process
- Connectivity team will reach out to the supplier using the “Airbnb – Connect Now” macro.
- Add the record to AT with a “Requested” status. To avoid duplicates, always search in the “Master” queue in Airtable to see if the record was previously added. See help page on adding records to AT and API fee verification.
- Director-level dashboard user needs to click Connect Now under Settings → Integrations → OTA Connections → Airbnb. This triggers an authorization process within their Airbnb account.
- Confirm that the director-level dashboard user has View Channel Platform configuration –> View OTA connections permissions enabled under the Setup section. This allows them to see the OTA Connections section of the dashboard. Example.
- When the authorization is successful, the button on the authorization card in FareHarbor will say “Connected.”
- This will trigger a ticket to the API Connectivity ZD queue with subject line “Airbnb Authorization for shortname.” This email will include the supplier’s Airbnb Host ID.
- Check that the default currency used by the location set on each activity matches the currency on the supplier’s dashboard. If all Airbnb activities have a currency mismatch issue, send the “Airbnb – Currency Mismatch” macro and set the status to ‘on hold” with an issue status of ‘currency mismatch’ in Airbnb.
- Update the AT record to a “new” status following the guidelines here.
- Add the Host ID to the Company name in Airtable.
- If the supplier does not specify the items they’d like to connect, we will map based on the activities that are published within their Airbnb Host account. ƒ If there are no active products in Airbnb follow the steps outlined here instead.
Note: At this time, we cannot connect multiple Airbnb accounts to one FareHarbor dashboard. Suppliers with multiple Airbnb accounts will need to migrate all items to a single Airbnb account (beware of timezone issues!) or create separate dashboards for each Airbnb account. You can connect multiple FareHarbor dashboards to one Airbnb account by mapping external channel companies within the same channel company mapping.
Dashboard prep
- Prep for the Airbnb affiliate to be added to the Dashboard (if it’s not there already).
- Build the Affiliate – API permission group and the Default – API Cancellation Policy if needed. See examples here and here.
- Add a 20% billing sheet. If you cannot find one, add a Billing 20% invoice sheet following the setup here.
- Use the Online price sheet if you need to add the price sheet manually. If you need to create an Airbnb-specific price sheet, duplicate from the online price sheet as well and rename the copy “Airbnb.”
- Note: Price schedules are not supported.
Starting Mapping
- Claim a company from the “New” status in the Queue to Connect. Work from your individual queue prioritizing by SLA date (see here). Make sure to fill out the start date on Airtable.
- Add the Host ID to the Channel Company name (Ex. Tour Company – 123456789).
- Log in to the Airbnb Partner Portal using your FareHarbor email address.
- Within the “Hosts” section of the Airbnb Partner Portal, search for the Host ID.
- Click on the Host ID to see a list of active experience listings.
- ALWAYS compare each item in FareHarbor to each experience listing in Airbnb. See potential mapping issues below.
Pre-Item Mapping
Check for the following in the Airbnb Partner Portal.
Currency Mismatch
Check that the default currency used by the location set on each activity matches the currency on the supplier’s dashboard.
If there are some activities on the Host’s account with a currency mismatch issue and some activities without a currency mismatch issue, map the activities without the issue.
Note the issue in Airtable and the go-live email which activities could not be connected due to the currencies.
Timezone Mismatch
Airbnb Activities located in a different timezone than the FareHarbor dashboard cannot be connected.
To find the Airbnb activity location, navigate to “Activity Listing Details” and look for “Location.”
The city that’s listed in Airbnb needs to be in the same timezone as the FareHarbor dashboard.
If all activities have a timezone issue, use the “Airbnb – Timezone Mismatch” macro and update the AT status to “On hold” with an issue status of “Timezone mismatch.”
If only some activities have a timezone issue, map the activities without a timezone mismatch, and note the activities that couldn’t be connected due to a timezone mismatch in the go-live email.
Multiple Languages
We are unable to connect Airbnb activities that offer multiple language options.
To find the languages that are offered on an activity, navigate to “Activity Listing Details” and look for “Offered Languages.”
Send the macro “Multiple Languages Settings” and update the AT record to “Mapped – Issue – Waiting on Supplier.”
Google Calendar
Airbnb Activities that are connected to Google calendar cannot be connected to FareHarbor’s calendar via the availability sync.
- To find out if an activity is connected to Google calendar, navigate to “Activity Listing Details” and search for the following alert:

- Suppliers must remove the integration with Google calendar in their Host account in order to connect to their FareHarbor calendar. Send the “Airbnb – Google Calendar Disconnect” macro if activities are connected to Google calendar.
Mapping Public Offers
- Create the channel company and channel items using the Airbnb auto-map feature. This can be found in the item settings under the Integrations section. Under Channel Settings select “Map item to Airbnb” and save changes. Please make sure the “auto sync item updates” is selected.
- This will automatically add the affiliate to the Dashboard. The affiliate will have the API cancellation policy, API permissions and the Airbnb invoice sheet assigned if those were available on the dash, and enable automatic reminder and confirmation emails.
- Add the Airbnb Activity ID at the front of the channel item name.
- Map the customer types that are listed on Airbnb. To find this information, navigate to the Activity page (see steps 3 & 4 from Mapping Prep). Available customer types are selectable in the activity booking flow underneath “Guests.” If private groups are available, note the issue in AT and move on to the next item.
- Adult, Child, and Infant CTs that are added to future avails are mapped automatically with corresponding ticket category.
- If there are no standard mappable CTs the auto-mapping will not map any channel customer types. CTs will need to be mapped manually.
- Map an “All Day” channel option if not mapped already. Airbnb will pull start times from FareHarbor. (example)
- As a last step, check to see if all steps were completed on the API mapping checklist.
- Update the Airtable record with an up-to-date status. Switch the status to “check” if the mapping is ready for QC.
Mapping Private Offers
If a client doesn’t offer private groups in FareHarbor, we can and should encourage them to not offer private groups in Airbnb either. You can send the “Airbnb API – Private pricing (EN/PT)” in these cases.
Creating Private Offer Workaround
- Create API Price Sheet (duplicated from the Online), name “Airbnb,” apply to the API affiliate.
- Create Private Adult, Child, and/or Infant API CTs in Settings → Customer Types, hide on the base, make visible only on the Airbnb price sheet.
- Add the API CTs to Options and Prices on the item. Only one private adult, child, and/or infant API CT needs to be added, no need to duplicate and add mins/maxes.
- Price the CT(s) on the Base sheet according to the price on Airbnb.
- Add CT(s) to resources or create resources if needed. The resource setup should allow for per person capacity, just like Viator. Each customer type needs to use the (max use of the resource/max # of pax who can book on Airbnb).
- Restrict resources/resource requirements to same booking.
- Add a per booking maximum of 1 on the regular online private CTs on availabilities and in options and prices to avoid overbookings
- Add the Private API CTs to availabilities.
- Apply the resource requirement to availabilities if it isn’t already.
- Make sure there are no item level bookability maximums, CT capacities or manual availability capacities set. Resources need to set the capacity on the item.
- Test booking.
- Re-apply resources to existing bookings, if needed.
- Add Admin Notes!
Mapping Private Offers
- When mapping, use the private Airbnb ticket categories.
- If an Airbnb listing has both private and public offers, private and public ticket categories should be mapped under the same channel item.
Examples: Private only mapping, Public and private offers on the same activity listing
Pricing API
Not supported at this time.
Go-live steps
- Once your mapping has been checked or rechecked, connect each product to the API by adding the Activity and Offer ID to the channel item settings tab for each item. The Activity and Offer IDs can be pulled from the Airbnb Partner Portal.
- Once logged in, navigate to the Activity Listings tab and search for the supplier’s items by entering the Host ID provided by the supplier. The Activity ID will be listed under the ID column.
- To find the Offer ID, click the Activity ID link. This will open the Activity Listing Details page. From there, select the “View Offerings” link at the bottom of the page. This will take you to the Activity Offerings page, where the Offer ID can be found in the Offering ID column.
- Update the Airtable status to “Done – Live on the API” and fill in the live date.
- Update Close “Connectivity – Live” Custom field.
- Sign up the primary company contact for affiliate booking and cancellation notification emails (example)
- Send “Airbnb – API Live, Notification for Company” macro in Zendesk to the primary company contact listed in Close.
- Send a Slack in the #connectivity room that the company is now live on the Airbnb API using the “API LIVE” workflow.
Booking.com Experiences
Receiving requests
Client requests or internal requests (AM/OB/Support/CS)
Prioritization
First check the status of the record on the AT MASTER view.
- If the record has status disabled assign to NCs.
- If the record has the status Visible to Booking.com assign to the Live queue with standard SLAs.
- If there is no existing record:
- Check the dashboard if they have the FHDN-API affiliate added and if there are already items mapped with the ‘visible to booking’ setting enabled. If so, assign to Live queue.
- If there are no items mapped or none of the mapped items have ‘visible to booking’ enabled assign to NCs.
New Connections
First check if the FHDN – API affiliate has been added to the dashboard.
No FHDN Affiliate
If a supplier reaches out looking to connect with Booking and does not have an FHDN – API affiliate added to their dashboard:
- Add their record to AT with a Requested status. To avoid duplicates, always search in the Master queue to see if the record was previously added. See help page on adding records to AT and API fee verification.
- Select the “Client outreach – Booking” toggle in AT.
- Once added to AT, send the “Added to AT” macro.
- Forward their request to Channel Support to add the FHDN affiliate to the suppliers dashboard.
Note: Once the affiliate is added to the live dashboard, we will receive an automated ticket in Zendesk to initiate the mapping process
FHDN Affiliate Is Added
If a supplier reaches out looking to connect with Booking and does have the FHDN – API affiliate added to their dashboard:
- Add their record to AT with a “New” status. To avoid duplicates, always search in the Master queue to see if the record was previously added. See help page on adding records to AT and API fee verification.
- Once added to AT, send the “Added to AT” macro.
Note: Connectivity should never add an FHDN affiliate to a dashboard or make changes to the affiliate.
Auto opt-ins for newly live companies
- Tickets are automatically triggered to Connectivity’s queue when a new company goes live with the FHDN – API affiliate on the dashboard. Example. These clients have been opted in to FHDN and need to be mapped for Booking.com.
- Add their record to AT with a “New” status. To avoid duplicates, always search in the “Master” queue to see if the record was previously added. See help page on adding records to AT and API fee verification.
- No outreach necessary at this stage.
For tickets in the live queue:
Check if the requested item(s) is already mapped:
- If so, double check content for eligibility.
- If not, check content requirements and auto map eligible items.
- If there are eligible mapped items after your review – send the Booking.com – Items Visible, Notification for Company macro.
- If there are no eligible items – send the Booking.com – No Eligible Items (Content) macro. In the macro, it explicitly mentions if the client needs further assistance to update their content to call the Support team with the respective Support number.
If the client reaches out via email that they need help with updating their content, you can let them know to call our Support team for further assistance and provide the Support number again.
If for whatever reason they do not want to call Support:
Submit an Internal Support request form and specify exactly what needs to be updated for the support team to assist them further and inform the client that we’ve sent their request to our technical support team and someone will be in touch shortly.
In both cases, if the client calls into Support or we submit an internal support request, the Support team will submit a mapping request to our queue once the client item(s) meets the content requirements.
Dashboard prep
- Currently only supported for USD, GBP, and EUR.
- Check for FHDN – API affiliate (this should already be added to the majority of dashboards).
- Ensure there is a permission group exactly named Affiliate – API External. The name can be updated if needed.
- Check whether the client uses transportation on their items.
- Check if the dashboard and content is in English.
- Is there a complete primary location (Country, State or province, City, and Zip/Postal Code, Google Place ID).
Starting Mapping
Claim a company from the “New” status in the Queue to Connect. Work from your individual queue prioritizing by SLA date (see here). Make sure to fill out the start date on AT.
Since the Booking integration is through FHDN, we should be mapping all eligible items on a dashboard. If a dashboard has more than 30 items, we can limit the mapping to the top 30 best selling items.
You can pull the top selling items by going to Reports > Performance > Sales by Item, then selecting “Last Year” from the Dates dropdown and clicking Generate. Example report can be found here on the connectivitybestpractice dashboard.
Note: Since there are no bookings on the connectivitybestpractice dashboard, nothing will be displayed, but you can use it as a reference for the report setup.
Item Content and Setup Standards
All items must meet Booking.com’s content guidelines before mapping.
- All content must be in English.
- Content Builder must be enabled.
- There must be at least one photo that does not contain promotions, additional advertisements, brand logos, or similar content.
- The item name, description, headline and what’s included sections must be filled out and not include:
- References to required pricing or additional costs in custom fields. If a price is included, check whether the price preview or pricing section is filled out. If it is, remove the pricing from the item name, description, headline or what’s included section. B.com doesn’t pull price previews or other content fields.
- Promo codes, phone numbers, email addresses, URL links, have excessive capitalization, or contain excessive punctuation. Some capitalization or extra punctuation is allowed but full sentences/sections in all caps or punctuation like “!!!!!” are not permitted.
- Booking.com has 4 standard Customer Types: Infants (0–1), Children (2–17), Adults (18+), and Group (0-100). Ages will default to these ranges unless previously noted in the item description or customer type note.
“All ages” is only allowed if all customer types (Adult, Child, and Infant, or Group) are mapped and the activity truly allows all ages.
Location is added on either the Primary Location or Start Location on the Info & Policies tab. The integration will first check the primary location then waterfalls to the start location if there is no primary.
- All address fields like Country, State or province, City, and Zip / Postal Code need to be filled out
- Google place ID is required (can’t be the longer version, must match the first format listed here).
- The What’s included section must contain at least one bullet point.
All items must meet FareHarbor mapping criteria as well.
- Transportation cannot be enabled on the item or mentioned in the content
- Item is not using an opening hours (general admission) setup
- Cannot have multiple language items if the online CTs are not language specific.
- Cannot map multiple items to the same channel item mapping.
- Cannot map the same item more than once.
- Group customer types that use custom field pricing are not supported.
- Tiered pricing of any kind is not supported.
- Items with priced mandatory CFs are not supported.
- Multiple duration-based setups are supported as long as durations are not mentioned in the content and duration-specific availability is used for each length option. In these cases, you may map either to the most commonly booked duration or to the shortest duration, at your discretion.
If one of these standards is not met, skip over the item. Make a note and add an issue status to their AT record to track why it failed.
For client requests, if some or every item fails for content reasons, always reach out to the client. For opt-ins, if every item fails for tiered pricing, unsupported currency, or non-English content, no outreach is required.
Item Mapping Steps
- To create the channel company and channel items, use the “Map item to Booking.com (FHDN)” auto-map feature. Please ensure that “Auto sync item updates” is selected.
- Check that the auto mapped customer types are correct and have been added to the channel item. Currently, supported ticket categories are Adult, Child, Infant, and Group.
- Map an “All Day” channel option if not mapped already. Booking.com will pull start times from FareHarbor.
- As a last step, check to see if all steps were completed on the API mapping checklist.
For client requested connections, if there are issues, send the Booking.com – No Eligible Items (Content) macro and update the AT record to Mapped – Issue – Waiting on Supplier. Issue statuses include, but are not limited to:
- Group CF Pricing (B.com)
- Content (B.com)
- Transportation (B.com)
- Incomplete Location (B.com)
- Multi Language(B.com)
- Non-English Content (B.com)
- Unsupported currency (B.com)
- Age Ranges (B.com)
- Long Place ID (B.com)
- Product options (B.com)
- Mandatory Priced CFs (B.com)
For auto opt-ins, if there are issues, send the Booking.com – No Eligible Items (Content) macro and update the AT record to Disabled. No further follow up is needed.
Switch the status to Check if the mapping is ready for QC.
Note: In the macro, it explicitly mentions if the client needs further assistance to update their content to call the Support team with the respective Support number. If the client reaches out via email that they need help with updating their content, you can let them know to call our Support team for further assistance and provide the Support number again.
If for whatever reason they do not want to call Support:
Submit an Internal Support request form and specify exactly what needs to be updated for the support team to assist them further and inform the client that we’ve sent their request to our technical support team and someone will be in touch shortly.
In both cases, if the client calls into Support or we submit an internal support request, the Support team will submit a mapping request to our queue once the client item(s) meets the content requirements.
FAQs
As a part of FHDN we are unable to implement API specific workarounds, customer types, unique price sheets, or limit the connection to just Booking.com. We’ll direct clients to prepare their own items for eligibility to keep our communications to a minimum. For clients with general questions there are the following macros and help pages:
- Booking – Not Getting Bookings (EN)
- Booking – Genius Discounts
- Booking – Not Currently Available In Your Currency
- Working with Booking.com
- Content Builder
- Booking Content Guidlines(Public) help pages
- FHDN – API FAQs
Handling B.com Customer Support (CS) Tickets
B.com does not share supplier contact details with their customers. When B.com Customer Support receives a customer inquiry, it is forwarded to us. Our role is to relay the message to the supplier so they can contact the customer directly and for our team to respond to B.com the issue is resolved. These tickets should be prioritized and actioned as soon as possible.
Relationship Ownership
- B.com CS owns the relationship with the customer.
- FareHarbor owns the relationship and communication with the supplier (=FH client).
- B.com CS handles all direct communication with the customer.
Communication Rules
- To maintain clear communication boundaries:
- Do not contact the customer through B.com.
- Do not CC or include the supplier on any B.com support emails.
- B.com CS is the party that communicates directly with the customer.
Ticket Handling
- Use one of the following ticket tags: booking.com_refund, booking.com_content_issue or booking.com_customer_enquiry
- Handle within 24 hours (high priority), regardless of tier.
- Prioritize these tickets immediately upon receipt.They are not being auto prioritized.
Cancellations and Refunds
All FHDN API companies follow a 24-hour cancellation policy. This policy is automatically applied to all FHDN API dashboards and cannot be changed.
B.com can cancel bookings within 24 hours of the start time, but refunds will not be issued automatically. This allows suppliers to know who will attend their tours and ensures they are not waiting for no-shows. In these cases, the supplier still receives their net rate payment.
If a supplier cancels a booking, booking.com will not be automatically notified. The customer must contact Booking.com CS, who will then liaise with us confirming the cancellation.
Suppliers should not cancel bookings directly from their FH dashboard unless there is a legitimate reason. If a cancellation is required due to an emergency, weather issue, or other extenuating circumstance, the supplier can contact the customer and let the customer know that they should contact booking.com to issue the cancellation and initiate the refund.
Customer cancels outside 24 hours: The booking and refund are processed automatically.
Customer cancels within 24 hours: The booking is cancelled automatically, but no refund is initiated. Booking.com CS will contact us to confirm if a refund should be processed.
Supplier cancellations: if a supplier cancels a booking directly from their FH dashboard, Booking.com is not notified. When cancelling, they need to contact the customer about the cancellation and inform the customer to reach out to Bookin.com CS to initiate the cancellation and refund (if applicable).
Handling B.com Customer Support Tickets – Training Slides
General Enquiries from B.com Customers
When B.com forwards a customer enquiry:
- Open a new ticket to contact the supplier.
- Include the booking details and the message from the customer, asking the supplier to contact the customer directly.
- On the B.com ticket, confirm that the supplier has been informed and will reach out to the customer closing the ticket.
Reminder to not CC clients on Booking.com CS emails!
Content Updates B.com requests a content updates (live team)
- If the update can be handled internally, contact the supplier to confirm or adjust the content.
- If the product or listing is ineligible, remove it from the mapping.
- In both cases, inform B.com Support of the action taken — whether the item was removed or updated — and confirm that the supplier has been contacted (if applicable).
- Deselect “Visible to B.com” until the issue is resolved, and keep the ticket in your pending queue.
Making items Visible steps
- Once your mapping has been checked connect each product by selecting the Visible to Booking.com checkbox in the Channel Item settings.
- Update the AT status to Visible to Booking.com and fill in the live date.
- If the AT record has the Client outreach – Booking column checked send the Booking – Items Visible, Notification for Company macro. This is not required for auto opt-ins.
Note: Booking ingests new products for us on a regular basis(twice weekly). It is not instantaneous.
Since this is an FHDN connection, making items visible to Booking will only expose them on the API. Beyond enabling visibility, we cannot influence whether Booking lists an item on their platform. Additionally, Booking is not active in every destination, and may offer products differently in various destinations.
TripAdvisor Experiences/Viator
Receiving requests
Adding new connection requests to Airtable
- When a request is received, reach out to the supplier using the “Viator – Connect Now” macro to gain access to their Viator account.
- Add the record to AT with a “Requested” status. To avoid duplicates, always search in the “Master” queue in Airtable to see if the record was previously added. See help page on adding records to AT and API fee verification.
Note: If there are multiple Viator accounts, create separate records in Airtable for each account with the corresponding Viator ID.

Once the client has followed the steps in the email and we have access to their Viator account, unclaim the record, add an SLA date (following the guidelines here), and change the status to “New.”
If there are no active products in Viator follow the steps outlined here instead.
Dashboard setup
- Prep for the Viator affiliate to be added to the Dashboard (if it’s not there already).
Mapping steps
Claim a company from the “New” status in the Queue to Connect. Work from your individual queue prioritizing by SLA date (see here). Make sure to fill out the start date on Airtable.
Log in to the client’s Viator account in the extranet and pull up their products on the front end of Viator.com. ALWAYS compare each item in FareHarbor to each product in Viator. If something does not match up, take note and move on.
Create the channel company and channel items using the Viator auto-map feature. This can be found in the item settings under the Integrations section. Under Channel Settings select “Map item to Viator”, “Include customer types”, “Include start times” and save changes. Please de-select “auto sync item updates” as this feature is not yet compatible with Viator.
- This will automatically add the affiliate to the Dashboard. The affiliate will have the API cancellation policy, API permissions and the Viator invoice sheet assigned if those were available on the dash.
- Channel item name will pull from the Dashboard and needs to be updated to include the corresponding Viator product code.
- Adult, Youth, Child, Infant, Senior CTs that are added to future avails are mapped automatically. If they are not added to avails they will not be mapped. Ticket category is already selected in the channel customer type settings.
- If there are no standard mappable CTs the system will pause at the channel customer type. CTs and start times would need to be mapped manually by following the steps linked in step 5.
- CTs for different language options (ex: Adult – Spanish, Adult – English) are mapped as separate channel items.
- UNLOCODE is populated automatically with the default USNYC since this does not have to match the actual company location.
If manual updates are required, follow the steps here to create the channel mapping.
Note: Sometimes a FH client has multiple Viator accounts. If so, separate channel companies can be created during the mapping process for each account. The related Viator account number should be noted in the channel company SKU.
Viator uses a feature called TDT (Tour Departure Time) to ensure correct start times are booked when connected by the ri code. To work correctly, all mapped start times with bookable availabilities must also be added to the Viator schedule. If the client does not want to include all start times, those must be deleted from the mapping file. There is a possibility for booking errors if we send times that do not exist on the Viator schedule.
- TDT can be overridden by connecting with ri + ro code.
- Start times that are removed from the FareHarbor mapping file are not removed from Viator automatically and must be manually removed from Viator by disconnecting the product, removing the time from schedules and prices, and reconnecting the product.
Once you have mapped (or attempted to map) all products, update the Airtable record with an issue status from the dropdown.
- Many of these issues have a related macro in Zendesk. Try searching by keywords and filtering by API Connectivity for team specific options.
If there are issues, reach out to the client to discuss and offer solutions. You can link this ticket or add notes about the related issue(s) in the “Notes” column of Airtable. Issues can include confirming items, checking start times, operational requirements etc.
- If you need to create additional customer types and the supplier is a tier 2 or lower go ahead and create them. If it is a tier 3+ ask the client for authorization.
- If capacity/resource updates are required, always reach out to the client using the per group vs. per person macro regardless of tier.
- If additional customer types are added and/or resources are updated please update Admin Notes. Check the template notes on Connectivity Best Practices.
- If updates are required for more than 5 products, create a Google spreadsheet to share with the client. See example here.
- Don’t forget to follow up on all companies in your queue following the guidelines here.
Check if the client has QR codes enabled in FareHarbor.
Clients who have ticket scanning enabled in FH and Viator/GYG/Expedia will now be able to scan the FH QR code on a customer’s voucher to check them in. Note: we send QR codes per booking, rather than per traveler. For a breakdown of QR codes by OTA, bookmark this cheat sheet for reference.
What does this mean for you?
If you set a supplier live on the Viator API and they have ticket scanning enabled in FareHarbor, you will also need to enable barcodes in the supplier’s Viator account.
How do I know if a client has ticket scanning enabled in FH?
Ticket scanning is enabled per item in the FH Dashboard. To see if an item has ticket scanning enabled, select the item, go to info & policies within the item settings and click “advanced.”
How do I enable QR codes in Viator?
From the supplier’s Viator account, find the “Tickets” tab under the product settings. Under “Ticket Redemption” click Edit. Under “Do you want to add a barcode from your reservation system?” select “Yes.” Under “What kind of barcode is it?” select “QR code” and save. All set!
Check if there are compatible custom fields on the mapped items that need any updates to ensure they sync correctly. This includes transportation.
- To enable, check “Map to custom fields” and/or “Map to transportation custom fields” under the advanced company settings.
- Typically updates include changes to the internal name so it’s recognizable by Viator/GYG.
- If the supplier is a tier 2 or lower go ahead and update the internal name. For T3+ please confirm changes with the client first.
- For transportation, the hotel/pickup names added to the OTA system must exactly match the hotel/pickup names added in FareHarbor. For more assistance on Transportation mapping please post to the #connectivity-questions channel. This feature is still a work in progress!
Make sure to add connectivity notes in the Admin notes section of the Dashboard following the guidelines here. Admin notes can be pulled up using shft+?.
Once the mapping is complete and ready to be checked, add the Supplier ID and API key to the mapping file. This can be pulled from the Viator supplier Account section under “Connectivity”.
As a last step, check to see if all steps were completed on the API mapping checklist.
Switch the status to “Check” in Airtable. The mapping will be reviewed and assigned back to you with notes if necessary.
Go-live steps
- Once the system has had time to refresh and your mapping has been checked or rechecked, connect each product to the API in the extranet using FareHarbor ri codes.
- To manually push a refresh, navigate to the Account section of the Viator supplier account, under “Connectivity” click “Refresh”. This can be executed every 30 minutes.
- Update the Airtable status to “Done – Live on the API” and fill in the Live date.
- Update Close “Connectivity – Live” Custom field to list Viator.
- Sign up the primary company contact for affiliate booking and cancellation notification emails (example)
On the affiliate:
- Check “send reminder emails for bookings over APIs”.
- Check “send confirmation emails for bookings over APIs”.
Send “Viator API Live, Notification for Company” macro in Zendesk to the primary company contact.
- If there is a 0% invoice sheet added to the affiliate, include the last sentence about commission. Otherwise, you can delete this sentence.
- If dynamic pricing is not enabled on the Dashboard, delete the sentence about dynamic pricing before sending the email. Most clients will not use Viator price over API.
Send a Slack in the #connectivity room that the company is now live on the Viator API using the “API LIVE” workflow.
Expedia
Receiving requests
If a company would like to get connected to the Expedia.com API they first need to reach out to the Expedia team and let them know they want to get connected via API to FareHarbor.
They should reach out to their designated Destination Manager (if they have one) or `lxcam@expedia.com’ (if they do not have a DM). They can also fill out this contact form. Expedia will email support@fareharbor.com with the empty Expedia mapping file. We cannot begin mapping until we have that mapping file.
Note: The Expedia Airtable record is created after we receive the mapping file from Expedia. No need to add a company to Airtable when a client reaches out to us to request connection as Expedia’s team must first approve the API integration. Not all suppliers are approved.
Once Expedia has sent their mapping file, create the Airtable record with a “Requested” status and claim it. Please note to always search in the “Master” queue in Airtable first to be sure there are no duplicate records. See help page on adding records to AT and API fee verification.
If the dashboard is verified for the API fee unclaim the record, add an SLA date (following the guidelines here), and change the status to “New”.
Dashboard setup
Add the Expedia affiliate to the Dashboard (if it’s not there already).
Use the Direct price sheet. Please use the Direct Schedule price sheet if available.
Leave the invoice pricing blank unless it’s already added.
Apply the Affiliate – API permissions and the Default – API Cancellation Policy. See example.
Check send reminder emails for bookings over APIs in the affiliate settings.
Check send confirmation emails for bookings over APIs in the affiliate settings.
Mapping steps
To fill out the file from Expedia, enter the external identifiers (rc, ri, rct and ro) that correspond to the mapping file in FareHarbor. Example CSV file.
- Make sure there are no spaces after the external identifiers.
Note: All “option” customer types need to be mapped as separate channel items in order to send availability properly. Ex: language options, meal options, GA vs. VIP. The CSV file configuration will not override a channel item’s availability.
INCORRECT:

CORRECT

For mapping questions, reference the training with Expedia (password:
fhmapping).- If there are any issues/questions with the mapping, respond to the email from Expedia and cc: the FareHarbor point of contact to ask the question(s) and update the Airtable issue status accordingly.
Save the completed Excel file as a CSV UTF-8 file and upload the file to Airtable in the “Expedia Mapping File” column.
Check to see if all steps were completed on the API mapping checklist.
Switch the status to “Check” in Airtable. The mapping will be reviewed and assigned back to you with notes if necessary.
Once checked or rechecked, respond to Expedia with the completed mapping file and cc:
lxapi@expedia.com. You do not need to include the client on this finalized mapping file email.Change the status in Airtable to “Sent to Expedia”.
Send a Slack in the #connectivity room that the completed file was submitted to Expedia following the format here.
Go-live steps
Once the connection is scheduled to go live, Expedia will notify us via email with the supplier name and go-live date.
Upon receiving this email, double check that the Dashboard is all set to receive API bookings. You can use the Zendesk macro “API Connectivity – Expedia.com Go Live Check” as an internal note to keep track of all steps.
Update Close Connectivity – Live Custom field to list Expedia.
Update the Airtable status to “Done – Live on the API” and fill in the Live date.
Sign up the primary company contact for affiliate booking and cancellation notification emails (example)
No need to send a go-live email – Expedia notifies the client that they’re going live on the API.
If the go-live date is today and there is no invoice sheet added to the affiliate, email the client with the macro “Expedia Commission Outreach.”
Note: If their go-live date is in the future and there is no invoice sheet added to the affiliate, keep the company in your queue but mark them as “Needs Commission Outreach” in Airtable. Add the go-live date to the “live date” field. Set yourself a calendar reminder to send commission outreach on the live date. Then follow steps 1-7 on that date.
GetYourGuide
Receiving requests
Add the Dashboard as a new record in Airtable in the Queue to Connect tab with a “Requested” status and claim it. To avoid duplicates, always search in the “Master” queue in Airtable to see if the record was previously added. See help page on adding records to AT and API fee verification.
If the dashboard has been verified for the API fee but we need a list of products to connect please send the “GetYourGuide Outreach for Product Info” macro.
Once you receive relevant product information, unclaim the record, add an SLA date (following the guidelines here), and change the status to “New.”
Dashboard setup
Prep for the GetYourGuide affiliate to be added to the Dashboard (if it’s not there already).
Build the Affiliate – API permission group and the Default – API cancellation Policy if needed. See examples here and here.
- If no invoice sheet exists, create a temporary invoice sheet following the instructions below:
- Owed to You – The client is owed the money because the OTA collected full payment
- 0% commission
- Commission affects tax
- Name the sheet “GetYourGuide 0%”
If they are not connecting to price over API make a note for yourself. That will need to be added to the affiliate notes later. See example here. If they are connecting to price over API this note will be added automatically during the mapping process.
Mapping steps
Claim a company from the “New” status in the Queue to Connect. Work from your individual queue prioritizing by SLA date (see here). Make sure to fill out the start date on Airtable.
Always pull up product pages if possible. If they are not provided and you are not able to find the product pages, map the requested items based on what’s in FareHarbor.
- To find GetYourGuide product pages, Google search the company name + getyourguide. Once you find a supplier page click on “view, sort & filter all tours” and it will pull up all active products.
- Confirm with the client whether they would like to connect to pricing and availability or just availability unless previously noted. Tiered pricing is not eligible at this time.
Create the channel company and channel items using the GetYourGuide auto-map feature. This can be found in the item settings under the Integrations section. Under Channel Settings select “Map item to GetYourGuide”, “Include customer types” and “auto sync item updates”.
- This will automatically add the affiliate to the Dashboard. The affiliate will have the Default – API cancellation policy, API permissions, and the GetYourGuide invoice sheet assigned if one is available on the dash.
- Channel item name will pull from the Dashboard and needs to be updated to include the corresponding GYG tour ID in the SKU (if possible).
- Adult, Youth, Child, Infant, Senior, Student, Military, Group CTs that are added to future avails are mapped automatically. If they are not added to avails they will not be mapped. Ticket category is already selected in the channel customer type settings.
- If there are no standard mappable CTs the system auto-mapping will stop at the channel customer type. CTs would need to be mapped manually as well as an “all day” start time(example. GYG pulls start times from the dashboard.
- CTs for different language options (ex: Adult – Spanish, Adult – English) are mapped as separate channel items.
- If the item is general admission or has a duration of 0hrs, the channel item settings are updated to check “General admission (all availabilities are midnight-to-midnight)” and/or “Flexible end time (all availabilities have 0 duration)”.
If you need to manually create any mappings, follow the steps here to create the channel mapping.
ALWAYS compare each item in FareHarbor to each product in GetYourGuide. If something does not match up, take note and move on. Issues can include confirming items, checking start times, operational requirements etc.
- If the supplier has the product setup with Opening/Operating Hours in GYG:
- The product must be an all-day availability in FareHarbor (12am start time, 24 hour duration)
- They must have opening hours assigned in the Dashboard settings. Note: you can only set open hours on the company level – not per item. Go to Settings > Info & Policies > Notes & Policies > Open Hours.

- If the supplier has the product setup with Opening/Operating Hours in GYG:
Once you have mapped (or attempted to map) all products, update the Airtable record with a status from the dropdown.
If there are matchup issues, reach out to the client specifying the issue(s) and offer solutions. You can link the ticket and add notes about the matchup issues in the “Notes” column in Airtable. Issues can include confirming items, checking start times, operational requirements etc.
- If you need to create additional customer types in FareHarbor and the supplier is a tier 2 or lower go ahead and create them. If it is a tier 3+ ask the client for approval.
- If additional customer types are added and/or resources are updated please update Admin Notes. Check the template notes on Connectivity Best Practices.
- If updates are required for more than 5 products, create a Google spreadsheet to share with the client. See example here.
- Don’t forget to follow up on all companies in your queue following the guidelines here.
Check if there are compatible custom fields on the mapped items that need any updates to ensure they sync correctly. This includes transportation.
- To enable, check “Map to custom fields” and/or “Map to transportation custom fields” under the advanced company settings.
- Typically updates include changes to the internal name so it’s recognizable by Viator and/or GYG.
- If the supplier is a tier 2 or lower go ahead and make them. For T3+ please confirm changes with the client first.
As a last step check to see if all steps were completed on the API mapping checklist.
Default – Price over API setup
For GetYourGuide’s price over API feature, the price we’re sending is the total including tax for each mapped customer type. This can be viewed on the item level using the price sheet assigned to GetYourGuide.
If the client has not opted out of the price over API feature, proceed with the following steps for eligible products:
Use the direct price sheet unless the client would like to use GYG specific rates or already has an affiliate price sheet assigned. Please use the Direct Schedule price sheet if available.
If the client requests GYG-specific pricing that is not already added to the GYG affiliate, submit a ticket to Channel Support or Enterprise Support using the macro “Connectivity::API Connectivity – Pricing API Info for CS.”
- Update the issue status on AT to ‘Pricing Confirmation’ while you wait for the update to be completed.
- Once CS or Enterprise Support completes the price update, they will ping you in
#connectivityusing the CS Pricing Complete slack workflow.
To Enable GetYourGuide Price over API check the channel company settings. This must be completed before trying to connect.
Checking this box will add a GYG affiliate note saying “Enabled for price over API (see admin note).” Unchecking the box will remove the note.
Checking this box will also add a company admin note to detail which items are connecting to GYG pricing over API. The item IDs will pull automatically if they’re already mapped. Any that are not being connected to price over API can be deleted from that list. If the client has opted out of the pricing API, please update the admin notes with this information. This is not added automatically.
Note: You can use the integrator portal to test what prices FareHarbor is sending (Troubleshoot your integration –> Test Case “Test Get-availabilities and prices”).
Go-live steps
To set a company live on the API
Once products have been checked or rechecked, send the “GetYourGuide Sending Codes” macro to the company’s primary contact. There is one for availability only and one for availability and price. If the request came from GYG directly, follow up on the original email request and indicate which items codes need to be connected with ‘availability only’ and with ‘availability & pricing’.
Fill in the item names, product IDs (ro codes), ticket types and mins/maxes. These macros also include all go-live info that the client will need.
- If there is a 0% invoice sheet set up on the affiliate: Include the last sentence about commission.
- If there is an invoice sheet set up on the affiliate: Delete the last sentence about commission before sending the email.
- If dynamic pricing is enabled on the Dashboard, delete the sentence about dynamic pricing before sending the email.
You can also generate an Excel file with all item names and product IDs by entering the external identifier (rc code) where it says “Insert Here” in this URL: https://fareharbor.com/api/v1/getyourguide/1/get-products/?supplierId=[INSERT HERE]&mapping-key=d07e8111-ad00-47e5-8909-438887dbdeb9
If the client encounters a connection error, check the following:
- A discrepancy between ticket categories (adult, child, senior, etc.).
- A difference in restrictions related to minimum/maximum number of accepted participants per booking.
- A difference in cut-off settings.
- No open and bookable availabilities in FareHarbor.
- An open hours item mapped as a fixed start time item in FareHarbor.
- Use the integrator portal to test a booking and see what errors are returned.
- Request screenshots of the error messages.
Update Close Connectivity – Live Custom field.
Update the status to “Done – Live on the API!” in Airtable and fill in the Live Date.
Sign up the primary company contact for affiliate booking and cancellation notification emails (example)
On the affiliate:
- Check “send reminder emails for bookings over APIs”.
- Check “send confirmation emails for bookings over APIs”.
Send a Slack in the #connectivity room that the company is now live on the GetYourGuide API using the API – Live Workflow.
Extras – tiered group pricing
GetYourGuide group bookings will always flow through the API as 1 group voucher. Tiered group pricing cannot be accurately reflected through the API because the booking price will always be recorded as the price for 1 group, regardless of number of participants. For products with tiered group pricing:
- Recommend that the client update their pricing in GetYourGuide to tiered per person pricing. This will allow bookings to flow in with the correct price attached per number of participants.
- Create a GYG Group CT and price it at the lowest tier price (found in GetYourGuide) on the base sheet. This will allow us to still receive a fee for API bookings, even if the pricing is not perfectly accurate. See note below.
Note: The setting “Enables company to use the retail price coming from a GetYourGuide booking request” can be enabled in the channel company settings if the second workaround is in use. This ensures the price sent from GYG overrides the total set by the customer type in FareHarbor.
Extras – dynamic pricing
GetYourGuide can support capacity based dynamic price schedules. If a client is requesting this feature for capacity based pricing please follow these steps to enable:
- First review the note below to ensure the affiliate is set up correctly.
- Check {Enables GetYourGuide Dynamic Pricing in Webhook](https://demo.fareharbor.com/connectivitybestpractice/dashboard/settings/integrations/channels/427/settings/) in the channel company settings.
- Ensure Price over API is enabled in the channel company settings as well.
- Check the GetYourGuide availability webhook in the channel item settings for relevant items.
- Check the dashboard advanced company settings, Dynamic price schedules must be enabled.
- If you’re unable to make updates in the advanced company settings, use the Dynamic Pricing Enablement workflow in the #dynamic-pricing-process-talk channel to request this be enabled.
Note: If there is not an online dynamic price schedule already available on the dash, or one needs to be created specifically for GYG, please submit a ticket to Channel Support. There also needs to be a connected invoice sheet in use on the GYG affiliate. If there is not one already applied please submit that to Channel Support as well.
Extras – reactivating a deactivated product
- Log into the Integrator Portal.
- Navigate to API Documentation –> GetYourGuide Endpoints –> Products –> Reactivate a Deactivated Product
- Information needed is shown below (you can copy and paste this from the documentation):
0. Open the Postman app.
0. In Postman, set the request URL to PATCH and paste https://supplier-api.getyourguide.com/1/products/{GYG-Option-ID}/activate in the URL bar. Add the GYG Option ID where indicated.

- Beneath the Postman URL bar, navigate to the Authorization tab. Select Basic Authorization as the authorization type.
- Enter the username and password found in the Integrator Portal here under “GetYourGuide Credentials.”

- Navigate to the Body tab in Postman. Paste Select the text type as “raw” and data type “JSON.”

- In the text box, paste the JSON text found in step 3 and include the client’s External Product ID.

Select “Send” in Postman. If successful, you will see the following message: “GYG-Option-ID reactivated successfully with external Product Id {external-product-id}”
You may then let the client know the product has been reactivated and to double check that the external product ID is still connected on their side. If not, they can reconnect it with the product ID.
Extras – Supplier Registration over API
FareHarbor clients can now create and register GetYourGuide accounts directly from their FH Dashboard via a “Connect now” button. This simplifies the onboarding process, keeping users within FareHarbor while streamlining account setup. Currently, this feature is only available for US clients (excluding Hawaii) that are eligible for the GYG Supplier Referral Program.
Tickets are sent to our queue for every successful or failed registration. For every successful registration, see example ticket, please follow the steps outlined below:
Receiving Requests:
- Add the accounts to AT and check the checkbox under GYG Supplier Referral Program Column for tracking purposes.
- Check for API fee, billing method etc.
- Send the macro ‘GYG Supplier Referral Program — request for items & access to GYG account’ to the clients and switch AT status to Requested. Follow normal NCs follow-up process.
- Once we receive the list of items & access to the client’s GYG account, switch the AT status to New with an SLA of 24hrs
Dashboard & mapping setup:
- Claim a record from the New queue & go through the process of setting up a GYG user account. See training deck here.
- We are going to help create the products in the client’s GYG account. See the steps & loom video outlined here.
- Once we have completed our part of the GYG product setup, send the client the macro ‘Finalise GYG product setup & review content’ and switch the AT record to Awaiting Client Setup status. Follow normal NCs follow-up process.
- Once client confirms GYG product has been finalised, follow normal item mapping process and map to pricing over API (if applicable).
Go live:
- Follow normal process as outlined above in the go live steps.
- Exception: Submit record in AT as check & Done live on the API. Checks will be done after go live!
Failed Registration troubleshooting
For every failed registration, see example ticket, an error message will be displayed. See below common error messages and how to troubleshoot:
- Email address already in use (most common error): — client has multiple entities on GYG and already has an account for one of the entities. In these cases:
- Delete the GYG channel company (this reactivates the connect now button on the client’s dashboard so they can re-register through the API again)
- Send a follow-up email to the client on a separate ticket using the ‘GYG Account failed registration (Email already in use)’ macro
- Add to AT with status requested, check the GYG Supplier Referral Program column and add issue status Failed Account Registration
- Follow normal NCs follow-up process.
- Validation error: UE_STRING_INVALID: client inputted TEXT in the mobile number field, example: 1(888) 470-SAIL. In these cases:
- Delete the GYG channel company
- Send a follow-up email to the client on a separate ticket asking them to re-register and input a correct mobile number (without text) in the mobile phone field.
- Add to AT with status requested, check the GYG Supplier Referral Program column and add issue status Failed Account Registration.
- Follow normal NCs follow-up process.
Google TTD
Receiving requests
Add all information from the ticket to the Queue to Connect AT with the status “New”. Please note to always search in the Master queue in Airtable first to be sure there are no duplicate records.
Determine if the company’s products are a good fit.
Check for a Google Business Page and add it to Airtable.
If the request came from a BI automated go live ticket, these are considered “opt ins”.
- We can map up to 10 eligible products of our choice or contact clients about minor tweaks if those are needed to connect. If there is no eligible GBP page or items, the record can be moved to “Disabled” with a relevant issue status.
Dashboard setup – eligibility
Check the eligibility of the Google Business Page in the Actions Center.
Search the Business Name in the Actions Center under “Find Location Matches” and check to make sure the GBP is eligible for the Operator Booking Module or the POI Booking Module. Make sure you’re using the Production view when searching, rather than the Sandbox view.

OBM Eligibility
If the GBP is not eligible for the Operator Booking Module, this could be because their GBP has an assigned business category that is not currently supported. Operators can add secondary business categories without replacing their primary category if they would like to change their eligibility.
Google currently supports the business categories listed here but eligibility should always be confirmed in the Actions Center.
POI Eligibility
If the GBP is not an eligible POI, only map for OBM unless the client specifically requested the POI module. If specifically requested, follow up with the client and ask if their tours are related to any other POIs in the area that we could check and connect to instead.
If they’re not eligible, change status to “mapped – issue” with an issue status “not eligible OBM or POI” and link the follow up ticket.
If eligible, mark in Airtable whether they can connect through POI Admissions & Experiences or Operator Booking Module.
Ensure the company has a company logo uploaded.
Check that price previews are enabled on each item. If they are not, we’ll address this in the item setup section. Do not enable price previews without client approval.
Dashboard setup – locations
General Location-Matching Logic
When we connect a FareHarbor Dashboard to a Google Business Profile, locations will match based on the logic below:
Google reads the primary company location –> Google Place ID, if it exists for the given location.
If there’s no place ID, Google use the place info. Example: business name and at least one address field (street, city, country, etc) is populated for the given location.
Note this includes websites! So if place IDs don’t match it may still connect by dashboard website URL.
- If those fields are all unavailable, Google uses latitude/longitude as a last resort.
We send the Company primary Location if there is no location added to the Channel Item Mapping to override the default.
OBM Location Setup
Check that the company default location has a Google Place ID. This should match the place ID that’s returned in the Actions Center when searching by the GBP name under “Find Location Matches”.
If the company default location does not match the address on the GBP, create a new location that can be assigned in the channel item mapping instead. Steps for how to create a Google specific location listed below. Do not update the dashboard company default location.
POI Location Setup
If you are connecting to POI Experiences -> check on the GBP first that the Admissions module is already triggered and live. Example:

If yes, you can proceed with the mapping and getting the items connected to this POI. If not, then at least one item must be mapped as an Admissions product in order to trigger this module on their GBP.
Search the dashboard’s available locations to see if any are relevant to the POI they’d like to connect. If so, check to see if there’s a Google Place ID that matches the POI.
If there are no matches, create a new location that can be assigned in the channel item mapping instead. Steps for how to create a Google specific location are listed below. Do not update the dashboard company default location.
If the client has multiple POIs they’d like to connect to, additional Google Place IDs can be added under the channel item settings –> Related Locations.
Google-Specific Location Setup
Navigate to the location tab on the Dashboard settings and click on ‘+ New location’.
Follow the steps below when creating the location: * Add the company name or the POI name and include “Google” at the end. Ex: ABC Tour Company – Google or Eiffel Tower – Google. * Uncheck “show this location to customers”. * Add the address as shown on the GBP. * Add an eligible Google Place ID from the Actions Center and save.
- Under the channel item mapping: * Navigate to Settings. * Under ‘Primary location’ select the new Google specific location. Example.
Note: This can be used for mapping one dashboard to multiple GBPs. Create a separate channel company for each Google Business Page and add the corresponding location to the channel items within each channel company mapping. Example.
Item Setup
Follow the steps below for every item that will be mapped to Google.
Navigate to Options & Prices and make sure the item has at least one priced customer type. If the CTs are group tickets please note:
- The price we send must include the rate for 1 adult.
- Group tiered pricing with pricing in the CF should also work as long as the 1 person price is set up on a Google price sheet. Unpriced CTs on a price sheet are not eligible.
- If the item or CT has a minimum of 2+ a price sheet workaround is required to send Google the price for the minimum party size (2) on the mapped CT. Example: if the price is $50 an adult with a minimum of 2 we must send a price of $100 on the CT.
Navigate to the item calendar and make sure the item has at least 2 availabilities per week during the season that the item is available. This is Google’s minimum requirement for availability.
Navigate to the item listing and make sure there’s at least one photo uploaded.
Check for price previews in the item’s listing.
- If price previews are not enabled on the Dashboard, price information must be added to the item description instead (not the channel item description).
Mapping steps
Follow the steps below for every item that will be mapped to Google (up to 10):
Navigate to the Integrations section of the item.
Select the “Map item to Google Things to do” checkbox and Save.

This checkbox will add the Google affiliate, the channel company, and a channel item. An invoice sheet is not necessary. Payment default must be Charging Card.
- Check that the Google affiliate was added to the Dashboard with the correct settings.
- Check that the channel company name matches the Google Business Profile name exactly.
- Check that the channel item was mapped correctly.
- Map the lowest priced adult/person customer type. The channel customer type name has to be either Person or Adult.
- “All Day” channel option
- Description added in the channel item settings
- Tagged for Google “Official site” badge
- OBM = “Admission ticket” in the Google relation type for primary location dropdown
- POI = relation type according to this doc. For POI Admissions, select “Official Site” badge checkbox. For POI Experiences, de-select “Official Site” badge checkbox.
- Under the channel company settings is a Language used for item name and description (GTTD) pulled from the dashboard default language. If the client prefers to change this it can be updated to their preferred language. Products can only be viewed if your default browser language matches.
If adding a Google price sheet: Follow the steps below to override the default ASN link:
Navigate to the FH item and select “Book Buttons & Embeds” from the item menu
- Under “Choose widget type”:
- Select “Book button or link”
- Open to: Specific item
- Choose item
- Flow: Default Booking Flow
- Flow page: Default
- Under “Options”:
- Select “Include item description and images”
- Open advanced settings:
- Pricing: Google
- ASN company: Google
- Under “Copy this code for your site”:
- Select “Link”
- Add
&branding=yesto code - Copy link It should look something like this:
https://fareharbor.com/embeds/book/arizonaoutdoorfun/items/190048/?sheet-uuid=1cc5389a-c6bf-46e4-9bb1-f2dd1c34d126&asn=google&full-items=yes&flow=283653&branding - Paste in Channel Item mapping settings under “Action Link”
- Under “Choose widget type”:
Update Connectivity Admin Notes if using a Google specific price sheet.
Utilize the Google Things to Do Center to troubleshoot errors (operator name/location mismatch, price higher on booking page etc.) that can be resolved through mapping updates.
- Errors prevent products from showing, warnings just limit visibility
- Expanded menu will show which modules are impacted – only need to consider the module you’re mapping for
- “Price is higher on booking page” means there’s a priced CF or booking minimum that impacts the final price on the landing page.
- “Operator name/location mismatch” means the mapping file name does not match the GBP the product is paired to.
- “Price unavailable for booking within the next 30 days/120 days” means there is not consistent enough availability.
For a full list of Google errors/warnings and their suggested solutions, bookmark this page.
Check to see if all steps were completed on the API mapping checklist.
Check the GBP to see if products are viewable and live on the GBP.
Follow the Go-Live steps next.
Go live steps
- Send the macro “Google TTD – API Live” to the client.
- If dynamic pricing is not enabled on the Dashboard, delete the sentence about dynamic pricing before sending the email.
- If products are already bookable, delete the sentence about the 120 window that Google pulls availability.
- Update Airtable with the “ Done – Live on the API!” status and add the Live date.
- Update Close Connectivity – Live custom field to list Google.
- Send a Slack in the #connectivity room that the company is now live on the Viator API using the “API LIVE” workflow.
Travel Campaigns (Google Ads)
Client (or third party like TRK) requests to connect to TTD ads, otherwise known as Travel campaigns. They should provide product names and URLs (optional) for the products they’d like to connect. They also need to provide us with their Google Ads customer ID
FareHarbor provides our Action Center ID (471562101) to the client or agency to link their Google Ads account. The Account ID can be found in the Account & Users Settings of the Action center here.
Use the auto-mapping feature under the item integrations tab to map activities. Insert the action link if provided. Check that the lowest priced adult ticket is mapped and availabilities are pulling. No further updates are needed for the mapping file.
- If the primary company location has an eligible Google place ID, these will also map for OBM.
- If the primary location does not have an eligible Google place ID, that’s ok. Travel Campaigns are not tied to a specific page but rather to different search queries and keywords. This is not required.
If the connection is managed by a third party please note that in the AirTable record.
Check the product ri codes in the Actions Center to confirm that the Ads Status is “eligible” and “ready to show”.
If the client followed the directions in step 2, FareHarbor receives a request to link the account in the Actions Center under Account and Users with the status “Pending Approval”. Click “Review link request” and select “only some services”. You will be prompted to upload a CSV file. This CSV file should include a running list of the ri codes example. Product names are not necessary.

- Once the CSV is uploaded, the FareHarbor team confirms with the client (or third party). From there the client or agency is able to see these ri codes in their product feed in their Google Business account. They are responsible for creating and implementing a travel campaign or contacting Google if they need further assistance.
Website Travel / AAGtech / Aventium
Receiving requests
Website Travel will notify us when they’re ready to connect (example).
Add the record to AT with a “Requested” status. To avoid duplicates, always search in the “Master” queue in Airtable to see if the record was previously added. See help page on adding records to AT and API fee verification.
If the dashboard has been verified for the API fee but we need a list of products to connect please send the “Website Travel – Outreach for Product Info” macro.
Once you receive relevant product information, unclaim the record, add an SLA date (following the guidelines here), and change the status to “New.”
Dashboard setup
Add the Website Travel affiliate to the dashboard (if it’s not there already).
- Use the Direct price sheet.Please use the Direct Schedule price sheet if available.
- Leave the invoice pricing blank unless it’s already added.
- Apply the Affiliate – API permissions and the Default – API Cancellation Policy. See example.
- Check send reminder emails for bookings over APIs” in the affiliate settings.
- Check send confirmation emails for bookings over APIs” in the affiliate settings.
Mapping steps
To map in FareHarbor follow all the steps here to create a channel mapping. Mappings are similar to Expedia –> map each start time, no ticket categories are selected, no additional advanced settings.
Once the mapping is done, switch the status of the Airtable record to “Check”.
The reviewer will check the mapping and assign back to you with notes if necessary.
Go live steps
Once ready, send the rct codes to the Website Travel team for each product (please use the email with the original request to follow up).
Send the macro “Website Travel – API Live” to the client.
Sign up the primary company contact for affiliate booking and cancellation notification emails (example).
Update Airtable with the “Done – Live on the API!” status and fill in the Live date.
Update Close Connectivity – Live custom field to list Website Travel.
Send a Slack in the #connectivity room that the company is now live on the Website Travel API using the “API LIVE” workflow.
Creating an API Customer Type
- Duplicate the existing price sheet applied to the affiliate and rename it after that affiliate. Example. Assign the new price sheet to the affiliate.
- Add the customer type to the dashboard under Customer Types and add “API” to the customer type note. Example.
NOTE: Duplicated customer types can’t be mapped for APIs unless they
- Are applied to separate availabilities in the dashboard
- Have min/maxs to differentiate those from one another and were not duplicated from the online customer type
- Hide the new customer type on the Base price sheet and make visible on the new affiliate price sheet.
- Add to the required item in FareHarbor under options & prices and add to existing resources.
- Add to existing availabilities using the availability updater.
- Make sure to add a Connectivity Admin Note to advise other internal teams that this customer type needs to be included on future calendar builds and should not be removed. See admin notes section below.
Slack updates
Please post an update in #connectivity using the below workflows:
- ✅ API Live: To be used when a client goes live on an API or when a completed mapping file is sent to Expedia.
- ❌ Needs AM/OB action: To be used when a T2 client or higher is unresponsive about getting the API connection set up and you’ve sent the first follow-up (week 2). Select “Client unresponsive” as a reason. This workflow can also be used if you need the AM/OB action for another reason. Then select “Other” as a reason.
- ? API opt out: To be used when a client is opted out. Don’t forget to select your name in the Opted out by section.
Steps to follow:
- Select the API (Viator, GYG etc.).
- Type in the shortname.
- Tag the AM (If there is no AM assigned, you can tag the OB4 or the Sales Owner)
Note: Do not tag any groups such as SBAM, you can just include it as a note in the additional information field.
Connectivity Admin Notes
Once you have completed a mapping, add or update Connectivity Notes on the Dashboard’s Admin Notes(shft+?) following the formats below.
API-specific customer types
The following items have API specific customer types. Please apply these new customer types when adding new availabilities.
API-specific resource setup with API customer types
The following items have API customer types with a special resource set up so it can integrate. Please do not update resources or customer types for these items without talking to the @connectivity_team!
API-specific resource setup for capacity (GYG only)
The following items have a resource set-up to manipulate the capacity that is shared with GetYourGuide. Please do not update resources for these items without talking to the @connectivity_team!
API specific items
The following items were created for the connection with [OTA]. Please submit a mapping request to @connectivity_team if changes are requested for this item!
NOTE: The client has a limited inventory agreement in place for the following OTA partners and corresponding tour items.
Multiple Dashboards
API mapping includes (shortname1) and (shortname2) and is housed on the (shortname1) Dashboard.
Multiple (API) accounts
The following (API) accounts are mapped on this Dashboard.
GYG pricing over API
The following items have pricing over API enabled for GYG. Please reach out to Channel Support (Tier 0-3) or 4support (Tier 4+) for any GYG pricing update requests. [Item IDs]
or
The client has opted out of the pricing API.
NOTE: The GYG affiliate note “Enabled for price over API (see admin note)” will now be added automatically when checking “Enable GetYourGuide Price over API” in Channel Company Settings. Unchecking the box will also remove the text.
Viator pricing over API
The following items have pricing over API enabled for Viator. Please reach out to Channel Support (Tier 0-3) or 4support (Tier 4+) for any Viator pricing update requests.
Note: This is only in use for a few clients and is rarely enabled on a dashboard.
[Item IDs]
GYG Booking Totals GYG booking totals are automatically set with the retail rate from GYG.
Google price sheet
Bookability minimum
The following items have adjustment set to +100% on the Google price sheet to comply with Google Price Policy.
or
Subsequent items have a bookability minimum higher than one. The Google price sheet is sending adult price x [Min], per Google’s pricing policy. If you are adjusting prices, please make sure the Google price sheet has the new online price for one adult multiplied by the bookability minimum when no bookings are present.
Unpriced CT
Subsequent items use an unpriced CT and priced custom fields. The Google price sheet is used to connect to Google.
Dynamic pricing
This client has dynamic pricing enabled. DO NOT update the price sheet to a dynamic price schedule on the affiliate [Insert Channel API name] as they cannot pull dynamic pricing and this will break their invoice sheets.
GYG User Login
Login added to Keeper
(dashboard1) and (dashboard2) on GYG login (Keeper Record shortname)
Opted out
Multiple GYG logins:
dashboard1 for items 27129, 27130, 27131
dashboard2 for items 27132, 27133, 27134
Additional notes
- Client prefers phone calls.
- The following items are capped at one on Viator;
- The following items have tiered group pricing, and are priced on the lowest tier for GYG bookings;
- The following items have a zero price sheet for GYG bookings;
- The client is manually rebooking API bookings for the following items;
- The following items use unlisted availabilities for the API connection.
Dynamic pricing and APIs
How to determine if a client has dynamic pricing enabled
- Advanced Dashboard Settings –> search “dynamic pricing”

Be sure to thoroughly review the Dynamic Pricing help page. Currently clients using dynamic pricing cannot add affiliates to their Dashboard unless a FH admin has enabled “dynamic pricing with affiliates”. This way clients are not encouraged to use dynamic pricing without understanding the consequences for their API connections.
Why don’t Dynamic Pricing and Affiliates work well together?
- For Expedia and Viator – we don’t share FH pricing so we cannot enable Dynamic Pricing with those partners. We want to still set up Channel APIs as normal using one price sheet or a regular price schedule according to their pricing in the OTA’s system.
- For Google – Google’s pricing policy dictates that the price we send in the feed each day must match what is on the landing page or the product will be pulled from TTD. If Dynamic Pricing is causing the price to change often the price we send in the feed will likely be outdated when Google audit checks the landing page. Google knows that this is an issue for clients using Dynamic Pricing and is exploring options to fix this or may be more lenient. However in the meantime we cannot set up products with Dynamic Pricing or they risk being taken down. Please set up Google as normal on the online price sheet or online schedule as long as it doesn’t contain Dynamic Pricing rules.
- For GYG – the GYG availability webhook makes it possible for FH to send updated pricing and capacity to GYG whenever capacity changes. This allows us to support capacity based dynamic pricing for price over API with GYG. Time based dynamic pricing is not supported.
- For External API partners – pricing has to be refreshed often to keep up with changing/dynamic pricing. Delays on refreshing pricing data can lead to reporting mismatches and incorrect prices.
Custom Field Display Feature
What are we talking about?
Custom fields display differently based on booking sources (i.e. pre-checked trip protection, required park fees, food and beverage add-ons etc.)
- Online, Dashboard, Google and External API bookings: All visible custom fields were displayed on the booking overview.
- Viator, GYG & Expedia bookings: No custom fields were displayed on the booking overview even if they are visible.
For clients that would like for all custom fields to be added to bookings automatically, this can be enabled per channel item for Viator, GYG, and Expedia.
Why would a client want priced custom fields to display on their bookings automatically
Some tour operators rely on custom fields to differentiate pricing, taxes, or reporting and can benefit from this feature. For items where multiple tax types apply (e.g., cruise fare vs. dinner fare vs. gratuity) it’s important for bucketed custom field pricing to be added to each booking to help with the breakdown in reporting. Example.
Other operators may like this feature to make it easier to add retail items, food and beverage add-ons etc. when the customer checks in. Rather than adding a custom field to an existing booking manually.
To improve reporting and user experiences for these clients, custom field display can now be enabled through a setting on the channel item.
How to enable
Under the channel item settings, check Create default OTA custom fields.
When enabled, custom fields and their default values will automatically be added to the booking if they are visible on the OTA price sheet.