# Pricewin Booking Assistant > Recomienda habitaciones y completa una reserva real de principio a fin en OpenTravel direct: enlace de pago (QR, tarjeta o PayPal), estado del pago, reenvío o cancelación. Para hoteles solo-OTA, da el enlace directo. Fuente: https://skillsagentes.com/skills/price-win/pricewin-skills-hub/pricewin-booking-assistant Markdown: https://skillsagentes.com/skills/price-win/pricewin-skills-hub/pricewin-booking-assistant.md Repositorio: https://github.com/Price-Win/pricewin-skills-hub Autor: Price-Win Licencia: MIT-0 Actualizado: hace 22 días Coste de contexto: 110 tok instalada, 1.7k tok al activarse, 4.9k tok con todos los archivos del bundle Bundle: 4 archivos, 19 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add Price-Win/pricewin-skills-hub --skill pricewin-booking-assistant --agent claude-code # Cursor npx -y skills add Price-Win/pricewin-skills-hub --skill pricewin-booking-assistant --agent cursor # Codex npx -y skills add Price-Win/pricewin-skills-hub --skill pricewin-booking-assistant --agent codex # Gemini CLI npx -y skills add Price-Win/pricewin-skills-hub --skill pricewin-booking-assistant --agent gemini # Windsurf npx -y skills add Price-Win/pricewin-skills-hub --skill pricewin-booking-assistant --agent windsurf # Cline npx -y skills add Price-Win/pricewin-skills-hub --skill pricewin-booking-assistant --agent cline ``` ## Qué hace - Orquesta la recomendación y reserva completa de hoteles OpenTravel direct: descubre, puntúa, detalla, reserva y cobra - Genera enlaces de pago (QR bancario, tarjeta o PayPal) y consulta o reenvía su estado - Cancela reservas con un flujo de dos pasos: token de confirmación enviado al email del huésped - Entrega enlaces directos de Booking.com/Agoda/Traveloka cuando el hotel solo se puede comparar, no reservar ## Cuándo usarla - Recomendar o reservar habitaciones de hotel - Cobrar una estancia y generar el enlace de pago - Consultar el estado de una reserva por su código de confirmación - Cancelar una reserva existente ## Cuándo no - El hotel no es OpenTravel direct (no tiene propertyId): solo se puede comparar y entregar el enlace de la OTA, no reservarlo aquí ## Qué la activa - "Reserva la Deluxe Double de este hotel para estas fechas" - "Genera el enlace de pago con QR bancario para mi reserva" - "Cancela mi reserva con código K7X9M2P4" - "Revisa el estado de pago de mi reserva" ## Antes de instalar - Necesita el servidor MCP `pricewin`; maneja dinero real, así que confirma siempre el resumen completo y el precio total antes de crear la reserva. ## Archivos - SECURITY.md — 4 KB - SKILL.md — 7 KB - reference.md — 3 KB - skill-card.md — 5 KB ## SKILL.md Reproducido tal cual desde Price-Win/pricewin-skills-hub bajo MIT-0. Esta sección es el documento original y está en inglés. > Requires the `pricewin` MCP server. Handles real money: it creates bookings and > payment links. Read the confirmation rules below before use. # Booking Assistant **MCP server:** `pricewin`. Orchestrates discover → detail → recommend → **book → pay → manage**. ## What is actually bookable | Source | Can 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. ## 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 ## Booking link rules (OTA hotels) - **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`](../pricewin-hotel-search/SKILL.md) ## Booking flow (OpenTravel direct) ### 1. Get the room first — mandatory 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. ### 2. Ask for all four things in ONE message 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 said | Method | |---|---| | "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). ### 3. Confirm before charging 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` 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. ## After booking | User says | Tool | |---|---| | "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. ### 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. ## Output format ``` ### Hotel Name ★★★★☆ - Rating: 8.5/10 (1,234 reviews) - Best room: Deluxe Double — $85/night - Free cancellation: until 2026-08-10 - Book: [Reserve now](payment-link) ← OpenTravel direct - Or compare: [Agoda](url) | [Booking.com](url) ``` Tool inputs and response fields: [reference.md](reference.md). ## Security & data handling This skill has **real transaction authority** and transmits **guest PII** (name, phone, email) to PriceWin's hosted MCP server `https://mcp.price.win/mcp` — that is inherent to making a reservation, and it is why booking is a separate skill from search. It ships no code and makes no network calls of its own. **Card numbers, CVV and bank credentials never pass through the skill or the agent** — `create_booking` returns a payment *link* and the user pays on the provider's own page. Never ask for card details; refuse if offered. Confirm the full summary and total price with the user before every `create_booking`. Full disclosure — operator, exact PII fields per tool, payment boundary, cancellation model — in [`SECURITY.md`](./SECURITY.md). ## Dónde encaja - Categoría: [Automatización](https://skillsagentes.com/categorias/automatizacion.md) — Flujos de varios pasos que se ejecutan sin supervisión. - Creador: [Price-Win](https://skillsagentes.com/creators/price-win.md) — 0 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Pricewin Hotel Deal Finder](https://skillsagentes.com/skills/price-win/pricewin-skills-hub/pricewin-hotel-deal-finder.md): Encuentra el hotel más barato comparando precios en vivo en Booking.com, Agoda, Google Hotels y OpenTravel para cualquier ciudad y fechas, con picks de mejor valor, más barato y calidad, y enlaces de reserva. - [Pricewin Hotel Search](https://skillsagentes.com/skills/price-win/pricewin-skills-hub/pricewin-hotel-search.md): Busca hoteles en vivo en Agoda, Booking.com, Traveloka y OpenTravel con precios en tiempo real para fechas concretas. Para consultar precios de hotel, comparar OTAs o encontrar habitaciones. - [Pricewin Price Comparison](https://skillsagentes.com/skills/price-win/pricewin-skills-hub/pricewin-price-comparison.md): Compara tarifas de habitación en vivo entre Booking.com, Agoda, Traveloka y OpenTravel para fechas concretas: qué OTA es más barata, precio por habitación y condiciones de cancelación gratuita. - [Pricewin Flight Search](https://skillsagentes.com/skills/price-win/pricewin-skills-hub/pricewin-flight-search.md): Busca tarifas de vuelo en vivo por ruta y fecha en Agoda, Trip.com y Traveloka, ida o ida y vuelta, con aerolínea, horarios, escalas, duración y enlace directo de reserva. Para precios de vuelos o comparar aerolíneas. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)