Journeys

createJourneyRevision

Changed on

Creates a revision: an immutable copy of the complete journey configuration, identified by revision_id. Nothing customers receive changes; the revision only becomes the published version when it is published. The payload is complete and is not merged against the journey record or the previous revision. The entity datasource set of the revision is stored separately through the datasources API under the same revision_id.

Only available for organizations with journey versioning enabled; returns 404 otherwise.

post/v1/journey/configuration/{id}/revisions

Request

  • Base URL
    https://journey-config.sls.epilot.io
  • URL
    https://journey-config.sls.epilot.io/v1/journey/configuration/{id}/revisions
  • Auth
    HTTP bearer

Path parameters

idstring uuid required
Example:509cdffe-424f-457a-95c2-9708c304ce77

Journey ID

Request body

journeyIdstring
organizationIdstring required
brandIdstring
namestring required
logicsV4object
journey_typestring

Journey Template

protectedboolean

If true, journey is displayed in read-only mode

protectedEditablestring[]

Whitelist of paths that remain editable when the journey is protected. Supports wildcard patterns (e.g. steps/*/blocks/**).

validationRulesValidationRuleRef

References to validation rules organized by blocks and fields. Maps block IDs to either one or more ordered rule IDs (for block-level rules) or rule references (for field-level rules).

_manifeststring[]

Manifest/Blueprint ID used to create/update the entity

blueprint_customizationobject

Blueprint field-locking contract (server-managed). Carries the author plane (locks, default level) and the org plane (server-derived overlay). Public writes never persist client-supplied values — the stored contract is authoritative; it is written only by the Blueprints install pipeline.

createdBystring
updatedBystring nullable
__lastModifiedAtstring nullable

If passed with value of null, the API won't modify the lastModifiedAt field on updating the journey

parent_revision_idstring

The revision the editor started from. When present and not the latest revision the save is rejected with 409; absent skips the check.

based_on_revision_idstring

Provenance, not configuration: the revision that was loaded into the editor before this save, when it was an older one.

mapping_config_versionnumber

Version of the entity-mapping config stored alongside this revision. Publishing the revision points the journey's automation at it.

revision_namestring

What this save changed, for the revision history to list. Distinct from name, which is the journey's own name. A publish replaces it with the version name.

Example request

{
  "journey_type": "Sales template (Premium)",
  "settings": {
    "embedOptions": {
      "lang": "de"
    },
    "offline": {
      "packTtlHours": 24
    }
  },
  "validationRules": {
    "block1": "rule123",
    "block2": [
      "rule456",
      "rule789"
    ],
    "block3": {
      "field1": "rule101",
      "field2": [
        "rule102",
        "rule103"
      ]
    }
  },
  "_manifest": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "parent_revision_id": "41",
  "based_on_revision_id": "37",
  "mapping_config_version": 12,
  "revision_name": "Changes to Steps and Logic"
}

Response

Revision created

revision_idstring required

Opaque identifier of the revision. Moves on every save.

created_atstring date-time required
created_bystring

User id of the author. Absent for revisions recorded from writes without a user, e.g. blueprint installs.

namestring

Set at publish time only, so present if and only if this revision has been published at least once.

descriptionstring
published_atstring date-time

The last time this revision was published. Not the same question as is_published: a revision that was the published version yesterday still carries a published_at.

is_publishedboolean required

Whether this revision is the published version right now.

mapping_config_versionnumber

Version of the entity-mapping config stored alongside this revision.

Example response

{
  "revision_id": "42",
  "name": "Summer campaign",
  "mapping_config_version": 12
}

Changes

    • info

      added the new optional request property //////

    • info

      added the new optional request property /////

    • info

      added the new optional request property ////