Publish, share and schedules
Versions and their states
| State | Meaning |
|---|---|
| Awaiting upload | A version was created; its bundle has not been uploaded yet. |
| Draft | Uploaded and private to whoever created it. |
| Validated | Every declared query compiled and the bundle booted. Eligible for publication; not live yet. |
| Invalid | A query or the bundle failed; the per-query errors are on the version. |
| Published | The app's live version, readable by everyone in the workspace who can see the app. |
| Superseded | A previously published version replaced by a newer one. Kept. |
| Unpublished app | The app was taken offline; its versions are retained. |
The latest draft and the published version can differ. Ask the agent to show both before revising or publishing an existing app (dataapp_describe, dataapp_versions).
Publishing
Publishing (dataapp_publish, or the Publish control on the app's page) makes a validated version live. It is always done by a person, or by an agent acting as you after you said yes. Two cases ask for a review in Studio at publish time:
- the version adds or re-pins a function or workflow import (the app can now call something it could not before);
- the app declares an analysis or persistence it did not declare before.
Unpublishing (dataapp_unpublish) takes the app offline and keeps every version.
Sharing
An app is readable by its creator; publishing does not by itself hand it to anyone who cannot see it. Sharing (dataapp_share, or the app's Share control) grants read, write, publish or admin access to a person or a supported group; changing grants needs admin permission on the app.
One rule to know: a workflow screenshot (a snapshot step) can capture only an app that is shared with the whole workspace, because the capture runs as the workspace's service identity, which holds no personal grant. Otherwise the step fails with snapshot_app_not_shared and the send that would have included the picture is skipped.
Schedules: email a picture of an app
A schedule captures one saved view of a published app at a time and emails it as a PNG, a PDF or both. No steps, no approval: use it for "send me this every Monday". For steps, conditions and approvals, use a workflow.
What a schedule needs:
| Setting | What to give |
|---|---|
| App and view | The published app, plus a saved link, an app-view URL or view settings (tab, filters, time preset). |
| Timing | A cron expression and a time zone. Ask the agent to say the resulting times in plain words. |
| Reporting period | Explicit dates, or a preset the app's time control offers (7d, 30d, 90d, quarter, ytd). |
| Recipients | Email addresses. A schedule only to yourself needs read access; other recipients need write access on the app. |
| Format | PNG, PDF or both. |
| Tabs | The saved tab, chosen tab ids, or every tab the app declares. |
| Email content | Optional subject, body and where a summary goes. |
Tools: dataapp_schedule (create, update, enable, disable, delete, run), dataapp_schedule_list (read), dataapp_schedule_test (rehearse; deliver=false by default, so it makes the picture and sends nothing).
Good practice:
- Ask for a test with
deliver=falsefirst and look at the picture. - Then give the recipients and enable the schedule.
- To stop deliveries, disable the schedule. Ending a chat or removing the MCP connection does not disable it.
- On a preview environment, mail goes only to addresses on the deployment's allowlist (
recipient_not_allowedotherwise).
A schedule's run history is on the app's Subscribe menu and on the Runs page.
Asking an app
Two read-only tools work on a published app: dataapp_ask(app, question) asks its Ask AI chat (this can create a chat thread), and dataapp_summary(app) summarises what its screen shows. Neither changes the app.
Persistent effects to review
| Action | What persists |
|---|---|
| Create or revise an app | an app or a new draft version |
| Publish | the live version changes; workspace-wide read access |
| Unpublish | the app goes offline; versions kept |
| Share | a person's or group's permission on the app |
| Upload a blob | content under a blob name the app declares |
| Ask an app or request a summary | may create a chat thread or a cached summary |
| Create or change a schedule | delivery settings that outlive the chat |
| Run a schedule or deliver a test | an email to the configured recipients |