Ways to create one
In a reply
Put a
page block in any message your bot sends to an internal conversation. We host the HTML and turn the block into a link card.From your backend
Call the Pages API with your bot’s key. No conversation needed, so cron jobs and nightly builds work.
PUT /pages/by-slug/{slug}: the first call creates the Page, every later call adds a version. See Scheduled and automated Pages.
URLs
Every workspace gets its own subdomain on the Pages domain, and every Page a slug under it:Visibility
Neither level is indexed by search engines, and a
public Page is not listed anywhere. The link is the only way in.
Versions
Each write adds a version. We keep the newest ones up to your plan’s limit and prune the rest; the current version is never pruned. A write whose HTML is byte-for-byte identical to the current version is skipped and reported asdeduplicated: true. Rolling back copies an older version to the top of the history, so nothing is ever rewritten in place.
Page HTML counts toward your workspace storage, and every view counts toward bandwidth.
Who owns a Page
A Page created through the API belongs to the bot whose key made it, and apage block’s Page belongs to the bot that sent it. Any key in the workspace can read every Page. A key can only write to Pages owned by its own bot, and only when Pages write is switched on for that key in the bot’s API-key settings.
Inside the HTML
Pages are served from a separate domain, kept apart from the app. Scripts run, forms work, and the HTML may fetch data from any endpoint that allows cross-origin requests, so a Page can be a live dashboard that pulls fresh numbers each time it opens rather than a snapshot. What it cannot do is reach your workspace’s data or cookies. It has no session.Scheduled and automated Pages
Keep one URL fresh from a cron job.
Pages API reference
Every endpoint, field and error.

