Publish
publishPut an item live. Confirm with the user before calling this.
By type: • workflow — its draft becomes the live version and its triggers start firing real actions. On a paused workflow this is the editor's "Resume workflow": if has_unpublished_changes is false the live version resumes as it was (resumed: true); otherwise the draft is published as well and the answer says the draft changes went live (published_draft: true), so tell the user which before asking. Runs the pause parked stay parked either way: once the workflow is live again, each is continued with Resume on its run page in Stepper (pressed while the workflow is still paused, the run parks again at once); runs that were sleeping on a delay, approval or retry and wake after the resume carry on by themselves. A live workflow whose draft matches it answers nothing_to_publish without asking. A draft with a step that a later step or rule reads but that has no example output is refused without asking; the refusal names each such step, what reads it, and the call that stores one (load_trigger_samples or test_action with workflow and node). Fetch it first and tell the user what it does. If Stepper refuses (an app refusing a trigger, say), the answer has published: false, live (whether an older version is still running) and a publish_failed diagnostic carrying Stepper's reason. • form — its draft (the edits made with edit_source or in the app) goes live. It never reopens a closed form: write disabled: false in the source, then publish. With no draft, nothing is published and the result says so (published: false).
A published form's result carries live_url: the public address people open to fill it in. Give that link to the user; it is the form's view_url, while edit_url is the editor. live_url is absent when the form has no public address yet.
Example: publish({ id: "12:form:5f3c9a…" }) → { "id": "12:form:5f3c9a…", "type": "form", "live": true, "live_url": "https://…", "record": { … } }
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": {
"id": "<id>"
},
"name": "publish"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The form or workflow id. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| url | No | ||
| record | No | ||
| live_url | No | ||
| published | No |