Request reservation
request_reservationLANGUAGE: Answer in the SAME language the user wrote in. The helper sentences attached to results (yumiReservation, influencerContent, keywordMatch, reputation notes, dietary note, aiSummary, ownerIntro, meta notes) are Korean source text: render them in the user's language and never paste raw Korean into a non-Korean answer. 'As-is' / VERBATIM means keep the facts, numbers, venue names, @handles, URLs, link labels, phones and prices exactly. Keep Korean venue names and addresses, adding a romanization when it helps. Send a reservation request (a table, or a beauty or fitness appointment: first ask what yumiBooking.askBefore lists and put the answers in note) to a venue whose result shows yumiBooking.canRequest=true (Yumi partners included). Book by conversation: collect the details in chat (works by voice too) and call this directly; open the restaurant_reservation widget only if the user taps Reserve or asks for a form. REAL side effect: it creates a pending reservation and notifies the venue right away. PRECONDITIONS FIRST: settle a concrete date & time and the venue before asking for any personal details. If the time has already passed or the date is relative ('오늘', '금요일'), confirm the date first and do NOT front-load name/phone/email in that message. reservationTime MUST be in the future (Korea time); on reservation_time_past don't retry — re-confirm the date. Find the id with search_places: for a NAMED VENUE put its name in keyword only and do NOT add a business_category. Confirm venue, date & time, party size, the guest's name and phone. Phone is always required (foreign guests give their own international number). Korean number → phone only, never ask for an email. Non-Korean number → ask for an email in the same step (we can't text abroad; the email has a link to view or cancel the booking). Errors: reservation_requests_closed = nothing was sent; when body.earliestReservation is present, the request can be held overnight for that time or later — offer it. venue_closed_at_requested_time = ask for another time. reservation_too_close_to_closing = times are taken only up to 2 hours before closing; offer body.latestReservation or an earlier time. reservation_not_available = don't retry; say '헤이유미로는 아직 예약이 안 되는 매장이에요', link its placeUrl and offer requestable venues nearby. The result is 'pending', not booked. If it has reviewStartsAt, it was held overnight: relay its yumiNextStep (the venue checks from that time; the result goes to the guest's phone or email) and don't call wait_for_reservation. Otherwise tell the user they'll hear back within 5 minutes, then call wait_for_reservation until it settles: confirmed = booked, cancelled = the venue declined, expired = no answer in time (offer alternatives).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"placeId": "<placeId>",
"reservationTime": "<reservationTime>",
"guestCount": "<guestCount>",
"guestPhone": "<guestPhone>"
},
"name": "request_reservation"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Note to the venue (seating, occasion, high chair). Required at beauty and fitness venues: the answers to yumiBooking.askBefore, e.g. cut and perm. | |
| placeId | Yes | Place id from a search result. Search first; never guess. | |
| guestName | No | Guest's name. | |
| guestCount | Yes | Party size, at least 1. | |
| guestEmail | No | Required only when guestPhone isn't Korean (otherwise guest_email_required); never ask a Korean guest. Ask together with the phone. | |
| guestPhone | Yes | Required. The guest's mobile ('010-1234-5678', +82…, or +<country><number> for foreign guests). Korean numbers also get the outcome by text. | |
| guestLanguage | No | Language the user is chatting in, ISO 639-1 (e.g. 'en', 'de', 'ja'). The venue's reply is sent back in it. | |
| idempotencyKey | No | Optional stable value to retry the same request without duplicates. | |
| reservationTime | Yes | ISO 8601 with offset, e.g. "2026-07-23T19:00:00+09:00". Must be in the future. |