calculate_distance
ChatGPTCalculates the distance and travel time between an HPRG hotel and a place in Paris. Takes the hotel name, a destination location, and a travel mode ('walking', 'bicycling', 'driving', or 'transit'). Returns the distance and estimated travel duration for that mode.
check_room_availability
ChatGPTRetrieves room availability and pricing for Hôtels Paris Rive Gauche (HPRG) group hotels in Paris. Returns available room types with prices and booking URLs. When resolving relative dates such as "next Monday", use the current date from the conversation context as the reference point. Do not assume a fixed date. Required parameters: a check-in date (checkIn) in YYYY-MM-DD format, the number of nights (nights), and the number of adults (adults). To filter by amenity or feature, hotel names can first be identified via get_hotel_summaries and passed here as hotelNames. If hotelNames is omitted, all HPRG hotels are checked.
create_booking_contact
ChatGPTSubmits the guest's contact details to an HPRG hotel so they can complete a booking, and returns a booking link. This is a WRITE action with real effects: - It creates a contact and a conversation for the guest in the hotel's customer system. - It may notify the hotel team (for example by email, depending on the hotel's notification settings) about the new conversation. - If the hotel has a CRM or marketing integration configured, the guest's name, email and phone may be synchronised to it. - It creates a tracked booking link for the guest. It does NOT reserve a room, does NOT hold availability and does NOT take any payment: the guest completes the reservation on the hotel's booking page using the returned link. Only call this AFTER (1) get_privacy_policy was called for THIS hotel and the user explicitly accepted that policy, and (2) you told the user exactly what will be sent and that the hotel team may be notified, and they explicitly agreed. Privacy acceptance given for one hotel does not apply to another hotel. The tool refuses (success=false) and creates nothing unless ALL of the following are valid: privacyAccepted=true, policyVersion (the value returned by get_privacy_policy for this hotel, matching the hotel's current policy), hotelName, fullName, a valid email, checkIn, nights, rooms, adults, and every field the hotel marks mandatory in get_privacy_policy (for example phone). Do not call it with partial data. Every successful call creates a NEW contact and conversation: calling it again for the same booking creates duplicates and may notify the hotel again. Call it once per booking request; if a call fails or times out, tell the user instead of retrying blindly. Pass the same search parameters (checkIn, nights, rooms, adults, etc.) that were used in check_room_availability.
get_hotel_summaries
ChatGPTRetrieves summary sections for one or more Hôtels Paris Rive Gauche (HPRG) group hotels in a single call. Pass all hotel names together in the hotelNames array rather than calling the tool once per hotel. Example: {"hotelNames": ["Baume Hotel Paris","Salvia Paris"], "section_id": "BREAKFAST"}. Covers hotel amenities, services, policies, and general information. If hotelNames is omitted, returns summaries for all HPRG hotels.
get_privacy_policy
ChatGPTFetches the privacy policy, its policyVersion and the mandatory contact fields for ONE specific HPRG hotel. Call this when the user expresses intent to book a room (e.g. "I want to book X at Y"). This is a read-only lookup: nothing is created or sent. The user's acceptance and the policyVersion are valid for that hotel only. If the user then wants to book at a DIFFERENT hotel, call this tool again for that hotel and ask for acceptance again. For further bookings at the same hotel you do not need to call it again unless the user is unsure what they accepted. After calling this tool: 1. If privacyText is non-null, present it to the user and ask if they accept it. 2. If they decline, stop - do not proceed to create_booking_contact. 3. Collect contact fields based on mandatoryFields rules: - isRequired=false -> do NOT ask for this field. Do not mention it. Do not pass it to create_booking_contact. - isRequired=true, isMandatory=false -> ask, but it is optional (user may skip) - isRequired=true, isMandatory=true -> required, do not proceed without it 4. Before calling create_booking_contact, tell the user exactly what will be sent (name, email, phone if given, hotel, dates) and that the hotel team may be notified, and wait for an explicit yes. 5. Call create_booking_contact with the collected fields and the policyVersion returned here.
get_weather_forecast
ChatGPTRetrieves weather forecast for a specific date in Paris. Use this tool when the user asks about weather for a specific day. If the user asks about general weather without mentioning a specific day, use get_hotel_summaries with section_id='WEATHER' instead. The date must be in YYYY-MM-DD format.
search_hotels
ChatGPTSearches hotels in the Hôtels Paris Rive Gauche (HPRG) group in Paris (group ID 5). Accepts an optional single hotel name or an array of hotel names; all criteria are optional and combined with AND logic. Returns hotel names, star ratings, and address details (location, coordinates, city, country, state) when available, and renders matching hotels on a map. This tool is for hotel discovery; it does not return room availability or pricing. To filter by amenity or feature (for example hotels with a spa), first call get_hotel_summaries with the relevant section_id to retrieve hotel information, then pass the matching hotel names to this tool's 'names' parameter to display them on the map.
search_nearby_places
ChatGPTSearches for places near an HPRG hotel using Google Maps — broad nearby discovery such as restaurants, museums, shopping malls, transit hubs, parks, and hospitals. Takes a hotel name (for example 'Baume Hotel Paris') and an optional place type. Intended for general nearby places rather than ticketed tours or structured experiences. Returns the full set of results from a single search; the result set is complete as returned.