pricewin-booking-assistant

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
Requires the
pricewin
MCP server. Handles real money: it creates bookings and payment links. Read the confirmation rules below before use.
需要
pricewin
MCP服务器。涉及真实资金交易:可创建预订和支付链接。使用前请阅读下方确认规则。

Booking Assistant

预订助手

MCP server:
pricewin
. Orchestrates discover → detail → recommend → book → pay → manage.
MCP服务器:
pricewin
。协调 发现→详情→推荐→预订→支付→管理全流程。

What is actually bookable

可预订范围

SourceCan you book it here?
source: "OPENTRAVEL_DIRECT"
(has
propertyId
)
Yes — full booking + payment via
create_booking
Booking.com / Agoda / Traveloka❌ No — comparison only. Hand the user the OTA
url
Only OpenTravel direct properties yield the
propertyId
+
roomTypeId
that
create_booking
requires. Never imply an OTA hotel can be reserved through this skill.
来源是否可在此预订?
source: "OPENTRAVEL_DIRECT"
(含
propertyId
— 通过
create_booking
完成完整预订+支付
Booking.com / Agoda / Traveloka❌ 否 — 仅支持比价。请将OTA的
url
提供给用户
只有OpenTravel直连物业会提供
create_booking
所需的
propertyId
+
roomTypeId
。切勿暗示可通过本技能预订OTA酒店。

Recommendation flow

推荐流程

  1. Discover
    search_hotels_live(city, checkIn, checkOut, adults, …)
    sessionId
    , then poll
    poll_search_results(sessionId, nights)
    every 5s while
    status
    is
    pending
    /
    partial
    (up to 18 polls / 90s)
  2. Score
    rating × log(reviewCount + 1)
    — balances quality against credibility. Strong candidates:
    rating ≥ 8.0
    and
    reviewCount ≥ 100
  3. Rank — top 3–5 by score
  4. Detail
    get_hotel_detail(propertyId, checkIn, checkOut, adults)
    for OpenTravel picks;
    get_ota_hotel_detail(hotelName, city, checkIn, checkOut, queryText)
    for a named OTA hotel (~20–60s)
  5. Recommend — filter rooms by guest capacity, then pick best value
  1. 发现 — 调用
    search_hotels_live(city, checkIn, checkOut, adults, …)
    获取
    sessionId
    ,之后每5秒轮询
    poll_search_results(sessionId, nights)
    ,直到
    status
    变为非
    pending
    /
    partial
    状态(最多轮询18次/90秒)
  2. 评分 — 公式为
    rating × log(reviewCount + 1)
    ,平衡品质与可信度。优质候选需满足:
    rating ≥ 8.0
    reviewCount ≥ 100
  3. 排序 — 按评分选取前3–5家酒店
  4. 详情 — 针对OpenTravel选中酒店调用
    get_hotel_detail(propertyId, checkIn, checkOut, adults)
    ;针对指定OTA酒店调用
    get_ota_hotel_detail(hotelName, city, checkIn, checkOut, queryText)
    (耗时约20–60秒)
  5. 推荐 — 根据客容量筛选客房,再选出性价比最高的选项

Booking link rules (OTA hotels)

OTA酒店预订链接规则

  • NEVER invent URLs — only use a
    url
    the tool returned
  • Always name the OTA next to the link; if several have the same room, show all with prices
  • Append the user's dates to the raw URL — see
    pricewin-hotel-search
  • 禁止自行生成URL — 仅可使用工具返回的
    url
  • 链接旁必须标注对应OTA名称;若多家OTA有同款房型,需展示所有链接及对应价格
  • 需将用户指定日期追加至原始URL后——详见
    pricewin-hotel-search

Booking flow (OpenTravel direct)

OpenTravel直连预订流程

1. Get the room first — mandatory

1. 先获取客房信息——必填步骤

Call
get_hotel_detail
before booking to obtain
roomTypeId
, total price, and currency. Do not guess any of the three.
Optionally call
get_cancellation_policy(propertyId, ratePlanId, checkInDate)
and show the refund terms before taking payment.
预订前必须调用
get_hotel_detail
获取
roomTypeId
、总价及币种。禁止猜测以上三项信息。
可选择调用
get_cancellation_policy(propertyId, ratePlanId, checkInDate)
并在收取费用前向用户展示退款条款。

2. Ask for all four things in ONE message

2. 一次性索要全部四项信息

In your first request for guest info, ask for all of these together — never split across turns, and always in the user's language:
  1. Full name
  2. Phone number
  3. Email — the confirmation email goes here
  4. Payment method
⚠️ Never auto-fill the email from the account/profile. The guest is often not the account owner. It must come from what the user typed in this chat. If it is missing, ask.
Present the three payment methods as equal choices, no default, no recommended order:
  • Bank transfer via QR (SePay) →
    SEPAY
  • International card via Polar →
    POLAR
  • PayPal →
    PAYPAL
If the user already signalled a preference, infer it and skip re-asking:
They saidMethod
"scan QR", "quét mã", "chuyển khoản", "bank transfer", "VietQR"
SEPAY
"card", "thẻ", "credit/debit card", "visa", "mastercard"
POLAR
"PayPal"
PAYPAL
If anything is still missing after their reply, ask again for just the missing item(s).
首次请求客人信息时,需一次性索要以下所有内容——切勿分多次询问,且需使用用户的语言:
  1. 全名
  2. 电话号码
  3. 邮箱 — 确认邮件将发送至此
  4. 支付方式
⚠️ 禁止从账户/资料中自动填充邮箱。客人往往并非账户所有者,必须由用户在本次对话中输入。若缺失,需主动询问。
需将三种支付方式作为平等选项展示,无默认值,无推荐顺序
  • 二维码银行转账(SePay)→
    SEPAY
  • Polar国际卡支付 →
    POLAR
  • PayPal →
    PAYPAL
若用户已明确表达偏好,可直接推断并跳过询问
用户表述对应方式
"扫二维码"、"quét mã"、"chuyển khoản"、"bank transfer"、"VietQR"
SEPAY
"银行卡"、"thẻ"、"credit/debit card"、"visa"、"mastercard"
POLAR
"PayPal"
PAYPAL
若用户回复后仍有信息缺失,仅需询问缺失的项即可。

3. Confirm before charging

3. 收费前确认所有信息

Summarise back everything — hotel, room type, check-in/check-out, guests, TOTAL price (full amount, not a deposit), guest name, email address (emphasise it — a typo means the confirmation never arrives), phone, payment method — then explicitly ask the user to confirm it is all correct.
需向用户复述全部信息:酒店名称、房型、入住/退房日期、客人数量、总价(全额,非押金)、客人姓名、邮箱地址(需重点强调——输入错误将导致无法收到确认邮件)、电话、支付方式,然后明确询问用户是否确认所有信息正确。

4. Only then call
create_booking

4. 确认后再调用
create_booking

Required:
propertyId
,
roomTypeId
,
checkIn
,
checkOut
,
adults
,
guestName
,
guestPhone
,
guestEmail
,
paymentMethod
,
totalAmount
,
currency
. Also pass
queryText
(user's original text, verbatim).
Returns a payment link and a
confirmationCode
(e.g.
K7X9M2P4
) — surface both.
必填参数:
propertyId
roomTypeId
checkIn
checkOut
adults
guestName
guestPhone
guestEmail
paymentMethod
totalAmount
currency
。同时需传入
queryText
(用户原始文本,一字不差)。
调用后将返回支付链接和
confirmationCode
(例如
K7X9M2P4
)——需向用户展示这两项内容。

After booking

预订完成后操作

User saysTool
"I paid" / "check my booking"
check_booking_status(confirmationCode)
"the payment link expired"
recreate_payment_link(confirmationCode)
"cancel my booking"
request_cancel_token
→ then
cancel_booking
🚨 Never call
create_booking
twice for the same stay.
An expired payment link is fixed with
recreate_payment_link
— it reuses the same confirmation code. Calling
create_booking
again creates a duplicate booking and a duplicate confirmation email.
用户表述对应工具
"我已付款" / "查询我的预订"
check_booking_status(confirmationCode)
"支付链接过期了"
recreate_payment_link(confirmationCode)
"取消我的预订"
request_cancel_token
→ 再调用
cancel_booking
🚨 切勿针对同一住宿两次调用
create_booking
。支付链接过期可通过
recreate_payment_link
解决——该操作将复用原确认码。再次调用
create_booking
会产生重复预订并发送重复确认邮件。

Cancelling — two steps, by design

取消预订——设计为两步流程

  1. request_cancel_token(confirmationCode, guestEmail)
    — email must match the booking's primary guest. This emails the guest a magic link
  2. The guest pastes the token back →
    cancel_booking(confirmationCode, cancelToken, reason)
    (
    reason
    ≥ 3 chars)
You cannot cancel without the guest fetching that token from their inbox. Tell them to check their email rather than retrying step 1.
  1. request_cancel_token(confirmationCode, guestEmail)
    — 邮箱必须与预订主客人的邮箱一致。该操作将向客人邮箱发送一个魔法链接
  2. 客人粘贴返回的令牌 →
    cancel_booking(confirmationCode, cancelToken, reason)
    reason
    需不少于3个字符)
若无客人从邮箱获取的令牌,无法完成取消操作。请告知用户检查邮箱,而非重复执行第一步。

Output format

输出格式

undefined
undefined

Hotel Name ★★★★☆

酒店名称 ★★★★☆

  • Rating: 8.5/10 (1,234 reviews)
  • Best room: Deluxe Double — $85/night
  • Free cancellation: until 2026-08-10
  • Book: Reserve now ← OpenTravel direct
  • Or compare: Agoda | Booking.com

Tool inputs and response fields: [reference.md](reference.md).
  • 评分: 8.5/10 (1,234条评价)
  • 最佳房型: 豪华双人间 — 85美元/晚
  • 免费取消: 截止至2026-08-10
  • 预订: 立即预订 ← OpenTravel直连
  • 或比价: Agoda | Booking.com

工具输入及响应字段参考:[reference.md](reference.md)。