Create or update a form and take it live
fillo_push_formCreate or update a form from a FormSchema plus a stable handle (an idempotent id — reuse it to update the same form), then publish it by default. With auto-publish permission the form goes live in this call; otherwise the call returns a human approval link that completes publication. Set publish=false only when the user explicitly asks for a draft or review. File requests stay draft when storage setup blocks publication. Handle: letters, digits, dashes, max 64 chars. The owner can also edit the form in the Fillo dashboard; if they have since your last push, the push is refused so their changes aren't overwritten — fillo_pull_form it, apply your change on top, and push with baseRevision.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Optional theme: colorScheme, primary, background, text, radius, fontFamily, logo (an image id from fillo_import_logo), and dark ({ primary, background, text, logo }) — the dark-mode palette used when colorScheme is omitted or "auto". A custom background without dark colors keeps the form in that one scheme; give both palettes to follow light and dark. | |
| handle | Yes | Stable idempotent form id (letters, digits, dashes, max 64). Reuse to update. | |
| schema | Yes | The FormSchema object: title, pages (with blocks/fields), and settings. | |
| publish | No | Publish after writing (default true). Set false only for an explicitly requested draft/review workflow. | |
| purpose | No | Marks the durable file-request journey and preserves its required upload field. | |
| storage | No | Optional exact storage destination. Required with purpose=file_request. | |
| baseRevision | No | The revisionId from fillo_pull_form that this change was built on. Needed only after the owner edited the form in the dashboard since your last push. | |
| allowBreaking | No | Acknowledge removing/re-typing fields used by existing responses. Confirm with the user first. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | Always true after a successful write and optional publication. | |
| url | No | Hosted URL when the result is live. | |
| slug | Yes | ||
| formId | Yes | ||
| staged | Yes | True when the write left changes waiting for a publish. | |
| status | Yes | The form's lifecycle status after the write. | |
| changed | Yes | False when the push matched existing content exactly (no-op). | |
| created | Yes | True when a new draft form was created. | |
| warning | No | Owner action required before publishing. | |
| warningUrl | No | Owner-facing Fillo page that resolves the blocker. | |
| warningCode | No | Stable blocker code when setup is incomplete. |