start_service_request
Start a service request
Start a new supported service request immediately with the user's full intent and known public facts. Returns the vertical introduction and next intake/matching step, including availability when intake is complete; no separate lookup is needed. Use provider_hint only for an explicitly named company.
Parametersanswersuser_intentrequiredprovider_hintvertical_hintidempotency_keyrequired
update_service_request
Update a service request
Submit supplied answers and any chosen selected_time_key with the latest expected_state_version. Omitted optional/conditional fields do not block progress. Returns the updated next_action and current availability; continue directly without get_service_options. choose_service_provider means ask for a company before opening its protected contact card.
Parametersanswersrequest_idrequiredidempotency_keyrequiredexpected_state_versionrequiredexplicitly_unknown_field_ids
get_service_options
Get current service options
Refresh availability only when needed, such as when the user asks to check again. start_service_request and update_service_request already return current matching data. Returns aggregated windows and refinement fields without selecting a company or reserving capacity.
Parametersrequest_idrequired
render_service_request_form
Open the final service confirmation card
Open the protected contact/terms/Confirm card only after company choice. Pass the explicitly chosen company's option_key from current service_options; omit it only for a single option or a previously selected company. First give at most one short introductory sentence, then call this tool as the last action and end the reply. Do not write anything after the card: it owns all subsequent instructions, progress and receipt.
Parametersoption_keyrequest_idrequired
select_service_option
Select a company in the final card
Use only from the final protected card when the user selects one exact provider option. It rechecks availability, releases any previous selection, creates one temporary hold for the selected company, and returns its protected booking schema. It does not create a booking.
Parametersoption_keyrequiredrequest_idrequiredidempotency_keyrequiredexpected_state_versionrequired
create_service_booking
Create the confirmed service booking
Use only from the protected final card with its one-time authorization after the user presses Confirm. Provider, request, hold, time and protected answers come from server context; do not pass or reconstruct them. This anonymous action completes the booking and must not trigger Connect or phone verification. Safe retries must reuse the same idempotency key.
Parameterssourcerequiredcampaign_idcorrelation_idrequiredidempotency_keyrequiredanonymous_session_idrequiredbooking_authorization_tokenrequired
complete_account_link
Finish saving booking details
Compatibility-only completion for an explicitly initiated legacy profile-link session. Never call it as part of a new booking and never ask for an SMS code in chat. Viewing or managing an existing appointment starts Connect through the corresponding booking-management tool.
Parameterslinking_session_idrequired
list_my_service_bookings
List my appointments
Use immediately when the user asks to see or manage appointments. For cancellation or rescheduling, pass status='active'. Active means a confirmed or rescheduled appointment whose arrival window has not ended; past or terminal bookings are never active. If multiple active appointments are returned, show the choices instead of guessing. Connect is handled by the platform; never ask for a phone or code in chat.
Parameterslimitstatus
get_my_service_booking
Open one of my appointments
Open an appointment that belongs to the connected customer. This is read-only. Historical appointments have no management actions. Give at most one short introductory sentence before calling this tool as the last action, then end the reply: no summary, status, details or instructions after the card. The live card owns viewing, exact change review and completion.
Parametersintentbooking_idrequired
prepare_service_booking_change
Review an exact appointment change
Use this only from the protected management form after secure appointment access. It prepares the exact reschedule or cancellation review but does not change the booking. A reschedule accepts only a live slot returned inside the protected form and temporarily reserves that capacity. The user must separately confirm the exact preview before a write tool can run.
Parametersactionrequiredbooking_idnew_slot_ididempotency_keyrequiredmanagement_context_token
reschedule_service_booking
Reschedule an approved appointment
Use this only with the one-time approval issued after the user confirms the exact reschedule inside the protected management form. It moves the existing booking to the reserved available time, preserves its prior-time history, frees the old capacity, and sends transactional notifications. Safe retries must reuse the same idempotency key.
Parameterssourcerequiredcorrelation_idrequiredidempotency_keyrequiredanonymous_session_idrequiredbooking_change_authorization_tokenrequired
cancel_service_booking
Cancel an approved appointment
Use this only with the one-time approval issued after the user confirms the exact cancellation inside the protected management form. It cancels only the authorized active booking, frees its capacity, and sends transactional notifications. Safe retries must reuse the same idempotency key.
Parameterssourcerequiredcorrelation_idrequiredidempotency_keyrequiredanonymous_session_idrequiredbooking_change_authorization_tokenrequired