Webhooks are a powerful tool that allows you to send data to third-party systems whenever certain events occur within TripWorks. Once activated, these webhooks will automatically post data to the endpoint you’ve chosen, allowing you to integrate the TripWorks booking system seamlessly with other systems, platforms, and workflows. The destination for this data is entirely up to you, giving you the flexibility to connect with CRM systems, accounting tools, marketing platforms, and more.
Getting Started with Webhooks:
To begin setting up webhooks in TripWorks, follow these steps:
- Click the gear icon in the top menu.
- Under Integrations, select Webhooks.
On the Webhooks page, you can create a webhook destination for various types of events.
Types of Webhook Events:
Trip Created Event
A webhook can be triggered whenever a new trip is created, regardless of whether it’s in a draft or reserved status. This is useful for capturing data on new bookings, including abandoned carts. The webhook payload will include a variety of detailed information about the complete trip, including activity name, guest information, custom fields, session information (including marketing landing page, geo coordinates, IP address, browser time, viewport), check-in status, amounts paid and due, addons, and products.
Webhook Payload Example
{"tripOrders":[{"created_at":"2026-02-26T00:05:34+00:00","bookings":[{"booking_resources":[],"id":5201661,"created_at":"2026-02-26T00:05:34+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{"full_name":"Jim Smith","phone_format_intl":"+1 201-555-1212","first_name":"Jim","last_name":"Smith","email":"test-q46ye@gmail.com","phone":"+12015551212","phone_format_164":"+12015551212"},"experience_customer_type":{"id":195,"name":"Adult","description":"price per person"},"custom_field_values":[],"addons":[{"id":371942,"experience_addon":{"id":31,"title":"Ultimate Hike"},"name":"La caminata definitiva","price":25000},{"id":371943,"experience_addon":{"id":6515,"title":"Lunch"},"name":"Lunch","price":1000}],"is_complimentary":false}],"experience":{"internal_name":"Hiking","id":105,"name":"Hiking","duration":480,"color":"#4e5dc1"},"experience_timeslot":{"label":"11:00 AM","start_time":"2026-02-28T11:00:00+00:00","end_time":"2026-02-28T19:00:00+00:00"},"addons":[],"status":{"id":1,"slug":"booked","name":"Booked"},"pax_count":1,"addons_cnt":2}],"custom_field_values":[{"custom_field":{"internal_name":"Team Color"}},{"custom_field":{"internal_name":"Shirts Needed"}},{"custom_field":{"internal_name":"Club Kay"},"bit_value":false},{"custom_field":{"internal_name":"Club Kay"},"bit_value":false}],"display_name":"Jim Smith","session_ip_address":"74.115.209.58","id":2088161,"confirmation_code":"ZHXZ-MTQA","created_at":"2026-02-26T00:05:34+00:00","reserved_at":"2026-02-26T00:05:57+00:00","sale_date":"2026-02-28T00:00:00+00:00","customer":{"full_name":"Jim Smith","phone_format_intl":"+1 201-555-1212","first_name":"Jim","last_name":"Smith","email":"test-q46ye@gmail.com","phone":"+12015551212","phone_format_164":"+12015551212"},"payments":[],"subtotal":23000,"total":24200,"paid":0,"due":24200,"created_by_user_avatar":{"full_name":"Jim Jones","abbrev_name":"Jim J.","photo_url_full_path":"https:\/\/cdn-images.tripworks.com\/tenants\/profiles\/3279dbe7be00f496044307.jpg","id":58,"first_name":"Jim","last_name":"Jones","is_tripworks_managed":true},"trip_method":{"name":"Walkup","color":"#3498eb","slug":"walkup"},"reseller_commission":0,"session_browser_version":"145.0.0.0","session_browser_name":"Chrome","session_browser_user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36","session_browser_os":"Apple","session_latitude":"32.79670000","session_longitude":"-117.13670000","session_location_label":"San Diego, California US","total_sales":24200,"products_cnt":0,"addons_cnt":2}
Trip Reserved Event
Set up a webhook to send data when a trip moves to the reserved status, typically when a payment is made. This is great for tracking confirmed reservations and can help keep your reservation system up-to-date. The webhook payload will include a variety of detailed information about the complete trip, including activity name, guest information, custom fields, check-in status, amounts paid and due, addons, and products.
Webhook Payload Example
{"tripOrders":[{"created_at":"2026-02-26T00:05:34+00:00","bookings":[{"booking_resources":[],"id":5201661,"created_at":"2026-02-26T00:05:34+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{"full_name":"Jim Smith","phone_format_intl":"+1 201-555-1212","first_name":"Jim","last_name":"Smith","email":"test-q46ye@gmail.com","phone":"+12015551212","phone_format_164":"+12015551212"},"experience_customer_type":{"id":195,"name":"Adult","description":"price per person"},"custom_field_values":[],"addons":[{"id":371942,"experience_addon":{"id":31,"title":"Ultimate Hike"},"name":"La caminata definitiva","price":25000},{"id":371943,"experience_addon":{"id":6515,"title":"Lunch"},"name":"Lunch","price":1000}],"is_complimentary":false}],"experience":{"internal_name":"Hiking","id":105,"name":"Hiking","duration":480,"color":"#4e5dc1"},"experience_timeslot":{"label":"11:00 AM","start_time":"2026-02-28T11:00:00+00:00","end_time":"2026-02-28T19:00:00+00:00"},"addons":[],"status":{"id":1,"slug":"booked","name":"Booked"},"pax_count":1,"addons_cnt":2}],"custom_field_values":[{"custom_field":{"internal_name":"Team Color"}},{"custom_field":{"internal_name":"Shirts Needed"}},{"custom_field":{"internal_name":"Club Kay"},"bit_value":false},{"custom_field":{"internal_name":"Club Kay"},"bit_value":false}],"display_name":"Jim Smith","session_ip_address":"74.115.209.58","id":2088161,"confirmation_code":"ZHXZ-MTQA","created_at":"2026-02-26T00:05:34+00:00","reserved_at":"2026-02-26T00:05:57+00:00","sale_date":"2026-02-28T00:00:00+00:00","customer":{"full_name":"Jim Smith","phone_format_intl":"+1 201-555-1212","first_name":"Jim","last_name":"Smith","email":"test-q46ye@gmail.com","phone":"+12015551212","phone_format_164":"+12015551212"},"payments":[],"subtotal":23000,"total":24200,"paid":0,"due":24200,"created_by_user_avatar":{"full_name":"Jim Jones","abbrev_name":"Jim J.","photo_url_full_path":"https:\/\/cdn-images.tripworks.com\/tenants\/profiles\/3279dbe7be00f496044307.jpg","id":58,"first_name":"Jim","last_name":"Jones","is_tripworks_managed":true},"trip_method":{"name":"Walkup","color":"#3498eb","slug":"walkup"},"reseller_commission":0,"session_browser_version":"145.0.0.0","session_browser_name":"Chrome","session_browser_user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36","session_browser_os":"Apple","session_latitude":"32.79670000","session_longitude":"-117.13670000","session_location_label":"San Diego, California US","total_sales":24200,"products_cnt":0,"addons_cnt":2}
Payment / Refund Event
Use this webhook to send data every time a payment is processed. This is especially helpful if you accept multiple partial payments for a single trip, allowing you to keep your accounting system in sync. The webhook payload will include a variety of detailed information about the payment, including payment type and amounts; notes, payment direction, fees, and tips.
Webhook Payload Example
{"id":1277113,"created_at":"2026-02-26T00:20:05+00:00","amount":5000,"status":{"id":6,"name":"Successful"},"type":{"id":1,"name":"Cash"},"is_card_present":false,"direction":{"id":1,"name":"Payment"},"net_amount":5000,"trip":{"tripOrders":[{"created_at":"2026-02-11T19:10:21+00:00","bookings":[{"booking_resources":[],"id":5197287,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{"full_name":"James Smith","phone_format_intl":"+1 321-321-1231","first_name":"James","last_name":"Smith","email":"jamessmithy123@yahoo.com","phone":"3213211231 ","phone_format_164":"+13213211231123131"},"experience_customer_type":{"id":194,"name":"Adult","description":"Ages 18-99"},"custom_field_values":[{"custom_field":{"internal_name":"Shirt Size"}},{"custom_field":{"internal_name":"Fishing License"}}],"addons":[{"id":371935,"experience_addon":{"id":1066,"title":"Charcuterie Board"},"name":"Charcuterie Board","price":60000}],"is_complimentary":false},{"booking_resources":[],"id":5197288,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{},"experience_customer_type":{"id":194,"name":"Adult","description":"Ages 18-99"},"custom_field_values":[{"custom_field":{"internal_name":"Shirt Size"}},{"custom_field":{"internal_name":"Fishing License"}}],"addons":[],"is_complimentary":false},{"booking_resources":[],"id":5197289,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{},"experience_customer_type":{"id":194,"name":"Adult","description":"Ages 18-99"},"custom_field_values":[{"custom_field":{"internal_name":"Shirt Size"}},{"custom_field":{"internal_name":"Fishing License"}}],"addons":[],"is_complimentary":false},{"booking_resources":[],"id":5197290,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{},"experience_customer_type":{"id":194,"name":"Adult","description":"Ages 18-99"},"custom_field_values":[{"custom_field":{"internal_name":"Shirt Size"}},{"custom_field":{"internal_name":"Fishing License"}}],"addons":[],"is_complimentary":false},{"booking_resources":[],"id":5197291,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{},"experience_customer_type":{"id":203,"name":"Child","description":"Ages 11 and Under"},"custom_field_values":[{"custom_field":{"internal_name":"Shirt Size"}},{"custom_field":{"internal_name":"Fishing License"}}],"addons":[],"is_complimentary":false},{"booking_resources":[],"id":5197292,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{},"experience_customer_type":{"id":203,"name":"Child","description":"Ages 11 and Under"},"custom_field_values":[{"custom_field":{"internal_name":"Shirt Size"}},{"custom_field":{"internal_name":"Fishing License"}}],"addons":[],"is_complimentary":false},{"booking_resources":[],"id":5197293,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{},"experience_customer_type":{"id":203,"name":"Child","description":"Ages 11 and Under"},"custom_field_values":[{"custom_field":{"internal_name":"Shirt Size"}},{"custom_field":{"internal_name":"Fishing License"}}],"addons":[],"is_complimentary":false}],"experience":{"internal_name":"Swimming","id":104,"name":"Swimming","duration":240,"color":"#0081a8"},"experience_timeslot":{"label":"10:00 AM","start_time":"2026-02-20T10:00:00+00:00","end_time":"2026-02-20T14:00:00+00:00"},"addons":[],"status":{"id":1,"slug":"booked","name":"Booked"},"pax_count":7,"addons_cnt":1}],"custom_field_values":[{"custom_field":{"internal_name":"Team Color"}},{"custom_field":{"internal_name":"Shirts Needed"}}],"display_name":"James Smith","session_ip_address":"151.204.156.173","id":2086899,"confirmation_code":"WRYW-DHHJ","created_at":"2026-02-11T19:10:21+00:00","reserved_at":"2026-02-26T00:20:05+00:00","sale_date":"2026-02-20T00:00:00+00:00","customer":{"full_name":"James Smith","phone_format_intl":"+1 321-321-1231","first_name":"James","last_name":"Smith","email":"jamessmithy123@yahoo.com","phone":"3213211231 ","phone_format_164":"+13213211231123131"},"subtotal":96000,"total":106377,"paid":5000,"due":101377,"created_by_user_avatar":{"full_name":"Ben Kreisberg","abbrev_name":"Ben K.","photo_url_full_path":"https:\/\/cdn-images.tripworks.com\/tenants\/profiles\/655d223ce3419834933292.jpeg","id":29069,"first_name":"Ben","last_name":"Kreisberg","is_tripworks_managed":true},"trip_method":{"name":"Walkup","color":"#3498eb","slug":"walkup"},"reseller_commission":0,"session_browser_version":"144.0.0.0","session_browser_name":"Chrome","session_browser_user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36","session_browser_os":"Apple","session_latitude":"40.87770000","session_longitude":"-73.90800000","session_location_label":"The Bronx, New York US","total_sales":105360,"products_cnt":0,"addons_cnt":1},"owner":{"full_name":"Aaron Fessler","abbrev_name":"Aaron F.","photo_url_full_path":"https:\/\/cdn-images.tripworks.com\/tenants\/profiles\/6079dbe7be00f496044307.jpg","id":58,"first_name":"Aaron","last_name":"Fessler","is_tripworks_managed":true},"currency":"USD","tip":0}
Waiver Event
Trigger a webhook whenever a customer signs a waiver. This can include the customer’s details, their signature, and a PDF of the signed waiver, making it ideal for compliance and record-keeping.
Webhook Payload Example
{"full_name":"Another One","experience_name":"Swimming","id":1081786,"bookings":[{"booking_resources":[],"id":5197289,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"customer":{"full_name":"Another One","first_name":"Another","last_name":"One","email":"another@one.com","phone":"+12015551212","bookings":[],"phone_format_164":"+12015551212"},"experience_customer_type":{"id":194,"name":"Adult","description":"Ages 18-99"},"custom_field_values":[[],[]],"addons":[],"is_complimentary":false}],"created_at":"2026-02-26T00:27:50+00:00","waiver_url":"v7ucqz88rvgd","customer":{"full_name":"Another One","first_name":"Another","last_name":"One","email":"another@one.com","phone":"+12015551212","bookings":[{"booking_resources":[],"id":5197289,"created_at":"2026-02-11T19:10:21+00:00","status":{"id":15,"name":"Not Checked In"},"experience_customer_type":{"id":194,"name":"Adult","description":"Ages 18-99"},"custom_field_values":[[],[]],"addons":[],"is_complimentary":false}],"phone_format_164":"+12015551212"},"waiver_type":{"id":2,"name":"Liability Waiver"},"first_name":"Another","last_name":"One","is_waiver_adult":true,"email":"another@one.com","dob":"2006-04-14T00:00:00+00:00","phone":"+12015551212","signed_pdf":"https:\/\/cdn-images.tripworks.com\/tenants\/demo\/waivers\/v7ucqz88rvgd.pdf"}
Payout Event
This webhook posts data every time a payout is sent to your connected bank account. It includes details like the payout amount, fees, and net totals, which can be very helpful for financial reconciliation.
Customer Add Event
When a new customer profile is created, this webhook can send their details to a CRM like HubSpot or Salesforce, helping you keep your marketing tools updated.
Webhook Payload Example
{"full_name":"Jim Smith","phone_format_intl":"+1 201-555-1212","phone_country_code":"US","mappable_position":"New Jersey United States","location_description":"New Jersey, USA","id":5567611,"created_at":"2026-02-26T00:20:59+00:00","code":"EQR-GCAN","first_name":"Jim","last_name":"Smith","email":"test-xaj1s@gmail.com","phone":"+12015551212","country":{},"is_vip":false,"is_opt_in":true,"timezone":"America\/New_York","phone_format_164":"+12015551212"}
Customer Update Event
This webhook triggers whenever a customer’s profile is modified, ensuring that any changes—like a new email address or updated name—are reflected in your connected systems.
Webhook Payload Example
{"full_name":"Jim Smith","phone_format_intl":"+1 201-555-1212","phone_country_code":"US","mappable_position":"New Jersey United States","location_description":"New Jersey, USA","id":5567611,"created_at":"2026-02-26T00:20:59+00:00","code":"EQR-GCAN","first_name":"Jim","last_name":"Smith","email":"test-xaj1s@gmail.com","phone":"+12015551212","country":{},"is_vip":false,"is_opt_in":true,"timezone":"America\/New_York","phone_format_164":"+12015551212"}
Previewing Webhooks
Many free services exist which allow you to see your TripWorks post data in real time. Our favorite?
Troubleshooting Webhooks
Once you’ve set up your webhooks, they will take effect immediately. You can manage all webhooks easily from the same page, and there’s a convenient checkbox at
Final Steps
Once you’ve set up your webhooks, they will take effect immediately. You can manage all webhooks easily from the same page, and there’s a convenient checkbox at the bottom of the screen to turn all webhooks on or off at once.
If you need any help or have questions about setting up webhooks, don’t hesitate to contact our support team!