Publish a form
publish_formMake the form's unpublished draft live at its public_url, replacing what respondents see now. The replaced version is kept: revert_form brings it back. With no draft pending this changes nothing and says so (nothing_published true), so a retry after a timeout is safe. Returns the public_url to give the user.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"form_id": "<form_id>"
},
"name": "publish_form"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| form_id | Yes | The form id, from list_forms or get_form. | |
| workspace_id | No | The workspace this call acts in: an id from list_my_workspaces. Required for a person signed in with several workspaces and for staff of this deployment; optional with an API key or with only one workspace. | |
| expected_updated_at | No | Recommended: the updated_at from your last update_form, so you publish exactly the draft you reviewed. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| form | Yes | ||
| warnings | No | What did not go exactly as sent, or what the user needs to know. | |
| workspace | Yes | The workspace this call acted in, to compare with the one the user means. | |
| last_published_at | Yes | When publish_form last made a draft live. Null when publish_form never ran: the form serves what it was created with, which is an empty form when is_live is false. | |
| nothing_published | No | True when no draft was pending, so nothing changed: what is live stays live (an earlier publish_form may already have gone through). | |
| previous_published_at | Yes | When the version revert_form would bring back went live. Null when there is nothing to revert to. |