Publish HelpCenter Change Set
helpcenter_publish_change_setRelease a change set: publish every item in it together — now, or at a scheduled time.
A change set is a named release. It groups work that already exists — staged edits on published articles, never-published draft articles, and category visibility changes — and publishes all of it together, now or at a scheduled time. It owns no content: removing an item or deleting the set never deletes the work, which simply stays unreleased.
Use one when several articles have to go live at the same moment — a feature launch, a restructure, a coordinated translation. For one article, helpcenter_publish_staged_changes (or publishing a draft with helpcenter_update_article) is simpler. The flow: stage edits with helpcenter_stage_article_changes, or write drafts with helpcenter_create_article and published: false -> helpcenter_create_change_set -> helpcenter_add_change_set_items -> check readiness with helpcenter_get_change_set -> helpcenter_publish_change_set -> poll helpcenter_get_change_set_status until done.
Change sets are part of the Catalyst plan, behind the same gate as staged changes; on other plans the API answers 402.
ACCEPTED IS NOT DONE. The API answers 202 either way:
status 'queued': publishing has started in the background. The articles are NOT necessarily live yet — poll helpcenter_get_change_set_status until done is true, then read each item's outcome.
status 'scheduled' (you passed scheduled_for): the release is armed and nothing is live yet. Calling this again with another time moves it; helpcenter_unschedule_change_set cancels it.
Before accepting, the API checks readiness; if anything blocks the release it refuses with 422 listing the blockers, and nothing is published. Check with helpcenter_get_change_set first.
Everything in the set becomes visible to readers at once. Each staged edit archives the live version it replaces, so a single article can be rolled back afterwards with helpcenter_restore_article_version.
Requires a write-scoped API key.
Args:
change_set_id (number, required).
scheduled_for (string, optional): a future time, ISO 8601 WITH a timezone, e.g. '2026-10-01T09:00:00Z'. Omit to publish now.
release_note (string, optional): the release's own label, up to 500 characters, shown with the change set.
change_note (string, optional, up to 2,000 characters): why these edits go live now, in a sentence or two of plain text. TEAM-ONLY: the team reads it beside the edit in the dashboard's Overview; it is never in a response, a webhook, search, or anything a reader sees. Recorded on every article the release changes; with scheduled_for it is kept with the schedule and recorded when the release runs. Give one whenever you change content.
change_refs (array, optional, at most 5): links to what asked for the change — a ticket, a pull request, a release note — each { label (up to 80 characters), url (https on a public host name; not an IP address or localhost, no user:password@) }. Team-only, like change_note.
Returns (HTTP 202): { status: "queued", change_set, status_url } or { status: "scheduled", change_set }.
Errors: 402 if the plan does not include change sets; 403 if the key is read-scoped; 409 CHANGE_SET_NOT_OPEN if it is already publishing or published; 422 if it is empty, has blockers, or scheduled_for is in the past. A change_note or change_refs the API refuses (too long, too many links, a url that is not https on a public host) refuses the whole call, and nothing is written.
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": {
"change_set_id": "<change_set_id>"
},
"name": "helpcenter_publish_change_set"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Which help center to act on: an id from helpcenter_list_sites. Needed when this connection reaches more than one help center; omit it when it reaches one. Applies to this call only — pass it on every call of a task, and ask the user which help center they mean if their request does not say. | |
| change_note | No | Why you are making this change, in a sentence or two of plain text, up to 2,000 characters, e.g. "Pro plan renamed Growth in the 4.2 pricing." TEAM-ONLY: kept beside the edit in the dashboard's Overview, never in an API response, a webhook, search or anything a reader sees. Give one whenever you change content. | |
| change_refs | No | Up to 5 links to what asked for this change — a ticket, a pull request, a release note — each { label, url }. Team-only, like change_note. | |
| release_note | No | The release's own label, up to 500 characters, shown with the change set. Not change_note, which is the team-only reason kept on each article the release changes. | |
| change_set_id | Yes | Id of the change set. | |
| scheduled_for | No | Publish at this future time instead of now: ISO 8601 WITH a timezone, e.g. '2026-10-01T09:00:00Z' or '2026-10-01T09:00:00+02:00'. Omit to publish immediately. |