From 34901300c4bf7ea6b3980ad3b000e07e30f63529 Mon Sep 17 00:00:00 2001 From: Anton Kolmakov Date: Mon, 31 Aug 2026 13:58:17 -0700 Subject: [PATCH 1/2] =?UTF-8?q?This=20worktree=20contains=20only=20docs=20?= =?UTF-8?q?(the=20`api`=20repo=20here=20is=20a=20docs-only=20repo=20?= =?UTF-8?q?=E2=80=94=20just=20`README.md`=20and=20`mintlify-docs/`).=20The?= =?UTF-8?q?=20staged/unstaged=20changes=20are=20only=20the=203=20Mintlify?= =?UTF-8?q?=20`.mdx`=20doc=20updates.=20The=20build=20summary's=20decorato?= =?UTF-8?q?r/spec/RuboCop=20work=20(Tour,=20Survey,=20Embed=20decorators,?= =?UTF-8?q?=20`models=5Fspec`=20fix)=20isn't=20in=20this=20repo=20at=20all?= =?UTF-8?q?=20=E2=80=94=20it=20must=20live=20in=20a=20different=20worktree?= =?UTF-8?q?/repo,=20likely=20`edit`=20(the=20actual=20Rails=20backend=20wi?= =?UTF-8?q?th=20decorators=20and=20RSpec).=20I=20can't=20write=20one=20com?= =?UTF-8?q?mit=20message=20covering=20both;=20only=20the=20docs=20changes?= =?UTF-8?q?=20exist=20here.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nothing is staged in this worktree (`git diff --staged` is empty) — should I stage the three `.mdx` files and write the commit message for just those doc changes, or did you mean to point me at the `edit` worktree for the decorator/spec work? --- mintlify-docs/apis/embeddables.mdx | 26 ++++++++++++++++++++++++++ mintlify-docs/apis/surveys.mdx | 26 ++++++++++++++++++++++++++ mintlify-docs/apis/tours.mdx | 26 ++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) diff --git a/mintlify-docs/apis/embeddables.mdx b/mintlify-docs/apis/embeddables.mdx index e8c3b61..37af6c8 100644 --- a/mintlify-docs/apis/embeddables.mdx +++ b/mintlify-docs/apis/embeddables.mdx @@ -37,6 +37,8 @@ With the Chameleon API for Embeddables, you can: | `position` | number | The order that these appear in lists (starting from 0) | | `segment_ids` | array<ID> | The Chameleon IDs of the configured [Segments](/apis/segments#schema) | | `published_at` | timestamp | The time this was most recently published | +| `scheduled_publish_at` | timestamp | The time this is scheduled to be published (cleared once it publishes); `null` when no publish is scheduled | +| `scheduled_unpublish_at` | timestamp | The time this is scheduled to stop running (cleared once it unpublishes); `null` when no unpublish is scheduled | | `tag_ids` | array<ID> | The Chameleon IDs of the [Tags](/apis/tags) attached to this model | | `rate_unlimit_at` | timestamp | This item is excluded from [Rate limiting](https://help.chameleon.io/en/articles/3513345-rate-limiting-experiences) | | `dashboard_url` | string | Direct link to this Embeddable in the Chameleon Dashboard | @@ -48,6 +50,24 @@ With the Chameleon API for Embeddables, you can: | `stats.exited_count` | number | Number of your end-users who dismissed/exited this | | `stats.last_exited_at` | timestamp | Most recent time any user dismissed/exited this | +#### Scheduled publishing + +`scheduled_publish_at` and `scheduled_unpublish_at` are **read-only**. They report a schedule set elsewhere in Chameleon, and cannot be set or cleared by [updating an Embeddable](#embeddables-update). + +Both report a **pending** schedule only, never history. Chameleon clears the timestamp the moment the schedule runs, so an Embeddable that has already gone dark on schedule returns `scheduled_unpublish_at: null` rather than the time it stopped. Read `published_at` to tell whether an Embeddable is currently live — it becomes `null` once the Embeddable is unpublished. + +A pending schedule can also disappear **without** the Embeddable publishing or unpublishing: if the person who set it loses the *Publish Experiences* permission, or leaves the team, before the schedule runs, Chameleon cancels the schedule and emails everyone on your team who can publish Experiences instead. The Embeddable is left exactly as it was, and the timestamp becomes `null`. + +A draft scheduled to publish looks like this: + +```json +{ + "published_at": null, + "scheduled_publish_at": "2029-04-21T08:00:00Z", + "scheduled_unpublish_at": null +} +``` + ## List Embeddables @@ -78,6 +98,8 @@ https://api.chameleon.io/v3/edit/embeds "style": "banner", "position": 1, "published_at": "2029-04-07T12:18:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": "2029-05-01T09:00:00Z", ... }, { @@ -86,6 +108,8 @@ https://api.chameleon.io/v3/edit/embeds "style": "card", "position": 0, "published_at": "2029-04-07T12:38:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": null, ... }, ... @@ -121,6 +145,8 @@ https://api.chameleon.io/v3/edit/embeds/:id "style": "banner", "position": 0, "published_at": "2029-04-07T12:38:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": null, ... } } diff --git a/mintlify-docs/apis/surveys.mdx b/mintlify-docs/apis/surveys.mdx index 75d203d..e3b5abc 100644 --- a/mintlify-docs/apis/surveys.mdx +++ b/mintlify-docs/apis/surveys.mdx @@ -27,6 +27,8 @@ With the Chameleon Microsurveys API, you can: | `position` | number | The order that these appear in lists (starting from 0) | | `segment_ids` | array<ID> | The Chameleon IDs of the configured [Segments](/apis/segments#schema) | | `published_at` | timestamp | The time this was most recently published | +| `scheduled_publish_at` | timestamp | The time this is scheduled to be published (cleared once it publishes); `null` when no publish is scheduled | +| `scheduled_unpublish_at` | timestamp | The time this is scheduled to stop running (cleared once it unpublishes); `null` when no unpublish is scheduled | | `tag_ids` | array<ID> | The Chameleon IDs of the [Tags](/apis/tags) attached to this model | | `rate_unlimit_at` | timestamp | This item is excluded from [Rate limiting](https://help.chameleon.io/en/articles/3513345-rate-limiting-experiences) | | `dashboard_url` | string | Direct link to this Microsurvey in the Chameleon Dashboard | @@ -44,6 +46,24 @@ With the Chameleon Microsurveys API, you can: | `stats.exited_count` | number | Number of your end-users who dismissed/exited this | | `stats.last_exited_at` | timestamp | Most recent time any user dismissed/exited this | +#### Scheduled publishing + +`scheduled_publish_at` and `scheduled_unpublish_at` are **read-only**. They report a schedule set elsewhere in Chameleon, and cannot be set or cleared by [updating a Microsurvey](#surveys-update). + +Both report a **pending** schedule only, never history. Chameleon clears the timestamp the moment the schedule runs, so a Microsurvey that has already gone dark on schedule returns `scheduled_unpublish_at: null` rather than the time it stopped. Read `published_at` to tell whether a Microsurvey is currently live — it becomes `null` once the Microsurvey is unpublished. + +A pending schedule can also disappear **without** the Microsurvey publishing or unpublishing: if the person who set it loses the *Publish Experiences* permission, or leaves the team, before the schedule runs, Chameleon cancels the schedule and emails everyone on your team who can publish Experiences instead. The Microsurvey is left exactly as it was, and the timestamp becomes `null`. + +A draft scheduled to publish looks like this: + +```json +{ + "published_at": null, + "scheduled_publish_at": "2029-04-21T08:00:00Z", + "scheduled_unpublish_at": null +} +``` + ## List Microsurveys List all Microsurveys that follow your indicated parameters. @@ -73,6 +93,8 @@ https://api.chameleon.io/v3/edit/surveys "name": "Task #2 completion CES", "position": 1, "published_at": "2029-04-07T12:18:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": "2029-05-01T09:00:00Z", ... }, { @@ -80,6 +102,8 @@ https://api.chameleon.io/v3/edit/surveys "name": "Admin account setup #1 completion question", "position": 0, "published_at": "2029-04-07T12:38:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": null, ... }, ... @@ -159,6 +183,8 @@ https://api.chameleon.io/v3/edit/surveys/:id "name": "Admin Self-serve menu", "position": 0, "published_at": "2029-04-07T12:38:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": null, ... } } diff --git a/mintlify-docs/apis/tours.mdx b/mintlify-docs/apis/tours.mdx index 9448fff..c8e46fe 100644 --- a/mintlify-docs/apis/tours.mdx +++ b/mintlify-docs/apis/tours.mdx @@ -36,6 +36,8 @@ With the Chameleon API for Tours, you can: | `experiment_range` | string | The range of `Profile#percent` that will be included in the experiment | | `segment_ids` | array<ID> | The Chameleon IDs of the configured [Segments](/apis/segments#schema) | | `published_at` | timestamp | The time this was most recently published | +| `scheduled_publish_at` | timestamp | The time this is scheduled to be published (cleared once it publishes); `null` when no publish is scheduled | +| `scheduled_unpublish_at` | timestamp | The time this is scheduled to stop running (cleared once it unpublishes); `null` when no unpublish is scheduled | | `tag_ids` | array<ID> | The Chameleon IDs of the [Tags](/apis/tags) attached to this model | | `rate_unlimit_at` | timestamp | This item is excluded from [Rate limiting](https://help.chameleon.io/en/articles/3513345-rate-limiting-experiences) | | `dashboard_url` | string | Direct link to this Tour in the Chameleon Dashboard | @@ -50,6 +52,24 @@ With the Chameleon API for Tours, you can: | `stats.exited_count` | number | Number of your end-users who dismissed/exited this | | `stats.last_exited_at` | timestamp | Most recent time any user dismissed/exited this | +#### Scheduled publishing + +`scheduled_publish_at` and `scheduled_unpublish_at` are **read-only**. They report a schedule set elsewhere in Chameleon, and cannot be set or cleared by [updating a Tour](#campaigns-update). + +Both report a **pending** schedule only, never history. Chameleon clears the timestamp the moment the schedule runs, so a Tour that has already gone dark on schedule returns `scheduled_unpublish_at: null` rather than the time it stopped. Read `published_at` to tell whether a Tour is currently live — it becomes `null` once the Tour is unpublished. + +A pending schedule can also disappear **without** the Tour publishing or unpublishing: if the person who set it loses the *Publish Experiences* permission, or leaves the team, before the schedule runs, Chameleon cancels the schedule and emails everyone on your team who can publish Experiences instead. The Tour is left exactly as it was, and the timestamp becomes `null`. + +A draft scheduled to publish looks like this: + +```json +{ + "published_at": null, + "scheduled_publish_at": "2029-04-21T08:00:00Z", + "scheduled_unpublish_at": null +} +``` + ## List Tours @@ -79,6 +99,8 @@ https://api.chameleon.io/v3/edit/tours "style": "auto", "position": 4, "published_at": "2029-04-07T12:18:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": "2029-05-01T09:00:00Z", ... }, { @@ -87,6 +109,8 @@ https://api.chameleon.io/v3/edit/tours "style": "auto", "position": 3, "published_at": "2029-04-07T12:18:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": null, ... }, ... @@ -176,6 +200,8 @@ https://api.chameleon.io/v3/edit/tours/:id "style": "auto", "position": 3, "published_at": "2029-04-07T12:18:00Z", + "scheduled_publish_at": null, + "scheduled_unpublish_at": null, ... } } From a589b8232dcc23ae8560995b3eaecfb608c3eb46 Mon Sep 17 00:00:00 2001 From: Anton Kolmakov Date: Mon, 31 Aug 2026 17:38:39 -0700 Subject: [PATCH 2/2] Trim the scheduled publishing prose from the API docs The schema rows and JSON samples carry the two fields; the added section restated them at length without adding anything a reader needs. Co-authored-by: Chameleon dev --- mintlify-docs/apis/embeddables.mdx | 18 ------------------ mintlify-docs/apis/surveys.mdx | 18 ------------------ mintlify-docs/apis/tours.mdx | 18 ------------------ 3 files changed, 54 deletions(-) diff --git a/mintlify-docs/apis/embeddables.mdx b/mintlify-docs/apis/embeddables.mdx index 37af6c8..b6d8214 100644 --- a/mintlify-docs/apis/embeddables.mdx +++ b/mintlify-docs/apis/embeddables.mdx @@ -50,24 +50,6 @@ With the Chameleon API for Embeddables, you can: | `stats.exited_count` | number | Number of your end-users who dismissed/exited this | | `stats.last_exited_at` | timestamp | Most recent time any user dismissed/exited this | -#### Scheduled publishing - -`scheduled_publish_at` and `scheduled_unpublish_at` are **read-only**. They report a schedule set elsewhere in Chameleon, and cannot be set or cleared by [updating an Embeddable](#embeddables-update). - -Both report a **pending** schedule only, never history. Chameleon clears the timestamp the moment the schedule runs, so an Embeddable that has already gone dark on schedule returns `scheduled_unpublish_at: null` rather than the time it stopped. Read `published_at` to tell whether an Embeddable is currently live — it becomes `null` once the Embeddable is unpublished. - -A pending schedule can also disappear **without** the Embeddable publishing or unpublishing: if the person who set it loses the *Publish Experiences* permission, or leaves the team, before the schedule runs, Chameleon cancels the schedule and emails everyone on your team who can publish Experiences instead. The Embeddable is left exactly as it was, and the timestamp becomes `null`. - -A draft scheduled to publish looks like this: - -```json -{ - "published_at": null, - "scheduled_publish_at": "2029-04-21T08:00:00Z", - "scheduled_unpublish_at": null -} -``` - ## List Embeddables diff --git a/mintlify-docs/apis/surveys.mdx b/mintlify-docs/apis/surveys.mdx index e3b5abc..9f741f2 100644 --- a/mintlify-docs/apis/surveys.mdx +++ b/mintlify-docs/apis/surveys.mdx @@ -46,24 +46,6 @@ With the Chameleon Microsurveys API, you can: | `stats.exited_count` | number | Number of your end-users who dismissed/exited this | | `stats.last_exited_at` | timestamp | Most recent time any user dismissed/exited this | -#### Scheduled publishing - -`scheduled_publish_at` and `scheduled_unpublish_at` are **read-only**. They report a schedule set elsewhere in Chameleon, and cannot be set or cleared by [updating a Microsurvey](#surveys-update). - -Both report a **pending** schedule only, never history. Chameleon clears the timestamp the moment the schedule runs, so a Microsurvey that has already gone dark on schedule returns `scheduled_unpublish_at: null` rather than the time it stopped. Read `published_at` to tell whether a Microsurvey is currently live — it becomes `null` once the Microsurvey is unpublished. - -A pending schedule can also disappear **without** the Microsurvey publishing or unpublishing: if the person who set it loses the *Publish Experiences* permission, or leaves the team, before the schedule runs, Chameleon cancels the schedule and emails everyone on your team who can publish Experiences instead. The Microsurvey is left exactly as it was, and the timestamp becomes `null`. - -A draft scheduled to publish looks like this: - -```json -{ - "published_at": null, - "scheduled_publish_at": "2029-04-21T08:00:00Z", - "scheduled_unpublish_at": null -} -``` - ## List Microsurveys List all Microsurveys that follow your indicated parameters. diff --git a/mintlify-docs/apis/tours.mdx b/mintlify-docs/apis/tours.mdx index c8e46fe..58a35ba 100644 --- a/mintlify-docs/apis/tours.mdx +++ b/mintlify-docs/apis/tours.mdx @@ -52,24 +52,6 @@ With the Chameleon API for Tours, you can: | `stats.exited_count` | number | Number of your end-users who dismissed/exited this | | `stats.last_exited_at` | timestamp | Most recent time any user dismissed/exited this | -#### Scheduled publishing - -`scheduled_publish_at` and `scheduled_unpublish_at` are **read-only**. They report a schedule set elsewhere in Chameleon, and cannot be set or cleared by [updating a Tour](#campaigns-update). - -Both report a **pending** schedule only, never history. Chameleon clears the timestamp the moment the schedule runs, so a Tour that has already gone dark on schedule returns `scheduled_unpublish_at: null` rather than the time it stopped. Read `published_at` to tell whether a Tour is currently live — it becomes `null` once the Tour is unpublished. - -A pending schedule can also disappear **without** the Tour publishing or unpublishing: if the person who set it loses the *Publish Experiences* permission, or leaves the team, before the schedule runs, Chameleon cancels the schedule and emails everyone on your team who can publish Experiences instead. The Tour is left exactly as it was, and the timestamp becomes `null`. - -A draft scheduled to publish looks like this: - -```json -{ - "published_at": null, - "scheduled_publish_at": "2029-04-21T08:00:00Z", - "scheduled_unpublish_at": null -} -``` - ## List Tours