---
name: page-systems
description: Send the person a Page Systems link (a picker, form, table or cart to review) instead of asking question after question in chat. Load it when the person must compare options with several details, choose from more than three, or fill in more than two fields.
---

# Page Systems

Page Systems hosts a small mobile web page for the person: either information to look at, or a question whose structured answer comes back to you. A page only collects the answer: it never books, orders or pays.

## Flow

1. `list_page_types`: pick the page type that fits the decision.
2. `get_page_type_schema`: read its fields, example and guidance.
3. `create_page`: send `title` and `page` (the page type and its data); you get back a `url`.
4. Send the `url` in chat. A display-only page (see `displayOnly` in the list) has no answer: do not wait for one. Otherwise read the answer with `get_page_result`, or wait for it to arrive as a message.

## Using pages well

- **When to send a page:** the person must compare options with several details (flights, times, prices), choose from more than three choices, or fill in more than two fields. For yes/no, a single free-text answer, or a choice between two or three short words, ask in chat.
- **One page per decision.** If the decision changes, cancel the old page and create a new one.
- **Title:** what the person is deciding, in their words, under 60 characters ("Pick your flight to Lisbon"). Add a one-sentence `description` only for context the options do not already show.
- **Options:** give each a short, stable `id` that means something to you (`tap-1234`, `thai-place`, not `1`, `2`, `3`): the answer contains only ids. Offer 8 options or fewer, best first.
- **Sending the link:** send the URL with one short sentence that says what it is for, and stop. Do not list the options again in chat.
- **When the answer arrives:** confirm the choice by its name, not its id. A page only collects the answer: it never books, orders or pays. Say what you will do, not that it is done, and say it is done only after your own action succeeds.
- **Errors:** `invalid_spec` names each wrong field: fix them and create the page again. `payment_required`, `spend_cap_reached` or `burst_limit` mean page creation is paused: do not retry; ask in chat and tell the person once that you cannot send pages right now.
