No money field
No guest tool schema may offer the model a money field to fill in.
How it works
A guest asks a shop about a court. Here is the turn as the engine runs it, beside the guest’s phone at the same moment.
AEP · one storefront turn
Built and gradedAsk us anything
Is a tennis court free tomorrow at 6pm?
Thinking…
Checking court availability…
Thinking…
Yes. Tennis 1 is free tomorrow at 18:00.
Illustrative wordingCourts
Tap a free slot for a quote. Nothing is booked until you confirm.
Tennis 1
18:00FreePOST /chat → runWebsiteTurnaskClaudeWithToolsload_skill("court-booking")sports_check_court_availability → <storefront_data>CLIENT_ID → clients/<id>/client.config.jsonpresent_court_grid → court_gridOrder, not duration.
The visitor asks on the shop’s website or in Messenger
POST /chat → runWebsiteTurn
The storefront agent one turn on Claude, with this shop’s tools
askClaudeWithTools
The skill a written procedure for this kind of business
load_skill("court-booking")
Grounding and the fence it has to look before it answers
sports_check_court_availability → <storefront_data>
The shop’s data this shop’s database, and nobody else’s
CLIENT_ID → clients/<id>/client.config.json
The answer Claude writes the words. The server draws the card
present_court_grid → court_grid
One turn of eval case sports-001-availability, drawn from the product · station names are the studio’s, over the engine’s own · reply wording illustrative
The money is the server’s. Claude can ask the business for a quote and hold a slot against it; no guest tool lets it fill in an amount, and the price is drawn on the card, not written in its reply.
No money field
No guest tool schema may offer the model a money field to fill in.
Drawn by the server
the total, the payee and the handoff URL are rendered server-side onto the checkout/order_status card and redacted from the JSON the model sees
Quote, then hold
quote-then-create: a server-priced quoteId (10-minute TTL) and the write must name one
Channels
Today all three get plain text, and the grid and the chips are left out. On the website a slot or a chip sends a message as the guest, so each maps onto a channel button whose tap comes back the same way; confirming is typed today.
| What the guest does | Messenger | ||
|---|---|---|---|
| Confirm the quote (typed today) | Native | Native | Phone app |
| Suggestion chips | Native | Native | Phone app |
| The court grid | Degraded | Degraded | Degraded |
| The quote card | Degraded | Native | Degraded |
| Pay with GCash | Link only | Link only | Link only |
| Told of a decision a day later | Native | Native | A person only |
| Staff take over | Not offered | Native | Native |
Today
Today
Quote: Tennis 1 · 2026-10-12 18:00
Total: 550
Quote only: the slot is not held until the reservation is confirmed.
Planned
Planned screen · illustrative
Planned
Quote: Tennis 1 · 2026-10-12 18:00
Total: 550
Quote only: the slot is not held until the reservation is confirmed.
Confirm Change time
From Meta’s developer documentation as read; subject to Meta’s app review. Amounts without a currency; sample records.