- Brand
- HeyYumi
- Category
- Travel & Hospitality
- Primary Subcategory
- Restaurant Reservations & Dining
Integration details
Description
헤이유미(HeyYumi)는 한국의 맛집·식당·카페·바를 찾아 추천하고, ChatGPT 대화 안에서 식당 예약·레스토랑 예약까지 바로 이어주는 플러그인입니다. "강남 맛집 추천해줘", "성수동 조용한 카페", "저녁 7시 3명 예약되는 한식당"처럼 물어보면 됩니다. 서울·경기·부산·제주 42만 곳이 넘는 검증된 매장 데이터(교차 확인·신뢰도 점수)로 지어낸 답 대신 실제 영업시간·메뉴·가격·주차·분위기·비건·영어 응대 등 40가지가 넘는 조건으로 좁힙니다. 유미 파트너 매장이면 전화나 외부 링크 없이 채팅에서 예약을 요청하고, 사장님 승인 후 확정까지 받을 수 있습니다. 지금 그게 되는지도 사장님에게 바로 물어봐 드립니다. 고깃집에 삼겹살이 아직 남았는지, 카페에 두바이 쫀득 쿠키가 지금 있는지, 웨이팅이 얼마나 되는지, 10명이 바로 앉을 수 있는지를 실시간으로 확인해 답을 가져다줍니다. 한국 사람도, 한국에 놀러 온 외국인도 똑같이 쓸 수 있습니다. HeyYumi helps you find where to eat, drink, or go out in Korea and book a table without leaving the chat — perfect for both Korean locals and visitors to Korea. Ask things like "best restaurants in Seoul," "quiet cafe near Hongdae with wifi," or "book a Korean BBQ place in Gangnam for 4 tonight." Every venue — restaurants, cafes, bakeries, dessert shops, and bars — comes from Yumi's refined, cross-verified dataset (420,000+ places, strongest in Seoul, Gyeonggi, Busan and Jeju), each with a confidence score and a last-checked date instead of a guess. Filter by neighborhood, subway station, landmark, cuisine, price, atmosphere, parking, pet-friendly, private room, vegan options, English-speaking staff, open-now, and more. At Yumi partner venues you can send a real restaurant reservation request to the owner right inside ChatGPT and get a confirmed or declined answer back — no phone call, no external booking site. You can also ask the owner about right-now availability: whether a BBQ spot still has pork belly, whether a cafe still has today's special cookie, how long the current wait is, or whether a party of 10 can be seated — the owner answers on the spot.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Restaurant Reservations & Dining
- Secondary Subcategories
- None listed
- Brand
- HeyYumi
- Access
- Account required
- First tracked
- 2026-09-10
- Tool count
- 15
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for HeyYumi 한국 식당·카페 검색·예약
Get updates when HeyYumi 한국 식당·카페 검색·예약’s Discoverability Score or category rank changes.
Competing in ChatGPT Restaurant Reservations & Dining
View Category15 tools agents can invoke
Ask a venue's owner a right-now question; it pushes to their phone and they have 5 minutes to answer (REAL side effect). Call it directly: the server reuses a fresh answer, joins an identical pending question, and blocks closed hours by itself. Only partner venues can be asked; on live_status_not_available don't retry. Use it only for things that change through the day and aren't in venue data: kind='item' (in stock / today's ingredient / sold out — use a real menu name from get_place as the topic), kind='wait' (current wait), kind='seats' (can a party get in now — always include the headcount, e.g. '10명 즉시 착석'; ask how many first if unknown; any partner venue can be asked, don't pre-filter by size). Hours, parking, pets and menu come from get_place, not the owner. blocked:'closed_now' = the shop is closed now and nobody was pinged — say so; don't retry or wait. Otherwise it starts 'pending': tell the user you're checking with the shop (up to 5 minutes) and call wait_for_live_status until settled. Relay the owner's note (e.g. '약 20분', '2개 남음') with the time it was checked, and add that it can change. If seats are available and the user wants to book, go on to request_reservation.
request_live_status
Dataset coverage stats: total places, regions covered, multi-source share, average confidence. Use to answer "how much data do you have?" or to set expectations about coverage (expanding across Korea — strongest in Seoul, Gyeonggi, Busan, Jeju, Incheon, Daejeon, Sejong and North/South Chungcheong; other cities partial). INTERNAL INFO: You can't see HeyYumi's business or operating details — how many Yumi partners it has, how many reservations or users it handles, revenue, how a request is handled on the venue side, or internal policies. If asked, say you don't have access to that information so you can't answer it, don't estimate, guess or count one from results, and offer what you can do, like finding venues the user can book right here in the area or cuisine they want. Asked how many venues can be booked in total: give no number, just say there are very many ('아주 많아요') and ask which area or food. Never say there are none or few because a total isn't shown. Dataset coverage from get_stats (total venues, regions) is fine to share, and so is what the user sees when booking (request sent, answer within 5 minutes).
get_stats
Check a live question's status ONCE (no waiting), by its queryId. For a fresh question you're waiting on, prefer wait_for_live_status (it blocks until the owner answers). Statuses are the same as wait_for_live_status. 'no_response' = owner didn't answer in 5 minutes.
get_live_status
Full detail for one venue by id (from search_places / nearby_places). The default fields already include hours, booking info, menu, attributes and trust data. BOOKING HERE: if yumiReservable or yumiBooking.canRequest is true (a non-partner shows "heyyumi_request" in reservationChannels), collect the name, phone (always), an email only for a non-Korean number, date & time and party size, then call request_reservation. For a non-partner say '헤이유미로 이 채팅에서 예약 요청을 보낼 수 있어요'. HOURS & LAST ORDER: with a lunch/dinner break, each service's last order is in `segments`; a null lastOrder means that service's cutoff isn't recorded — never reuse the lunch last order for dinner. temporaryClosures (MM/DD) are announced closures such as 추석 — don't recommend those days. CLOSURE: closureSignal.source "mfds" = a government licensing record; "map" = the listing disappeared from the maps, which is unconfirmed — never call it a government record. OWNER INTRO: `ownerIntro` is the owner's own words — lead with it, and use aiSummary only for facts it lacks. CUISINE MISMATCH: if serviceAttributes.classification_conflict exists, describe the venue by its menu ('간판은 한식이지만 메뉴는 파스타 중심'). VEGAN: vegan_main_count 0 means only vegan drinks; owner_declared=true is the owner's own confirmation; shared utensils must be confirmed with the venue. GLUTEN-FREE / ALLERGY: gluten_free is owner-confirmed, but cross-contamination still has to be checked with the venue. A nut-allergy note is reference only — never call a venue allergy-safe, and tell the user to contact the venue in advance (it can be life-threatening). HALAL: serviceAttributes.halal is self-advertised or owner-confirmed, not certified — quote its note. PHOTOS: use show_place_photos. Only show URLs we return (the owner's photos), as labeled links; never substitute images from elsewhere. LANGUAGE: 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. BOOKING: `yumiReservable:true` = a Yumi partner. `yumiBooking.canRequest=true` (partners and many other venues) = you can send a reservation request right here with request_reservation, same flow and same wording for all. Proactively say it while recommending, even if the user didn't ask about booking: a partner gets its own line — use the attached `yumiReservation` sentence (e.g. '이 매장은 유미 파트너 매장이라, 예약 요청에 답이 빠르고 메뉴 재고나 지금 웨이팅이 있는지까지 이 채팅에서 물어볼 수 있어요. 원하시면 바로 예약 요청을 보내드릴게요'); the other requestable venues get one closing line for the group, e.g. '여기 모두 헤이유미로 바로 예약 요청할 수 있어요. 예약해 드릴까요?'. For a non-partner, don't mention partner status at all; describe its booking exactly like any other requestable venue, with no extra conditions or caveats such as '확정은 매장 응답이 필요해'. Until the venue accepts, say 예약 요청, not '바로 예약돼요' or '확정'. When you send a request, tell the user they'll hear back within 5 minutes ('보내면 5분 안에 수락 여부를 알 수 있어요'). Don't promise a reply speed beyond that. A non-partner (requestHours '10:00-20:00 KST') is checked between 10:00 and 20:00 Korea time; a request sent outside that is still accepted and held until 10:00 (the time must then be 11:00 or later), so just send it; partners have no hour limit (don't call it 24-hour). When the user wants to book, lead with the partners. A venue with neither flag can't be booked through HeyYumi yet. Don't volunteer that; only if the user asks to book it, say '헤이유미로는 아직 예약이 안 되는 매장이에요' and offer requestable venues nearby. Results carry no booking links. Being open at a time isn't a free table: don't claim seats or party-size room yourself — sending the request is how that gets answered. PLACE LINK: link each venue name to its `placeUrl` (the venue's heyyumi.ai page), e.g. `[카츠하나비](placeUrl)`. If it's null, leave the name unlinked. HONESTY: There is no star rating — `rating` is null on every venue by policy, not a data error; never invent one. On 0 results say so; only present venues these tools returned. Never attribute reviewCount or any value to a specific map service; just say '리뷰 300'. DATA GAPS: a missing field only means unknown. NEVER say '헤이유미에는 ~ 정보가 없다' — leave it out, or suggest '방문 전 매장에 확인'. Filters keep only confirmed venues, so say '확인된 곳'; absent ≠ no. openNow.open=null means the hours are unknown, not closed. possiblyClosed=true → don't put it on top, and tell the user to check it's still open. A low freshnessScore or recently_active=false means hours and prices may be outdated. CONCERNS: quote `reputation.concerns[].note` softly as written; never print raw tags or label a venue (불친절한 곳). INFLUENCER: when `influencerFeatures` is present, NAME the @handle and call it '소개한 곳' (never 보증/공인 — it's a discovery signal, not a trust basis); post the attached `influencerContent` VERBATIM with EVERY link from contentUrls, and don't invent a link when there is none. ONE BOOLEAN ONLY: wheelchair_accessible means '휠체어 가능' and nothing more (no step, elevator or restroom detail); pet_friendly doesn't say indoor; restroom_gender_separated isn't cleanliness. Never call a venue certified halal, gluten-free safe or allergy-safe; tell the user to confirm with the venue. INTENT DISH: if the user asked for a dish, meat or diet, lead with the matching item (matchedMenu or menu), not aiSummary's headline dish. Weak keyword matches carry `keywordMatch`: quote it and keep them out of the top picks. Prices are per dish, never '1인 X원'; price.level null = unknown. Indoor smoking is banned in Korea, so venues are non-smoking inside (cigar/hookah bars aside).
get_place
Check a reservation's status once, no waiting: pending, confirmed, cancelled (the venue declined), expired (no answer in time) or no_show. While waiting on a fresh request, use wait_for_reservation.
get_reservation
List the business_category values with counts: restaurant, cafe and bar, plus non-food partner kinds such as nail when there are any (listed with count null — those are partner-only, so the number isn't shared). Use when the user asks what kinds of places you can find, or to confirm a category before filtering.
list_categories
Find venues within radius_m of a lat/lng (each result has distanceM). For a named place prefer search_places with region_name; if you need coordinates take them from resolve_regions — never guess them. sort: "distance" (default) for the closest; "discovery" for '근처 추천'-style asks. On 0 results widen radius_m (max 5000) or drop a filter. keyword is only the dish or venue name; a NAMED VENUE goes in `keyword` only — do NOT set business_category. FILTERS: use the structured filters (booleans take "true"). subtype = the kind of place (바·포차·삼겹살·국밥). MEAT-TYPE STEERING: for a meat (돼지 위주, 한우) add bbq_meat with subtype=korean_bbq — mixed 삼겹+한우 houses stay, beef-only houses drop; never keyword="돼지고기". NO KOREAN NEEDED: for places you can visit without Korean, set foreigner_friendly="true" alone. FOOD vs DRINKS: hungry / a meal / 야식·밥 먹을 곳 (no drinking mentioned) → business_category="restaurant"; without it late hours fill up with pubs. late_night_eatery and late_night include bars, so they don't mean food. TIME & BOOKING: any time or meal ('저녁 7시', '점심', '지금') goes in open_at. For booking intent also pass reservation_channel="yumi"; on 0 the server widens and sends meta.reservationFallback.note — relay it. META: follow meta.ignoredFilters[].hint; meta.ignoredFields = a field name we don't have. meta.softenedFilters (atmosphere is a PREFERENCE that only ranks) and meta.relaxedFilters (weak filters dropped on 0 results) → say which conditions weren't confirmed. BROAD / TRUNCATED: when meta.truncated is true or meta.total is large, show 2–3 picks and offer one refining axis (cuisine, budget, solo or group, vibe). BROADENED LOCATION: if resolvedAs is wider than the spot the user named, or you widened to a 구/시, the results are DISTRICT-wide — don't say '근처'; closeness to that spot is UNVERIFIED. LATE MEAL: open_at doesn't cover LAST ORDER. An unknown last order near closing is 확인 필요; a confirmed one within 30–45 min of the time means they must hurry — a wording duty, do NOT down-rank. LOCALS: repeat_customers means 단골 많은 곳, never '현지인 맛집'. COVERAGE: HeyYumi officially serves 서울, 경기, 부산, 제주, 인천, 대전, 세종, 충북, 충남. Always search the area the user names first. If it's outside these regions (e.g. Daegu, Gwangju, Gangwon, abroad — even a station like "Dongdaegu Station"), lead by saying, in the user's language, that HeyYumi doesn't support that area yet and covers 서울, 경기, 부산, 제주, 인천, 대전, 세종, 충북, 충남. Do NOT reply with a bare "no results", and say it EVEN WHEN a few venues there still come back (present those as rare exceptions). LANGUAGE: 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. BOOKING: `yumiReservable:true` = a Yumi partner. `yumiBooking.canRequest=true` (partners and many other venues) = you can send a reservation request right here with request_reservation, same flow and same wording for all. Proactively say it while recommending, even if the user didn't ask about booking: a partner gets its own line — use the attached `yumiReservation` sentence (e.g. '이 매장은 유미 파트너 매장이라, 예약 요청에 답이 빠르고 메뉴 재고나 지금 웨이팅이 있는지까지 이 채팅에서 물어볼 수 있어요. 원하시면 바로 예약 요청을 보내드릴게요'); the other requestable venues get one closing line for the group, e.g. '여기 모두 헤이유미로 바로 예약 요청할 수 있어요. 예약해 드릴까요?'. For a non-partner, don't mention partner status at all; describe its booking exactly like any other requestable venue, with no extra conditions or caveats such as '확정은 매장 응답이 필요해'. Until the venue accepts, say 예약 요청, not '바로 예약돼요' or '확정'. When you send a request, tell the user they'll hear back within 5 minutes ('보내면 5분 안에 수락 여부를 알 수 있어요'). Don't promise a reply speed beyond that. A non-partner (requestHours '10:00-20:00 KST') is checked between 10:00 and 20:00 Korea time; a request sent outside that is still accepted and held until 10:00 (the time must then be 11:00 or later), so just send it; partners have no hour limit (don't call it 24-hour). When the user wants to book, lead with the partners. A venue with neither flag can't be booked through HeyYumi yet. Don't volunteer that; only if the user asks to book it, say '헤이유미로는 아직 예약이 안 되는 매장이에요' and offer requestable venues nearby. Results carry no booking links. Being open at a time isn't a free table: don't claim seats or party-size room yourself — sending the request is how that gets answered. PLACE LINK: link each venue name to its `placeUrl` (the venue's heyyumi.ai page), e.g. `[카츠하나비](placeUrl)`. If it's null, leave the name unlinked. HONESTY: There is no star rating — `rating` is null on every venue by policy, not a data error; never invent one. On 0 results say so; only present venues these tools returned. Never attribute reviewCount or any value to a specific map service; just say '리뷰 300'. DATA GAPS: a missing field only means unknown. NEVER say '헤이유미에는 ~ 정보가 없다' — leave it out, or suggest '방문 전 매장에 확인'. Filters keep only confirmed venues, so say '확인된 곳'; absent ≠ no. openNow.open=null means the hours are unknown, not closed. possiblyClosed=true → don't put it on top, and tell the user to check it's still open. A low freshnessScore or recently_active=false means hours and prices may be outdated. CONCERNS: quote `reputation.concerns[].note` softly as written; never print raw tags or label a venue (불친절한 곳). INFLUENCER: when `influencerFeatures` is present, NAME the @handle and call it '소개한 곳' (never 보증/공인 — it's a discovery signal, not a trust basis); post the attached `influencerContent` VERBATIM with EVERY link from contentUrls, and don't invent a link when there is none. ONE BOOLEAN ONLY: wheelchair_accessible means '휠체어 가능' and nothing more (no step, elevator or restroom detail); pet_friendly doesn't say indoor; restroom_gender_separated isn't cleanliness. Never call a venue certified halal, gluten-free safe or allergy-safe; tell the user to confirm with the venue. INTENT DISH: if the user asked for a dish, meat or diet, lead with the matching item (matchedMenu or menu), not aiSummary's headline dish. Weak keyword matches carry `keywordMatch`: quote it and keep them out of the top picks. Prices are per dish, never '1인 X원'; price.level null = unknown. Indoor smoking is banned in Korea, so venues are non-smoking inside (cigar/hookah bars aside).
nearby_places
LANGUAGE: 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 table reservation request 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).
request_reservation
Open the optional reservation form widget (OpenAI restaurant-reservation entry point). ONLY call this when the user taps a Reserve button on a venue card or asks for a booking form. conversational booking is the default: if they just ask to book in chat, collect the details and call request_reservation directly, and never re-collect details they already gave. Pass the place id as restaurant_id.
restaurant_reservation
Turn a Korean place name into region_code, center lat/lng and venue count — admin areas (dong/sigungu/sido), any subway station, nicknames (홍대·가로수길) and landmarks incl. airports and bus terminals (더현대·코엑스·제주공항·김포공항·동서울터미널; pass them in `dong`). Stations, nicknames and landmarks return a center + radiusM without a region_code. Use it to get coordinates for nearby_places; for a normal search just pass region_name to search_places. Romanized names work. Put a whole city or province in `sido` ("부산" → 부산광역시). Same-named places return several candidates — pick by context or ask. Never invent codes or coordinates.
resolve_regions
Optional peek at a recent owner answer without asking anything. You usually don't need it — request_live_status already reuses a fresh answer in one call. Returns {found, status, note, verifiedAt, validUntil} or {found:false}. Same scope as request_live_status (stock, wait, seats right now); topic is a bare token like '두바이 쫀득 쿠키'.
search_live_status
Search verified restaurants, cafes, bakeries and bars in Korea (HeyYumi's own cross-checked data), plus Yumi partner nail and hair salons (business_category). Use it when the user wants recommendations, a shortlist or a specific place to eat, drink or go out. WHERE: put the place in region_name as the user said it — 동/구/시, any station, nicknames (홍대·가로수길), landmarks, airports — in ONE call. Don't guess coordinates. An ambiguous admin name returns candidates: ask, then retry. With no location at all, ask for a neighborhood or station first. WHAT: keyword is only the dish or venue name. A NAMED VENUE: its name goes in `keyword` only — do NOT set business_category. ORDER: results are ranked by pick quality (meta.sort), not distance — present the top as your picks. One call with page_size 5–10 is enough for a shortlist; call get_place only when the user drills into one venue. FILTERS: use the structured filters (booleans take "true"). subtype = the kind of place (바·포차·삼겹살·국밥). MEAT-TYPE STEERING: for a meat (돼지 위주, 한우) add bbq_meat with subtype=korean_bbq — mixed 삼겹+한우 houses stay, beef-only houses drop; never keyword="돼지고기". NO KOREAN NEEDED: for places you can visit without Korean, set foreigner_friendly="true" alone. FOOD vs DRINKS: hungry / a meal / 야식·밥 먹을 곳 (no drinking mentioned) → business_category="restaurant"; without it late hours fill up with pubs. late_night_eatery and late_night include bars, so they don't mean food. TIME & BOOKING: any time or meal ('저녁 7시', '점심', '지금') goes in open_at. For booking intent also pass reservation_channel="yumi"; on 0 the server widens and sends meta.reservationFallback.note — relay it. META: follow meta.ignoredFilters[].hint; meta.ignoredFields = a field name we don't have. meta.softenedFilters (atmosphere is a PREFERENCE that only ranks) and meta.relaxedFilters (weak filters dropped on 0 results) → say which conditions weren't confirmed. BROAD / TRUNCATED: when meta.truncated is true or meta.total is large, show 2–3 picks and offer one refining axis (cuisine, budget, solo or group, vibe). BROADENED LOCATION: if resolvedAs is wider than the spot the user named, or you widened to a 구/시, the results are DISTRICT-wide — don't say '근처'; closeness to that spot is UNVERIFIED. LATE MEAL: open_at doesn't cover LAST ORDER. An unknown last order near closing is 확인 필요; a confirmed one within 30–45 min of the time means they must hurry — a wording duty, do NOT down-rank. LOCALS: repeat_customers means 단골 많은 곳, never '현지인 맛집'. COVERAGE: HeyYumi officially serves 서울, 경기, 부산, 제주, 인천, 대전, 세종, 충북, 충남. Always search the area the user names first. If it's outside these regions (e.g. Daegu, Gwangju, Gangwon, abroad — even a station like "Dongdaegu Station"), lead by saying, in the user's language, that HeyYumi doesn't support that area yet and covers 서울, 경기, 부산, 제주, 인천, 대전, 세종, 충북, 충남. Do NOT reply with a bare "no results", and say it EVEN WHEN a few venues there still come back (present those as rare exceptions). LANGUAGE: 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. BOOKING: `yumiReservable:true` = a Yumi partner. `yumiBooking.canRequest=true` (partners and many other venues) = you can send a reservation request right here with request_reservation, same flow and same wording for all. Proactively say it while recommending, even if the user didn't ask about booking: a partner gets its own line — use the attached `yumiReservation` sentence (e.g. '이 매장은 유미 파트너 매장이라, 예약 요청에 답이 빠르고 메뉴 재고나 지금 웨이팅이 있는지까지 이 채팅에서 물어볼 수 있어요. 원하시면 바로 예약 요청을 보내드릴게요'); the other requestable venues get one closing line for the group, e.g. '여기 모두 헤이유미로 바로 예약 요청할 수 있어요. 예약해 드릴까요?'. For a non-partner, don't mention partner status at all; describe its booking exactly like any other requestable venue, with no extra conditions or caveats such as '확정은 매장 응답이 필요해'. Until the venue accepts, say 예약 요청, not '바로 예약돼요' or '확정'. When you send a request, tell the user they'll hear back within 5 minutes ('보내면 5분 안에 수락 여부를 알 수 있어요'). Don't promise a reply speed beyond that. A non-partner (requestHours '10:00-20:00 KST') is checked between 10:00 and 20:00 Korea time; a request sent outside that is still accepted and held until 10:00 (the time must then be 11:00 or later), so just send it; partners have no hour limit (don't call it 24-hour). When the user wants to book, lead with the partners. A venue with neither flag can't be booked through HeyYumi yet. Don't volunteer that; only if the user asks to book it, say '헤이유미로는 아직 예약이 안 되는 매장이에요' and offer requestable venues nearby. Results carry no booking links. Being open at a time isn't a free table: don't claim seats or party-size room yourself — sending the request is how that gets answered. PLACE LINK: link each venue name to its `placeUrl` (the venue's heyyumi.ai page), e.g. `[카츠하나비](placeUrl)`. If it's null, leave the name unlinked. HONESTY: There is no star rating — `rating` is null on every venue by policy, not a data error; never invent one. On 0 results say so; only present venues these tools returned. Never attribute reviewCount or any value to a specific map service; just say '리뷰 300'. DATA GAPS: a missing field only means unknown. NEVER say '헤이유미에는 ~ 정보가 없다' — leave it out, or suggest '방문 전 매장에 확인'. Filters keep only confirmed venues, so say '확인된 곳'; absent ≠ no. openNow.open=null means the hours are unknown, not closed. possiblyClosed=true → don't put it on top, and tell the user to check it's still open. A low freshnessScore or recently_active=false means hours and prices may be outdated. CONCERNS: quote `reputation.concerns[].note` softly as written; never print raw tags or label a venue (불친절한 곳). INFLUENCER: when `influencerFeatures` is present, NAME the @handle and call it '소개한 곳' (never 보증/공인 — it's a discovery signal, not a trust basis); post the attached `influencerContent` VERBATIM with EVERY link from contentUrls, and don't invent a link when there is none. ONE BOOLEAN ONLY: wheelchair_accessible means '휠체어 가능' and nothing more (no step, elevator or restroom detail); pet_friendly doesn't say indoor; restroom_gender_separated isn't cleanliness. Never call a venue certified halal, gluten-free safe or allergy-safe; tell the user to confirm with the venue. INTENT DISH: if the user asked for a dish, meat or diet, lead with the matching item (matchedMenu or menu), not aiSummary's headline dish. Weak keyword matches carry `keywordMatch`: quote it and keep them out of the top picks. Prices are per dish, never '1인 X원'; price.level null = unknown. Indoor smoking is banned in Korea, so venues are non-smoking inside (cigar/hookah bars aside).
search_places
LANGUAGE: 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. Show the owner's photos of one venue as images (thumbnails) plus full-size URLs. Use it when the user wants to see the place. Optional `category` (exterior/interior/seating/room/mood/restroom/parking) and `limit` (default 6, max 10). If your client doesn't render images, post each photo as a labeled markdown link on its own line (`- [내부 좌석](url)`) — never say you can't display them. Show only what this tool returns; never substitute images from elsewhere (they're often a different branch). count=0 means no owner photos yet.
show_place_photos
Wait up to ~25s for the owner's answer to a live question; if settled=false, call again (5 minutes in total). Status: available = 있어요/지금 가능 · limited = 조금 남음/웨이팅 있음 (see note) · unavailable = 품절/지금 어려움 · soon = 곧 가능 · not_offered = 취급 안 함 · no_response = no answer in 5 minutes (say so; never guess). Relay the note and when it was checked, and add that it can change before they arrive.
wait_for_live_status
Wait up to ~25s for the venue to answer a pending reservation. If settled=false, call it again (usually 5 minutes in total, sometimes a few minutes more). When settled=true, tell the user: confirmed = booked; cancelled = the venue declined; expired = no answer in time (offer another time or place).
wait_for_reservation
HeyYumi 한국 식당·카페 검색·예약 ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve HeyYumi 한국 식당·카페 검색·예약's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are HeyYumi 한국 식당·카페 검색·예약 alternatives on ChatGPT?
As of 2026-11-02, HeyYumi 한국 식당·카페 검색·예약 competes with AI Booker, Bitte, Book&Eat, Dim Hour, dip.rest, Dubai Table, FoodNirvana, Forktime and 10 more in ChatGPT Restaurant Reservations & Dining, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.