Update a changelog
Updates an existing changelog by its unique identifier. Only the provided fields change.
Use translations for locale-keyed draft edits. New translations need a title and nonempty HTML or Markdown content. Existing translations preserve omitted fields; an empty existing entry is a no-op. Every listed locale must be enabled. Top-level localized fields override the default-locale entry. All draft changes save together; published content is unchanged until you call publish. Media limits apply across the whole request. Uploaded assets are not rolled back on failure.
For translation batches, the response is the default-locale draft. If absent, it is the first edited draft in alphabetical locale order, or the first listed draft for an all-no-op batch. The response locale identifies it. Use GET with allTranslations=true&state=draft to read all drafts.
You can update:
- title - The Changelog title
- htmlContent / markdownContent - Replacement content (one of the two)
- categories - Array of category names that already exist in your organization
- featuredImage - Featured image URL
- allowedSegmentIds - Segment IDs for access control. Accepts user segment ids and company segment ids (a company segment means "people with a company in the segment"). Ids already stored on the changelog pass through; a NEW id that is unknown or deleted is rejected with
400. - date - The date of the Changelog
Content Format
Note: For images in content, you can use:
- External URLs in img src attributes (automatically uploaded to our storage)
- Base64 encoded data URIs (data:image/...) which are processed and stored
Response
Returns the updated Changelog object with all fields populated.
Errors
400- Invalid Changelog ID format or invalid input404- Changelog not found, doesn't belong to your organization, or a category name does not exist
Compatibility
Changelogs appear as Updates in the dashboard. Keep using /v2/outbound/changelogs, client.outbound.changelogs, and the changelog.published webhook. This reference describes Pulsar. The original /v2/changelogs routes still work; their behavior follows the selected API version. The Outbound paths require Pulsar or later. In Pulsar, the API key owner needs a full seat and the manage_changelogs permission.
Body
Replacement HTML content for the changelog. Provide either htmlContent or markdownContent.
<p>Updated features to explore.</p>Replacement Markdown content for the changelog. Provide either htmlContent or markdownContent.
Updated features to explore.Locale-keyed draft content. Each locale must be enabled in changelog settings. New translations require title and nonempty htmlContent or markdownContent; existing translations preserve omitted fields. Top-level localized fields override the primary-locale entry. An empty dictionary uses the single-locale flow; an empty existing-locale entry is a no-op. POST still requires top-level title and content. POST with state="live" publishes all supplied translations without notification emails. PATCH edits drafts only. Media limits apply across the whole request.
Response
Success
Whether email notification was sent to subscribers
trueFeatured image URL
https://cdn.example.com/images/feature.pngWhether the draft content differs from the published live content
falseWhether the changelog is published (has a live version) in this locale
trueLocale of the changelog
ar, am, fa, ht, lo, my, pa, ps, so, tl, ur, he, ta, te, mr, gu, kn, ml, ha, jv, yo, ig, uz, ne, sd, az, si, km, kk, bn, bs, pt-BR, bg, ca, hr, cs, da, nl, en, et, fi, fr, de, el, hi, hu, id, it, ja, ko, lv, lt, ms, mn, nb, pl, pt, ro, ru, sr, zh-CN, sk, sl, es, sw, sv, th, zh-TW, tr, uk, vienContent in markdown format
Your changelog content in markdown format.