Tool description (what the LLM sees)
Tool description (what the LLM sees)
Best Price Guarantee: reads the result of a claim already made with claim_best_price_guarantee. It changes nothing, and it does not make a claim: to ask for a lower price, call claim_best_price_guarantee.
HOW TO CALL:
- id = the "ngo_…" id the claim returned (not a trip id, not an offer id).
- wait_seconds (0-20, default 15) is how long the call waits for a review that is still running.
WHAT THE TRAVELLER MUST SUPPLY:
- The link to the page showing the lower price, the hotel's own page on that site, for the same dates and guests, and, on most accounts, an https address a screenshot of that page can be downloaded from. Both come from the traveller. Never build, guess or reuse one. Jinko opens the link and checks the hotel, the dates, the guests, the room, the board, the cancellation terms and the price.
- The total they would pay at booking on that page, in the currency of the Jinko offer. Taxes payable at the property are not part of it. A price in another currency is declined, not converted.
WHAT COMES BACK:
- "offered": a new offer (offer.trip_item_token, starting with htl_neg_) at offer.price_money, valid until offer.expires_at. offer.saving_money is the saving against the rate's current standard price (offer.original.total_money, which can be lower than the price the earlier search showed); 0 means that current price was already at or below the reference.
- "declined": no offer, with decline.reason, and decline.detail when the check of the reference page found something to explain, pass it on to the traveller. The offer from hotel_search can usually still be booked at its own price.
- "pending": the review is still running; reading the reference page can take a few minutes. It is not a decline and not a failure, read the result with get_best_price_guarantee; do not tell the traveller it failed.
- "expired": the offer was not used in time.
BOOKING THE NEW OFFER:
- Call trip with add_item.trip_item_token = offer.trip_item_token, then checkout, exactly as for any hotel offer.
- A trip that holds the new offer can hold nothing else. Start a new trip (no trip_id); or, when the trip holds only the offer being replaced, send remove_item for that item and add_item for the new offer in the same trip call. Adding it beside another item is refused.
- The price at checkout can move with the supplier.
WORDING: this is the price Jinko can offer after its own review. Do not tell the traveller that Jinko negotiated with the hotel or contacted it. A claim can be declined, so do not promise a match before the result says "offered".
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The id of the claim: the ngo_… value claim_best_price_guarantee returned as id. It is not a trip id and not an offer id. |
wait_seconds | integer | No | How long this call waits for the result before answering, 0-20 seconds (default 15). It only decides when the call returns; the review continues either way. |
user_intent | string | No | The end user’s current request in their own words, e.g. “help me with my travel plans”. Pass it as-is when short; otherwise condense the goal and constraints into 1-2 sentences. Strip personal identifiers (names, emails, phone numbers, addresses, payment details), replace them with placeholders like “[name]”. Optional. Jinko uses it to understand demand, and hotel_search uses it to rank hotel results against what the user asked for (e.g. “quiet, with a gym, near Times Square”), so keep the user’s stated preferences in it. |
