# Create journey

Create a journey.

Endpoint: POST /entities/journeys
Version: 1.0.0
Security: TdApikeyAuth

## Request fields (application/vnd.treasuredata.v1+json):

  - `type` (string)
    Enum: "journey"

  - `attributes` (object)

  - `attributes.name` (string, required)

  - `attributes.description` (string,null)

  - `attributes.state` (string)
    Enum: "draft", "simulation", "launched"

  - `attributes.goal` (object,null)

  - `attributes.goal.name` (string, required)

  - `attributes.goal.description` (string)

  - `attributes.goal.segmentId` (string, required)

  - `attributes.goal.target` (object)

  - `attributes.goal.target.journeyId` (string, required)
    ID of an existing journey to jump to.

  - `attributes.goal.target.journeyStageId` (string, required)
    ID of an existing stage within the target journey to jump to.

  - `attributes.journeyStages` (array)

  - `attributes.journeyStages.id` (string)
    Server-generated. Omit when creating a stage; supply to target an existing stage when updating.

  - `attributes.journeyStages.name` (string, required)

  - `attributes.journeyStages.description` (string)

  - `attributes.journeyStages.steps` (object,null)

  - `attributes.journeyStages.steps.uuid` (any) — one of:
    - JourneyActivationStep:
      - `type` (any, required)
        Enum: "Activation"
      - `name` (string, required)
      - `journeyActivationStepId` (string, required)
      - `next` (string)
    - JourneyDecisionPointStep:
      - `type` (any, required)
        Enum: "DecisionPoint"
      - `name` (string, required)
      - `branches` (array, required)
      - `branches.name` (string, required)
      - `branches.segmentId` (string, required)
      - `branches.excludedPath` (boolean)
      - `branches.next` (string)
    - JourneyMergeStep:
      - `type` (any, required)
        Enum: "Merge"
      - `name` (string)
      - `next` (string)
    - JourneyJumpStep:
      - `type` (any, required)
        Enum: "Jump"
      - `name` (string, required)
      - `target` (object, required)
    - JourneyEndStep:
      - `type` (any)
        Enum: "End"
      - `name` (string)
    - JourneyAbTestStep:
      - `type` (any, required)
        Enum: "AbTest"
      - `name` (string, required)
      - `customizedSplit` (boolean, required)
      - `uniqueId` (string)
      - `enabledCapping` (boolean)
        Enables profile capping on the step
      - `variants` (array, required)
      - `variants.id` (string, required)
      - `variants.name` (string, required)
      - `variants.percentage` (number, required)
      - `variants.next` (string)
      - `variants.isControlGroup` (boolean)
        Marks a variant as the control group (required when enabledCapping is true)
      - `variants.cappingAt` (integer)
        Capping threshold per variant (required for non-control variants when capping is enabled)

  - `attributes.journeyStages.rootStep` (string)

  - `attributes.journeyStages.entryCriteria` (object,null)

  - `attributes.journeyStages.milestone` (object,null)

  - `attributes.journeyStages.exitCriterias` (array)

  - `attributes.allowReentry` (boolean)

  - `attributes.reentryMode` (string)
    Enum: "no_reentry", "reentry_unless_goal_achieved", "reentry_always"

  - `attributes.journeyBundleId` (string,null)
    Attach the new journey to an existing journey bundle as its next version. Omit to create a new bundle.

  - `attributes.journeyBundleName` (string,null)

  - `attributes.journeyBundleDescription` (string,null)

  - `relationships` (object)

  - `relationships.parentFolder` (object, required)

  - `relationships.parentFolder.data` (object)

  - `relationships.parentFolder.data.id` (string, required)

  - `relationships.parentFolder.data.type` (string, required)
    Enum: "folder-segment"

## Response 200 fields (application/vnd.treasuredata.v1+json):

  - `data` (object, required)

  - `data.id` (string, required)

  - `data.type` (string, required)
    Enum: same as `type` (1 values)

  - `data.attributes` (object, required)

  - `data.attributes.audienceId` (string, required)

  - `data.attributes.name` (string, required)

  - `data.attributes.description` (string,null, required)

  - `data.attributes.state` (string, required)
    Enum: same as `attributes.state` (3 values)

  - `data.attributes.goal` (object,null, required)

  - `data.attributes.createdAt` (string, required)

  - `data.attributes.updatedAt` (string, required)

  - `data.attributes.launchedAt` (string,null, required)

  - `data.attributes.journeyStages` (array, required)

  - `data.attributes.paused` (boolean, required)

  - `data.attributes.pausedAt` (string,null, required)

  - `data.attributes.allowReentry` (boolean, required)

  - `data.attributes.reentryMode` (string)
    Enum: same as `attributes.reentryMode` (3 values)

  - `data.attributes.journeyBundleId` (string,null)

  - `data.attributes.journeyBundleName` (string,null)

  - `data.attributes.versionNumber` (integer)

  - `data.attributes.journeyBundleDescription` (string,null)

  - `data.attributes.latestExecution` (object,null)
    The most recent execution of the journey workflow. If no executions have been created, this will be null.

  - `data.attributes.latestExecution.workflowId` (string, required)

  - `data.attributes.latestExecution.workflowSessionId` (string, required)

  - `data.attributes.latestExecution.createdAt` (string, required)

  - `data.attributes.latestExecution.finishedAt` (string,null, required)

  - `data.attributes.latestExecution.status` (string, required)
    Enum: "success", "canceled", "error", "canceling", "blocked", "queued", "running"

  - `data.attributes.latestExecution.workflowAttemptId` (string, required)

  - `data.relationships` (object, required)

  - `data.relationships.parentFolder` (object)

  - `data.relationships.createdBy` (object)

  - `data.relationships.createdBy.data` (object,null)

  - `data.relationships.createdBy.data.id` (string, required)

  - `data.relationships.createdBy.data.type` (string, required)
    Enum: "user"

  - `data.relationships.updatedBy` (object)

  - `included` (array, required) — one of:
    - UserJsonApiResource:
      - `id` (string, required)
      - `type` (string, required)
        Enum: same as `data.relationships.createdBy.data.type` (1 values)
      - `attributes` (object, required)
      - `attributes.tdUserId` (string, required)
      - `attributes.name` (string, required)
    - JourneyJumpFromJourney:
      - `id` (string, required)
      - `type` (string, required)
        Enum: "journey", "journeyStage"
      - `attributes` (object)
      - `attributes.name` (string, required)
      - `attributes.jumpType` (string)
      - `attributes.jumpName` (string,null)
      - `attributes.sourceJourneyId` (string)
      - `attributes.folderName` (string)
      - `attributes.targetJourneyId` (string)
      - `attributes.targetStageId` (string)
      - `attributes.targetStageName` (string)
      - `attributes.deletedBy` (string,null)
    - SyndicationJsonApiResource:
      - `id` (string)
      - `type` (string)
        Enum: "syndication"
      - `attributes` (object)
      - `attributes.audienceId` (string, required)
      - `attributes.name` (string, required)
      - `attributes.description` (string,null, required)
      - `attributes.allColumns` (boolean)
        syndication all column flag  ('true' means that you use all attribute data)
      - `attributes.columns` (array, required)
        Syndication column detail. Basic syntax is {"column": "alias_name", "source": {...}}. source accepts various definitions. See ColumnExpression/StringExpression for details. example value is using ColumnExpression without function property.
        Example: [{"column":"alias_name","source":{"column":"real_column_name"}}]
      - `attributes.columns.id` (string)
      - `attributes.columns.column` (string, required)
      - `attributes.columns.source` (any, required) — one of:
        - ColumnExpression:
          - `column` (string, required)
          - `customerGroup` (string,null)
          - `functions` (array,null) — one of:
            - variant 1:
              - `function` (string, required)
                Enum: "+", "-", "*", "/"
              - `arg` (number)
            - variant 2:
              - `function` (string, required)
                Enum: "replace"
              - `search` (string)
              - `replacement` (string,null)
            - variant 3:
              - `function` (string, required)
                Enum: "substr"
              - `start` (number)
              - `length` (number)
            - variant 4:
              - `function` (string, required)
                Enum: "regexp_extract"
              - `pattern` (string)
              - `group` (number)
            - variant 5:
              - `function` (string, required)
                Enum: "day_of_week", "from_iso8601_timestamp", "ln", "elapsed_days", "td_ip_to_least_specific_subdivision_name", "td_ip_to_country_name", "td_ip_to_city_name", "td_ip_to_connection_type", "td_ip_to_domain"
            - variant 6:
              - `function` (string, required)
                Enum: "cast_as_quantitative"
              - `default` (number, required)
            - variant 7:
              - `function` (string, required)
                Enum: "cast_as_categorical"
              - `default` (string, required)
            - variant 8:
              - `function` (string, required)
                Enum: "cast_as_categorical_array"
            - variant 9:
              - `function` (string, required)
                Enum: "if"
              - `op` (string)
                Enum: ">", "<", "<=", ">=", "=", "!=", "is", "is\\", "not"
              - `right_value` (number,null)
              - `then` (number)
              - `else` (number)
        - StringExpression:
          - `string` (string, required)
          - `parameters` (array) — one of:
            Values for the placeholders ($1, $2, $3, ...) in the string
            - variant 1:
              - `type` (string)
                Enum: "String"
              - `string` (string)
            - variant 2:
              - `type` (string)
                Enum: "Timestamp"
              - `format` (string)
            - variant 3:
              - `type` (string)
                Enum: "SegmentName", "SegmentId", "AudienceId", "FunnelName", "StageName"
      - `attributes.timezone` (string)
      - `attributes.startAt` (string,null)
        cdp-api will fill some value for old syndications with ScheduleType is not NoneType. '%Y-%M-%DT%h:%m:%s' is expected.
      - `attributes.endOn` (string,null)
      - `attributes.runStatus` (string,null)
        Tag should be shown in "Run Status". If the workflow never run before and future schedule is set, 'scheduled' will be shown.
        Enum: "scheduled", "success", "error", "canceling", "canceled", "running", "waiting"
      - `attributes.repeatUnit` (string)
        Setting an activation repetition cycle such as "day" or "week".
        Enum: "none", "minute", "hour", "day", "week", "month", "once"
      - `attributes.repeatFrequency` (integer)
        Setting an activation repeat frequency.
Currently, it is set only when the repeat unit is "minute". If the repeat unit is "minute", the interval is set in minutes.
      - `attributes.repeatSubFrequency` (array)
        Parameter for more detailed frequency settings. Values are array of integers.
Currently, this parameter is only valid for repeat unit "week".
For multiple days of the week, each value should be 1 to 7.
1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday, 7: Sunday
        Example: [1,5,6]
      - `attributes.connectionId` (string)
      - `attributes.connectorConfig` (object,null)
      - `attributes.valid` (boolean)
      - `attributes.notifyOn` (array)
        Enum: "onSuccess", "onFailure"
      - `attributes.emailRecipients` (array)
      - `attributes.executions` (array)
      - `attributes.executions.workflowId` (string, required)
      - `attributes.executions.workflowSessionId` (string, required)
      - `attributes.executions.createdAt` (string, required)
      - `attributes.executions.finishedAt` (string,null, required)
      - `attributes.executions.status` (string, required)
        Enum: same as `data.attributes.latestExecution.status` (7 values)
      - `attributes.executions.workflowAttemptId` (string, required)
      - `attributes.executions.syndicationId` (string)
      - `attributes.createdAt` (string, required)
      - `attributes.updatedAt` (string, required)
      - `attributes.nestedWorkflowProjectName` (string)
      - `attributes.nestedWorkflowName` (string)
      - `attributes.activationActionsEnabled` (boolean)
      - `attributes.lockEnabled` (boolean)
      - `attributes.activationTemplateId` (string)
      - `attributes.syndicationBehaviors` (array,null)
        Behavior activation configurations
      - `attributes.syndicationBehaviors.columns` (array)
        Syndication column detail. Basic syntax is {"column": "alias_name", "source": {...}}. source accepts various definitions. See ColumnExpression/StringExpression for details. example value is using ColumnExpression without function property.
        Example: [{"column":"alias_name","source":{"column":"real_column_name"}}]
      - `attributes.syndicationBehaviors.behaviorTableName` (string)
        Behavior table name which contains behavior records
        Example: "purchase_history"
      - `attributes.syndicationBehaviors.joinRow` (integer,null)
        How much rows would be joined (value is N for Top-N join)
        Example: 3
      - `attributes.syndicationBehaviors.joinStrategy` (string)
        Label of what is the wanted record(s).
        Enum: "All", "First", "Last", "Top-N"
      - `attributes.syndicationBehaviors.formatting` (string)
        Enum: "rows", "cols"
      - `attributes.syndicationBehaviors.orderBy` (array)
        Example: [{"key":"purchased_at","order":"descending"},{"key":"price","order":"ascending"}]
      - `attributes.syndicationBehaviors.orderBy.key` (string)
        Example: "purchased_at"
      - `attributes.syndicationBehaviors.orderBy.order` (string)
        Enum: "ascending", "descending"
      - `attributes.scheduleType` (string)
        Deprecated. Old parameter for setting schedule type. See/Use RepeatUnit instead.
        Enum: "cron", "daily", "hourly", "minutes_interval", "monthly", "none", "weekly"
      - `attributes.scheduleOption` (string)
      - `attributes.syndicationBehavior` (object,null)
        Deprecated. Use syndicationBehaviors instead.
      - `attributes.syndicationBehavior.columns` (array)
        Syndication column detail. Basic syntax is {"column": "alias_name", "source": {...}}. source accepts various definitions. See ColumnExpression/StringExpression for details. example value is using ColumnExpression without function property.
        Example: [{"column":"alias_name","source":{"column":"real_column_name"}}]
      - `attributes.syndicationBehavior.behaviorTableName` (string)
        Behavior table name which contains behavior records
        Example: "purchase_history"
      - `attributes.syndicationBehavior.joinRow` (integer,null)
        How much rows would be joined (value is N for Top-N join)
        Example: 3
      - `attributes.syndicationBehavior.joinStrategy` (string)
        Label of what is the wanted record(s).
        Enum: same as `attributes.syndicationBehaviors.joinStrategy` in "SyndicationJsonApiResource" (4 values)
      - `attributes.syndicationBehavior.formatting` (string)
        Enum: same as `attributes.syndicationBehaviors.formatting` in "SyndicationJsonApiResource" (2 values)
      - `attributes.syndicationBehavior.orderBy` (array)
        Example: [{"key":"purchased_at","order":"descending"},{"key":"price","order":"ascending"}]
      - `attributes.syndicationBehavior.orderBy.key` (string)
        Example: "purchased_at"
      - `attributes.syndicationBehavior.orderBy.order` (string)
        Enum: same as `attributes.syndicationBehaviors.orderBy.order` in "SyndicationJsonApiResource" (2 values)
      - `relationships` (object)
      - `relationships.segment` (object)
      - `relationships.segment.data` (object)
      - `relationships.segment.data.id` (string, required)
      - `relationships.segment.data.type` (string, required)
        Enum: "segment-batch"
      - `relationships.createdBy` (object)
      - `relationships.updatedBy` (object)
    - JourneyActivationStepJsonApiResource:
      - `id` (string, required)
      - `type` (string, required)
        Enum: "journeyActivationStep"
      - `attributes` (object, required)
      - `attributes.activationId` (string,null, required)
      - `attributes.activationParams` (object, required)
      - `attributes.activationParams.name` (string, required)
      - `attributes.activationParams.description` (string)
      - `attributes.activationParams.allColumns` (boolean)
        syndication all column flag  ('true' means  that you use all attribute data)
      - `attributes.activationParams.columns` (array)
        Syndication column detail. Basic syntax is {"column": "alias_name", "source": {...}}. source accepts various definitions. See ColumnExpression/StringExpression for details. example value is using ColumnExpression without function property.
        Example: [{"column":"alias_name","source":{"column":"real_column_name"}}]
      - `attributes.activationParams.columns.id` (string)
      - `attributes.activationParams.columns.column` (string, required)
      - `attributes.activationParams.columns.source` (any, required) — one of:
        - ColumnExpression:
          - `column` (string, required)
          - `customerGroup` (string,null)
          - `functions` (array,null) — one of:
            - variant 1:
              - `function` (string, required)
                Enum: same as `function` in "variant 1" (4 values)
              - `arg` (number)
            - variant 2:
              - `function` (string, required)
                Enum: same as `function` in "variant 2" (1 values)
              - `search` (string)
              - `replacement` (string,null)
            - variant 3:
              - `function` (string, required)
                Enum: same as `function` in "variant 3" (1 values)
              - `start` (number)
              - `length` (number)
            - variant 4:
              - `function` (string, required)
                Enum: same as `function` in "variant 4" (1 values)
              - `pattern` (string)
              - `group` (number)
            - variant 5:
              - `function` (string, required)
                Enum: same as `function` in "variant 5" (9 values)
            - variant 6:
              - `function` (string, required)
                Enum: same as `function` in "variant 6" (1 values)
              - `default` (number, required)
            - variant 7:
              - `function` (string, required)
                Enum: same as `function` in "variant 7" (1 values)
              - `default` (string, required)
            - variant 8:
              - `function` (string, required)
                Enum: same as `function` in "variant 8" (1 values)
            - variant 9:
              - `function` (string, required)
                Enum: same as `function` in "variant 9" (1 values)
              - `op` (string)
                Enum: same as `op` in "variant 9" (9 values)
              - `right_value` (number,null)
              - `then` (number)
              - `else` (number)
        - StringExpression:
          - `string` (string, required)
          - `parameters` (array) — one of:
            Values for the placeholders ($1, $2, $3, ...) in the string
            - variant 1:
              - `type` (string)
                Enum: same as `type` in "variant 1" (1 values)
              - `string` (string)
            - variant 2:
              - `type` (string)
                Enum: same as `type` in "variant 2" (1 values)
              - `format` (string)
            - variant 3:
              - `type` (string)
                Enum: same as `type` in "variant 3" (5 values)
      - `attributes.activationParams.scheduleType` (string)
        Enum: same as `attributes.scheduleType` in "SyndicationJsonApiResource" (7 values)
      - `attributes.activationParams.scheduleOption` (string)
      - `attributes.activationParams.runAt` (string)
      - `attributes.activationParams.cron` (string)
      - `attributes.activationParams.timezone` (string)
      - `attributes.activationParams.startAt` (string,null)
        cdp-api will fill some value for old syndications with ScheduleType is not NoneType. '%Y-%M-%DT%h:%m:%s' is expected.
      - `attributes.activationParams.endOn` (string,null)
      - `attributes.activationParams.repeatUnit` (string)
        Setting an activation repetition cycle such as "day" or "week".
        Enum: same as `attributes.repeatUnit` in "SyndicationJsonApiResource" (7 values)
      - `attributes.activationParams.repeatFrequency` (integer)
        Setting an activation repeat frequency.
Currently, it is set only when the repeat unit is "minute". If the repeat unit is "minute", the interval is set in minutes.
      - `attributes.activationParams.connectionId` (string,null, required)
      - `attributes.activationParams.connectorConfig` (object,null, required)
      - `attributes.activationParams.notifyOn` (array)
        Enum: same as `attributes.notifyOn` in "SyndicationJsonApiResource" (2 values)
      - `attributes.activationParams.emailRecipients` (array)
      - `attributes.activationParams.activationTemplateId` (string)
      - `attributes.activationParams.nestedWorkflowProjectName` (string)
      - `attributes.activationParams.nestedWorkflowName` (string)
      - `attributes.activationParams.lockEnabled` (boolean)
      - `attributes.activationParams.activationActionsEnabled` (boolean)
      - `attributes.activationParams.syndicationBehaviors` (array,null)
        Behavior activation configurations. Cannot be specified together with syndicationBehavior.
      - `attributes.activationParams.syndicationBehaviors.columns` (array)
        Syndication column detail. Basic syntax is {"column": "alias_name", "source": {...}}. source accepts various definitions. See ColumnExpression/StringExpression for details. example value is using ColumnExpression without function property.
        Example: [{"column":"alias_name","source":{"column":"real_column_name"}}]
      - `attributes.activationParams.syndicationBehaviors.behaviorTableName` (string)
        Behavior table name which contains behavior records
        Example: "purchase_history"
      - `attributes.activationParams.syndicationBehaviors.joinRow` (integer,null)
        How much rows would be joined (value is N for Top-N join)
        Example: 3
      - `attributes.activationParams.syndicationBehaviors.joinStrategy` (string)
        Label of what is the wanted record(s).
        Enum: same as `attributes.syndicationBehaviors.joinStrategy` in "SyndicationJsonApiResource" (4 values)
      - `attributes.activationParams.syndicationBehaviors.formatting` (string)
        Enum: same as `attributes.syndicationBehaviors.formatting` in "SyndicationJsonApiResource" (2 values)
      - `attributes.activationParams.syndicationBehaviors.orderBy` (array)
        Example: [{"key":"purchased_at","order":"descending"},{"key":"price","order":"ascending"}]
      - `attributes.activationParams.syndicationBehaviors.orderBy.key` (string)
        Example: "purchased_at"
      - `attributes.activationParams.syndicationBehaviors.orderBy.order` (string)
        Enum: same as `attributes.syndicationBehaviors.orderBy.order` in "SyndicationJsonApiResource" (2 values)
      - `attributes.activationParams.syndicationBehavior` (object,null)
        Deprecated. Use syndicationBehaviors instead. Cannot be specified together with syndicationBehaviors.
      - `attributes.activationParams.syndicationBehavior.columns` (array)
        Syndication column detail. Basic syntax is {"column": "alias_name", "source": {...}}. source accepts various definitions. See ColumnExpression/StringExpression for details. example value is using ColumnExpression without function property.
        Example: [{"column":"alias_name","source":{"column":"real_column_name"}}]
      - `attributes.activationParams.syndicationBehavior.behaviorTableName` (string)
        Behavior table name which contains behavior records
        Example: "purchase_history"
      - `attributes.activationParams.syndicationBehavior.joinRow` (integer,null)
        How much rows would be joined (value is N for Top-N join)
        Example: 3
      - `attributes.activationParams.syndicationBehavior.joinStrategy` (string)
        Label of what is the wanted record(s).
        Enum: same as `attributes.syndicationBehaviors.joinStrategy` in "SyndicationJsonApiResource" (4 values)
      - `attributes.activationParams.syndicationBehavior.formatting` (string)
        Enum: same as `attributes.syndicationBehaviors.formatting` in "SyndicationJsonApiResource" (2 values)
      - `attributes.activationParams.syndicationBehavior.orderBy` (array)
        Example: [{"key":"purchased_at","order":"descending"},{"key":"price","order":"ascending"}]
      - `attributes.activationParams.syndicationBehavior.orderBy.key` (string)
        Example: "purchased_at"
      - `attributes.activationParams.syndicationBehavior.orderBy.order` (string)
        Enum: same as `attributes.syndicationBehaviors.orderBy.order` in "SyndicationJsonApiResource" (2 values)
      - `relationships` (object, required)
      - `relationships.createdBy` (object)
      - `relationships.updatedBy` (object)


