> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dittofeed.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PUT /api/admin/journeys/

> Create or update a journey.



## OpenAPI

````yaml put /api/admin/journeys/
openapi: 3.1.0
info:
  title: Dittofeed API
  description: Dittofeed API Swagger Documentation
  version: 0.0.1
servers: []
security: []
paths:
  /api/admin/journeys/:
    put:
      tags:
        - Journeys
      description: Create or update a journey.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  allOf:
                    - anyOf:
                        - type: string
                        - type: string
                    - type: string
                name:
                  allOf:
                    - anyOf:
                        - type: string
                        - type: string
                    - type: string
                workspaceId:
                  allOf:
                    - type: string
                    - type: string
                draft:
                  anyOf:
                    - type: object
                      properties:
                        nodes:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              data:
                                anyOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - JourneyUiNodeDefinitionProps
                                      nodeTypeProps:
                                        anyOf:
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - EntryUiNode
                                              variant:
                                                anyOf:
                                                  - type: object
                                                    properties:
                                                      segment:
                                                        type: string
                                                      child:
                                                        type: string
                                                      reEnter:
                                                        type: boolean
                                                      type:
                                                        type: string
                                                        enum:
                                                          - EntryNode
                                                    required:
                                                      - type
                                                  - type: object
                                                    properties:
                                                      event:
                                                        type: string
                                                      key:
                                                        type: string
                                                      child:
                                                        type: string
                                                      type:
                                                        type: string
                                                        enum:
                                                          - EventEntryNode
                                                    required:
                                                      - type
                                            required:
                                              - type
                                              - variant
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - ExitNode
                                            required:
                                              - type
                                          - anyOf:
                                              - anyOf:
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        enum:
                                                          - MessageNode
                                                      name:
                                                        type: string
                                                      templateId:
                                                        type: string
                                                      subscriptionGroupId:
                                                        type: string
                                                      syncProperties:
                                                        type: boolean
                                                      skipOnFailure:
                                                        type: boolean
                                                      channel:
                                                        type: string
                                                        enum:
                                                          - Email
                                                      providerOverride:
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - SendGrid
                                                          - type: string
                                                            enum:
                                                              - AmazonSes
                                                          - type: string
                                                            enum:
                                                              - Resend
                                                          - type: string
                                                            enum:
                                                              - PostMark
                                                          - type: string
                                                            enum:
                                                              - Smtp
                                                          - type: string
                                                            enum:
                                                              - Test
                                                          - type: string
                                                            enum:
                                                              - MailChimp
                                                    required:
                                                      - type
                                                      - name
                                                      - channel
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        enum:
                                                          - MessageNode
                                                      name:
                                                        type: string
                                                      templateId:
                                                        type: string
                                                      subscriptionGroupId:
                                                        type: string
                                                      syncProperties:
                                                        type: boolean
                                                      skipOnFailure:
                                                        type: boolean
                                                      channel:
                                                        type: string
                                                        enum:
                                                          - Sms
                                                      providerOverride:
                                                        anyOf:
                                                          - type: 'null'
                                                          - type: string
                                                            enum:
                                                              - Twilio
                                                          - type: string
                                                            enum:
                                                              - SignalWire
                                                          - type: string
                                                            enum:
                                                              - Test
                                                      senderOverride:
                                                        anyOf:
                                                          - type: 'null'
                                                          - anyOf:
                                                              - type: object
                                                                properties:
                                                                  type:
                                                                    type: string
                                                                    enum:
                                                                      - MessageSid
                                                                  messagingServiceSid:
                                                                    type: string
                                                                required:
                                                                  - type
                                                                  - messagingServiceSid
                                                              - type: object
                                                                properties:
                                                                  type:
                                                                    type: string
                                                                    enum:
                                                                      - PhoneNumber
                                                                  phone:
                                                                    type: string
                                                                required:
                                                                  - type
                                                                  - phone
                                                          - type: object
                                                            properties:
                                                              type:
                                                                type: string
                                                                enum:
                                                                  - PhoneNumber
                                                              phone:
                                                                type: string
                                                            required:
                                                              - type
                                                              - phone
                                                          - type: 'null'
                                                    required:
                                                      - type
                                                      - name
                                                      - channel
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        enum:
                                                          - MessageNode
                                                      name:
                                                        type: string
                                                      templateId:
                                                        type: string
                                                      subscriptionGroupId:
                                                        type: string
                                                      syncProperties:
                                                        type: boolean
                                                      skipOnFailure:
                                                        type: boolean
                                                      channel:
                                                        type: string
                                                        enum:
                                                          - MobilePush
                                                      providerOverride:
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - Firebase
                                                          - type: string
                                                            enum:
                                                              - Test
                                                    required:
                                                      - type
                                                      - name
                                                      - channel
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        enum:
                                                          - MessageNode
                                                      name:
                                                        type: string
                                                      templateId:
                                                        type: string
                                                      subscriptionGroupId:
                                                        type: string
                                                      syncProperties:
                                                        type: boolean
                                                      skipOnFailure:
                                                        type: boolean
                                                      channel:
                                                        type: string
                                                        enum:
                                                          - Webhook
                                                    required:
                                                      - type
                                                      - name
                                                      - channel
                                              - type: object
                                                properties:
                                                  type:
                                                    type: string
                                                    enum:
                                                      - DelayNode
                                                  variant:
                                                    anyOf:
                                                      - type: object
                                                        properties:
                                                          minute:
                                                            type: number
                                                          hour:
                                                            type: number
                                                          allowedDaysOfWeek:
                                                            type: array
                                                            items:
                                                              anyOf:
                                                                - type: number
                                                                  enum:
                                                                    - 0
                                                                - type: number
                                                                  enum:
                                                                    - 1
                                                                - type: number
                                                                  enum:
                                                                    - 2
                                                                - type: number
                                                                  enum:
                                                                    - 3
                                                                - type: number
                                                                  enum:
                                                                    - 4
                                                                - type: number
                                                                  enum:
                                                                    - 5
                                                                - type: number
                                                                  enum:
                                                                    - 6
                                                          defaultTimezone:
                                                            type: string
                                                          type:
                                                            type: string
                                                            enum:
                                                              - LocalTime
                                                        required:
                                                          - type
                                                      - type: object
                                                        properties:
                                                          seconds:
                                                            type: number
                                                          type:
                                                            type: string
                                                            enum:
                                                              - Second
                                                        required:
                                                          - type
                                                      - type: object
                                                        properties:
                                                          userProperty:
                                                            type: string
                                                          offsetSeconds:
                                                            type: number
                                                          offsetDirection:
                                                            anyOf:
                                                              - type: string
                                                                enum:
                                                                  - after
                                                              - type: string
                                                                enum:
                                                                  - before
                                                          type:
                                                            type: string
                                                            enum:
                                                              - UserProperty
                                                        required:
                                                          - type
                                                required:
                                                  - type
                                                  - variant
                                              - type: object
                                                properties:
                                                  type:
                                                    type: string
                                                    enum:
                                                      - SegmentSplitNode
                                                  name:
                                                    type: string
                                                  segmentId:
                                                    type: string
                                                  trueLabelNodeId:
                                                    type: string
                                                  falseLabelNodeId:
                                                    type: string
                                                required:
                                                  - type
                                                  - name
                                                  - trueLabelNodeId
                                                  - falseLabelNodeId
                                              - type: object
                                                properties:
                                                  type:
                                                    type: string
                                                    enum:
                                                      - WaitForNode
                                                  timeoutSeconds:
                                                    type: number
                                                  timeoutLabelNodeId:
                                                    type: string
                                                  segmentChildren:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        labelNodeId:
                                                          type: string
                                                        segmentId:
                                                          type: string
                                                      required:
                                                        - labelNodeId
                                                required:
                                                  - type
                                                  - timeoutLabelNodeId
                                                  - segmentChildren
                                              - type: object
                                                properties:
                                                  type:
                                                    type: string
                                                    enum:
                                                      - RandomCohortNode
                                                  cohortChildren:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        name:
                                                          type: string
                                                        percent:
                                                          type: number
                                                      required:
                                                        - name
                                                        - percent
                                                required:
                                                  - type
                                                  - cohortChildren
                                    required:
                                      - type
                                      - nodeTypeProps
                                  - anyOf:
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - JourneyUiNodeLabelProps
                                          title:
                                            type: string
                                        required:
                                          - type
                                          - title
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - JourneyUiNodeEmptyProps
                                        required:
                                          - type
                            required:
                              - id
                              - data
                        edges:
                          type: array
                          items:
                            type: object
                            properties:
                              source:
                                type: string
                              target:
                                type: string
                              data:
                                anyOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - JourneyUiDefinitionEdgeProps
                                      disableMarker:
                                        type: boolean
                                    required:
                                      - type
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - JourneyUiPlaceholderEdgeProps
                                    required:
                                      - type
                            required:
                              - source
                              - target
                              - data
                      required:
                        - nodes
                        - edges
                    - type: 'null'
                canRunMultiple:
                  type: boolean
                updatedAt:
                  type: number
                definition:
                  type: object
                  properties:
                    entryNode:
                      anyOf:
                        - title: Segment Entry Node
                          description: >-
                            The first node in a journey - triggered when a user
                            enters a segment.
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - EntryNode
                            segment:
                              type: string
                            child:
                              type: string
                            reEnter:
                              type: boolean
                          required:
                            - type
                            - segment
                            - child
                        - title: Event Entry Node
                          description: >-
                            The first node in a journey - triggered when a user
                            performs a specific event.
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - EventEntryNode
                            event:
                              type: string
                            key:
                              type: string
                            child:
                              type: string
                          required:
                            - type
                            - event
                            - child
                    exitNode:
                      title: Exit Node
                      description: >-
                        Defines when a user exits a journey. Allows users to
                        re-enter the journey, under some set of conditions.
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - ExitNode
                      required:
                        - type
                    nodes:
                      type: array
                      items:
                        anyOf:
                          - title: Delay Node
                            description: >-
                              Delays a users progression through the journey for
                              either a set amount of time, or until a specific
                              date time.
                            type: object
                            properties:
                              id:
                                type: string
                              type:
                                type: string
                                enum:
                                  - DelayNode
                              variant:
                                anyOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Second
                                      seconds:
                                        type: number
                                    required:
                                      - type
                                      - seconds
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - LocalTime
                                      minute:
                                        type: number
                                      hour:
                                        type: number
                                      allowedDaysOfWeek:
                                        type: array
                                        items:
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 0
                                            - type: number
                                              enum:
                                                - 1
                                            - type: number
                                              enum:
                                                - 2
                                            - type: number
                                              enum:
                                                - 3
                                            - type: number
                                              enum:
                                                - 4
                                            - type: number
                                              enum:
                                                - 5
                                            - type: number
                                              enum:
                                                - 6
                                      defaultTimezone:
                                        type: string
                                    required:
                                      - type
                                      - hour
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - UserProperty
                                      userProperty:
                                        type: string
                                      offsetSeconds:
                                        type: number
                                      offsetDirection:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - after
                                          - type: string
                                            enum:
                                              - before
                                    required:
                                      - type
                                      - userProperty
                              child:
                                type: string
                            required:
                              - id
                              - type
                              - variant
                              - child
                          - title: Rate Limit Node
                            description: >-
                              Used to limit the frequency with which users are
                              contacted by a given Journey.
                            type: object
                            properties:
                              id:
                                type: string
                              type:
                                type: string
                                enum:
                                  - RateLimitNode
                            required:
                              - id
                              - type
                          - title: Segment Split Node
                            description: >-
                              Used to split users among audiences, based on the
                              behavior and attributes.
                            type: object
                            properties:
                              id:
                                type: string
                              type:
                                type: string
                                enum:
                                  - SegmentSplitNode
                              variant:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - Boolean
                                  segment:
                                    type: string
                                  trueChild:
                                    type: string
                                  falseChild:
                                    type: string
                                required:
                                  - type
                                  - segment
                                  - trueChild
                                  - falseChild
                              name:
                                type: string
                            required:
                              - id
                              - type
                              - variant
                          - title: Message Node
                            description: Used to contact a user on a message channel.
                            type: object
                            properties:
                              id:
                                type: string
                              type:
                                type: string
                                enum:
                                  - MessageNode
                              name:
                                type: string
                              subscriptionGroupId:
                                type: string
                              variant:
                                anyOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Email
                                      templateId:
                                        type: string
                                      providerOverride:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - SendGrid
                                          - type: string
                                            enum:
                                              - AmazonSes
                                          - type: string
                                            enum:
                                              - Resend
                                          - type: string
                                            enum:
                                              - PostMark
                                          - type: string
                                            enum:
                                              - Smtp
                                          - type: string
                                            enum:
                                              - Test
                                          - type: string
                                            enum:
                                              - MailChimp
                                    required:
                                      - type
                                      - templateId
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - MobilePush
                                      templateId:
                                        type: string
                                      providerOverride:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - Firebase
                                          - type: string
                                            enum:
                                              - Test
                                    required:
                                      - type
                                      - templateId
                                  - anyOf:
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - Sms
                                          templateId:
                                            type: string
                                          providerOverride:
                                            type: 'null'
                                          senderOverride:
                                            type: 'null'
                                        required:
                                          - type
                                          - templateId
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - Sms
                                          templateId:
                                            type: string
                                          providerOverride:
                                            type: string
                                            enum:
                                              - Twilio
                                          senderOverride:
                                            anyOf:
                                              - type: object
                                                properties:
                                                  type:
                                                    type: string
                                                    enum:
                                                      - MessageSid
                                                  messagingServiceSid:
                                                    type: string
                                                required:
                                                  - type
                                                  - messagingServiceSid
                                              - type: object
                                                properties:
                                                  type:
                                                    type: string
                                                    enum:
                                                      - PhoneNumber
                                                  phone:
                                                    type: string
                                                required:
                                                  - type
                                                  - phone
                                        required:
                                          - type
                                          - templateId
                                          - providerOverride
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - Sms
                                          templateId:
                                            type: string
                                          providerOverride:
                                            type: string
                                            enum:
                                              - SignalWire
                                          senderOverride:
                                            type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - PhoneNumber
                                              phone:
                                                type: string
                                            required:
                                              - type
                                              - phone
                                        required:
                                          - type
                                          - templateId
                                          - providerOverride
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - Sms
                                          templateId:
                                            type: string
                                          providerOverride:
                                            type: string
                                            enum:
                                              - Test
                                          senderOverride:
                                            type: 'null'
                                        required:
                                          - type
                                          - templateId
                                          - providerOverride
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - Webhook
                                      templateId:
                                        type: string
                                    required:
                                      - type
                                      - templateId
                              child:
                                type: string
                              syncProperties:
                                type: boolean
                              skipOnFailure:
                                type: boolean
                              retryCount:
                                description: 'Number of retry attempts (default: 3)'
                                type: number
                            required:
                              - id
                              - type
                              - variant
                              - child
                          - title: Random Cohort Node
                            description: >-
                              Used to split users among random cohorts, to test
                              their effectiveness.
                            type: object
                            properties:
                              id:
                                type: string
                              type:
                                type: string
                                enum:
                                  - RandomCohortNode
                              children:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      description: The id of the child node to be split to
                                      type: string
                                    percent:
                                      description: >-
                                        The percentage of users to be randomly
                                        assigned to be in the cohort.
                                      type: number
                                    name:
                                      type: string
                                  required:
                                    - id
                                    - percent
                                    - name
                            required:
                              - id
                              - type
                              - children
                          - title: Wait For Node
                            description: >-
                              A node which waits for a user to enter a segment
                              before progressing.
                            type: object
                            properties:
                              id:
                                type: string
                              type:
                                type: string
                                enum:
                                  - WaitForNode
                              timeoutSeconds:
                                type: number
                              timeoutChild:
                                type: string
                              segmentChildren:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    segmentId:
                                      type: string
                                  required:
                                    - id
                                    - segmentId
                            required:
                              - id
                              - type
                              - timeoutSeconds
                              - timeoutChild
                              - segmentChildren
                  required:
                    - entryNode
                    - exitNode
                    - nodes
                status:
                  anyOf:
                    - type: string
                      enum:
                        - NotStarted
                    - type: string
                      enum:
                        - Running
                    - type: string
                      enum:
                        - Paused
                    - type: string
                      enum:
                        - Broadcast
              required:
                - workspaceId
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                      workspaceId:
                        type: string
                      name:
                        type: string
                      canRunMultiple:
                        type: boolean
                      updatedAt:
                        allOf:
                          - type: number
                          - type: number
                      draft:
                        type: object
                        properties:
                          nodes:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                data:
                                  anyOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - JourneyUiNodeDefinitionProps
                                        nodeTypeProps:
                                          anyOf:
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - EntryUiNode
                                                variant:
                                                  anyOf:
                                                    - type: object
                                                      properties:
                                                        segment:
                                                          type: string
                                                        child:
                                                          type: string
                                                        reEnter:
                                                          type: boolean
                                                        type:
                                                          type: string
                                                          enum:
                                                            - EntryNode
                                                      required:
                                                        - type
                                                    - type: object
                                                      properties:
                                                        event:
                                                          type: string
                                                        key:
                                                          type: string
                                                        child:
                                                          type: string
                                                        type:
                                                          type: string
                                                          enum:
                                                            - EventEntryNode
                                                      required:
                                                        - type
                                              required:
                                                - type
                                                - variant
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - ExitNode
                                              required:
                                                - type
                                            - anyOf:
                                                - anyOf:
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageNode
                                                        name:
                                                          type: string
                                                        templateId:
                                                          type: string
                                                        subscriptionGroupId:
                                                          type: string
                                                        syncProperties:
                                                          type: boolean
                                                        skipOnFailure:
                                                          type: boolean
                                                        channel:
                                                          type: string
                                                          enum:
                                                            - Email
                                                        providerOverride:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - SendGrid
                                                            - type: string
                                                              enum:
                                                                - AmazonSes
                                                            - type: string
                                                              enum:
                                                                - Resend
                                                            - type: string
                                                              enum:
                                                                - PostMark
                                                            - type: string
                                                              enum:
                                                                - Smtp
                                                            - type: string
                                                              enum:
                                                                - Test
                                                            - type: string
                                                              enum:
                                                                - MailChimp
                                                      required:
                                                        - type
                                                        - name
                                                        - channel
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageNode
                                                        name:
                                                          type: string
                                                        templateId:
                                                          type: string
                                                        subscriptionGroupId:
                                                          type: string
                                                        syncProperties:
                                                          type: boolean
                                                        skipOnFailure:
                                                          type: boolean
                                                        channel:
                                                          type: string
                                                          enum:
                                                            - Sms
                                                        providerOverride:
                                                          anyOf:
                                                            - type: 'null'
                                                            - type: string
                                                              enum:
                                                                - Twilio
                                                            - type: string
                                                              enum:
                                                                - SignalWire
                                                            - type: string
                                                              enum:
                                                                - Test
                                                        senderOverride:
                                                          anyOf:
                                                            - type: 'null'
                                                            - anyOf:
                                                                - type: object
                                                                  properties:
                                                                    type:
                                                                      type: string
                                                                      enum:
                                                                        - MessageSid
                                                                    messagingServiceSid:
                                                                      type: string
                                                                  required:
                                                                    - type
                                                                    - messagingServiceSid
                                                                - type: object
                                                                  properties:
                                                                    type:
                                                                      type: string
                                                                      enum:
                                                                        - PhoneNumber
                                                                    phone:
                                                                      type: string
                                                                  required:
                                                                    - type
                                                                    - phone
                                                            - type: object
                                                              properties:
                                                                type:
                                                                  type: string
                                                                  enum:
                                                                    - PhoneNumber
                                                                phone:
                                                                  type: string
                                                              required:
                                                                - type
                                                                - phone
                                                            - type: 'null'
                                                      required:
                                                        - type
                                                        - name
                                                        - channel
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageNode
                                                        name:
                                                          type: string
                                                        templateId:
                                                          type: string
                                                        subscriptionGroupId:
                                                          type: string
                                                        syncProperties:
                                                          type: boolean
                                                        skipOnFailure:
                                                          type: boolean
                                                        channel:
                                                          type: string
                                                          enum:
                                                            - MobilePush
                                                        providerOverride:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - Firebase
                                                            - type: string
                                                              enum:
                                                                - Test
                                                      required:
                                                        - type
                                                        - name
                                                        - channel
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageNode
                                                        name:
                                                          type: string
                                                        templateId:
                                                          type: string
                                                        subscriptionGroupId:
                                                          type: string
                                                        syncProperties:
                                                          type: boolean
                                                        skipOnFailure:
                                                          type: boolean
                                                        channel:
                                                          type: string
                                                          enum:
                                                            - Webhook
                                                      required:
                                                        - type
                                                        - name
                                                        - channel
                                                - type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - DelayNode
                                                    variant:
                                                      anyOf:
                                                        - type: object
                                                          properties:
                                                            minute:
                                                              type: number
                                                            hour:
                                                              type: number
                                                            allowedDaysOfWeek:
                                                              type: array
                                                              items:
                                                                anyOf:
                                                                  - type: number
                                                                    enum:
                                                                      - 0
                                                                  - type: number
                                                                    enum:
                                                                      - 1
                                                                  - type: number
                                                                    enum:
                                                                      - 2
                                                                  - type: number
                                                                    enum:
                                                                      - 3
                                                                  - type: number
                                                                    enum:
                                                                      - 4
                                                                  - type: number
                                                                    enum:
                                                                      - 5
                                                                  - type: number
                                                                    enum:
                                                                      - 6
                                                            defaultTimezone:
                                                              type: string
                                                            type:
                                                              type: string
                                                              enum:
                                                                - LocalTime
                                                          required:
                                                            - type
                                                        - type: object
                                                          properties:
                                                            seconds:
                                                              type: number
                                                            type:
                                                              type: string
                                                              enum:
                                                                - Second
                                                          required:
                                                            - type
                                                        - type: object
                                                          properties:
                                                            userProperty:
                                                              type: string
                                                            offsetSeconds:
                                                              type: number
                                                            offsetDirection:
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - after
                                                                - type: string
                                                                  enum:
                                                                    - before
                                                            type:
                                                              type: string
                                                              enum:
                                                                - UserProperty
                                                          required:
                                                            - type
                                                  required:
                                                    - type
                                                    - variant
                                                - type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - SegmentSplitNode
                                                    name:
                                                      type: string
                                                    segmentId:
                                                      type: string
                                                    trueLabelNodeId:
                                                      type: string
                                                    falseLabelNodeId:
                                                      type: string
                                                  required:
                                                    - type
                                                    - name
                                                    - trueLabelNodeId
                                                    - falseLabelNodeId
                                                - type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - WaitForNode
                                                    timeoutSeconds:
                                                      type: number
                                                    timeoutLabelNodeId:
                                                      type: string
                                                    segmentChildren:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          labelNodeId:
                                                            type: string
                                                          segmentId:
                                                            type: string
                                                        required:
                                                          - labelNodeId
                                                  required:
                                                    - type
                                                    - timeoutLabelNodeId
                                                    - segmentChildren
                                                - type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - RandomCohortNode
                                                    cohortChildren:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          name:
                                                            type: string
                                                          percent:
                                                            type: number
                                                        required:
                                                          - name
                                                          - percent
                                                  required:
                                                    - type
                                                    - cohortChildren
                                      required:
                                        - type
                                        - nodeTypeProps
                                    - anyOf:
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - JourneyUiNodeLabelProps
                                            title:
                                              type: string
                                          required:
                                            - type
                                            - title
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - JourneyUiNodeEmptyProps
                                          required:
                                            - type
                              required:
                                - id
                                - data
                          edges:
                            type: array
                            items:
                              type: object
                              properties:
                                source:
                                  type: string
                                target:
                                  type: string
                                data:
                                  anyOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - JourneyUiDefinitionEdgeProps
                                        disableMarker:
                                          type: boolean
                                      required:
                                        - type
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - JourneyUiPlaceholderEdgeProps
                                      required:
                                        - type
                              required:
                                - source
                                - target
                                - data
                        required:
                          - nodes
                          - edges
                      status:
                        type: string
                        enum:
                          - NotStarted
                      definition:
                        type: object
                        properties:
                          entryNode:
                            anyOf:
                              - title: Segment Entry Node
                                description: >-
                                  The first node in a journey - triggered when a
                                  user enters a segment.
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - EntryNode
                                  segment:
                                    type: string
                                  child:
                                    type: string
                                  reEnter:
                                    type: boolean
                                required:
                                  - type
                                  - segment
                                  - child
                              - title: Event Entry Node
                                description: >-
                                  The first node in a journey - triggered when a
                                  user performs a specific event.
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - EventEntryNode
                                  event:
                                    type: string
                                  key:
                                    type: string
                                  child:
                                    type: string
                                required:
                                  - type
                                  - event
                                  - child
                          exitNode:
                            title: Exit Node
                            description: >-
                              Defines when a user exits a journey. Allows users
                              to re-enter the journey, under some set of
                              conditions.
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - ExitNode
                            required:
                              - type
                          nodes:
                            type: array
                            items:
                              anyOf:
                                - title: Delay Node
                                  description: >-
                                    Delays a users progression through the
                                    journey for either a set amount of time, or
                                    until a specific date time.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - DelayNode
                                    variant:
                                      anyOf:
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - Second
                                            seconds:
                                              type: number
                                          required:
                                            - type
                                            - seconds
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - LocalTime
                                            minute:
                                              type: number
                                            hour:
                                              type: number
                                            allowedDaysOfWeek:
                                              type: array
                                              items:
                                                anyOf:
                                                  - type: number
                                                    enum:
                                                      - 0
                                                  - type: number
                                                    enum:
                                                      - 1
                                                  - type: number
                                                    enum:
                                                      - 2
                                                  - type: number
                                                    enum:
                                                      - 3
                                                  - type: number
                                                    enum:
                                                      - 4
                                                  - type: number
                                                    enum:
                                                      - 5
                                                  - type: number
                                                    enum:
                                                      - 6
                                            defaultTimezone:
                                              type: string
                                          required:
                                            - type
                                            - hour
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - UserProperty
                                            userProperty:
                                              type: string
                                            offsetSeconds:
                                              type: number
                                            offsetDirection:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - after
                                                - type: string
                                                  enum:
                                                    - before
                                          required:
                                            - type
                                            - userProperty
                                    child:
                                      type: string
                                  required:
                                    - id
                                    - type
                                    - variant
                                    - child
                                - title: Rate Limit Node
                                  description: >-
                                    Used to limit the frequency with which users
                                    are contacted by a given Journey.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - RateLimitNode
                                  required:
                                    - id
                                    - type
                                - title: Segment Split Node
                                  description: >-
                                    Used to split users among audiences, based
                                    on the behavior and attributes.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - SegmentSplitNode
                                    variant:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Boolean
                                        segment:
                                          type: string
                                        trueChild:
                                          type: string
                                        falseChild:
                                          type: string
                                      required:
                                        - type
                                        - segment
                                        - trueChild
                                        - falseChild
                                    name:
                                      type: string
                                  required:
                                    - id
                                    - type
                                    - variant
                                - title: Message Node
                                  description: Used to contact a user on a message channel.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - MessageNode
                                    name:
                                      type: string
                                    subscriptionGroupId:
                                      type: string
                                    variant:
                                      anyOf:
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - Email
                                            templateId:
                                              type: string
                                            providerOverride:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - SendGrid
                                                - type: string
                                                  enum:
                                                    - AmazonSes
                                                - type: string
                                                  enum:
                                                    - Resend
                                                - type: string
                                                  enum:
                                                    - PostMark
                                                - type: string
                                                  enum:
                                                    - Smtp
                                                - type: string
                                                  enum:
                                                    - Test
                                                - type: string
                                                  enum:
                                                    - MailChimp
                                          required:
                                            - type
                                            - templateId
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - MobilePush
                                            templateId:
                                              type: string
                                            providerOverride:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - Firebase
                                                - type: string
                                                  enum:
                                                    - Test
                                          required:
                                            - type
                                            - templateId
                                        - anyOf:
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - Sms
                                                templateId:
                                                  type: string
                                                providerOverride:
                                                  type: 'null'
                                                senderOverride:
                                                  type: 'null'
                                              required:
                                                - type
                                                - templateId
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - Sms
                                                templateId:
                                                  type: string
                                                providerOverride:
                                                  type: string
                                                  enum:
                                                    - Twilio
                                                senderOverride:
                                                  anyOf:
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageSid
                                                        messagingServiceSid:
                                                          type: string
                                                      required:
                                                        - type
                                                        - messagingServiceSid
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - PhoneNumber
                                                        phone:
                                                          type: string
                                                      required:
                                                        - type
                                                        - phone
                                              required:
                                                - type
                                                - templateId
                                                - providerOverride
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - Sms
                                                templateId:
                                                  type: string
                                                providerOverride:
                                                  type: string
                                                  enum:
                                                    - SignalWire
                                                senderOverride:
                                                  type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - PhoneNumber
                                                    phone:
                                                      type: string
                                                  required:
                                                    - type
                                                    - phone
                                              required:
                                                - type
                                                - templateId
                                                - providerOverride
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - Sms
                                                templateId:
                                                  type: string
                                                providerOverride:
                                                  type: string
                                                  enum:
                                                    - Test
                                                senderOverride:
                                                  type: 'null'
                                              required:
                                                - type
                                                - templateId
                                                - providerOverride
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - Webhook
                                            templateId:
                                              type: string
                                          required:
                                            - type
                                            - templateId
                                    child:
                                      type: string
                                    syncProperties:
                                      type: boolean
                                    skipOnFailure:
                                      type: boolean
                                    retryCount:
                                      description: 'Number of retry attempts (default: 3)'
                                      type: number
                                  required:
                                    - id
                                    - type
                                    - variant
                                    - child
                                - title: Random Cohort Node
                                  description: >-
                                    Used to split users among random cohorts, to
                                    test their effectiveness.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - RandomCohortNode
                                    children:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            description: The id of the child node to be split to
                                            type: string
                                          percent:
                                            description: >-
                                              The percentage of users to be randomly
                                              assigned to be in the cohort.
                                            type: number
                                          name:
                                            type: string
                                        required:
                                          - id
                                          - percent
                                          - name
                                  required:
                                    - id
                                    - type
                                    - children
                                - title: Wait For Node
                                  description: >-
                                    A node which waits for a user to enter a
                                    segment before progressing.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - WaitForNode
                                    timeoutSeconds:
                                      type: number
                                    timeoutChild:
                                      type: string
                                    segmentChildren:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                          segmentId:
                                            type: string
                                        required:
                                          - id
                                          - segmentId
                                  required:
                                    - id
                                    - type
                                    - timeoutSeconds
                                    - timeoutChild
                                    - segmentChildren
                        required:
                          - entryNode
                          - exitNode
                          - nodes
                      createdAt:
                        type: number
                    required:
                      - id
                      - workspaceId
                      - name
                      - updatedAt
                      - status
                      - createdAt
                  - type: object
                    properties:
                      id:
                        type: string
                      workspaceId:
                        type: string
                      name:
                        type: string
                      canRunMultiple:
                        type: boolean
                      updatedAt:
                        allOf:
                          - type: number
                          - type: number
                      draft:
                        type: object
                        properties:
                          nodes:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                data:
                                  anyOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - JourneyUiNodeDefinitionProps
                                        nodeTypeProps:
                                          anyOf:
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - EntryUiNode
                                                variant:
                                                  anyOf:
                                                    - type: object
                                                      properties:
                                                        segment:
                                                          type: string
                                                        child:
                                                          type: string
                                                        reEnter:
                                                          type: boolean
                                                        type:
                                                          type: string
                                                          enum:
                                                            - EntryNode
                                                      required:
                                                        - type
                                                    - type: object
                                                      properties:
                                                        event:
                                                          type: string
                                                        key:
                                                          type: string
                                                        child:
                                                          type: string
                                                        type:
                                                          type: string
                                                          enum:
                                                            - EventEntryNode
                                                      required:
                                                        - type
                                              required:
                                                - type
                                                - variant
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - ExitNode
                                              required:
                                                - type
                                            - anyOf:
                                                - anyOf:
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageNode
                                                        name:
                                                          type: string
                                                        templateId:
                                                          type: string
                                                        subscriptionGroupId:
                                                          type: string
                                                        syncProperties:
                                                          type: boolean
                                                        skipOnFailure:
                                                          type: boolean
                                                        channel:
                                                          type: string
                                                          enum:
                                                            - Email
                                                        providerOverride:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - SendGrid
                                                            - type: string
                                                              enum:
                                                                - AmazonSes
                                                            - type: string
                                                              enum:
                                                                - Resend
                                                            - type: string
                                                              enum:
                                                                - PostMark
                                                            - type: string
                                                              enum:
                                                                - Smtp
                                                            - type: string
                                                              enum:
                                                                - Test
                                                            - type: string
                                                              enum:
                                                                - MailChimp
                                                      required:
                                                        - type
                                                        - name
                                                        - channel
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageNode
                                                        name:
                                                          type: string
                                                        templateId:
                                                          type: string
                                                        subscriptionGroupId:
                                                          type: string
                                                        syncProperties:
                                                          type: boolean
                                                        skipOnFailure:
                                                          type: boolean
                                                        channel:
                                                          type: string
                                                          enum:
                                                            - Sms
                                                        providerOverride:
                                                          anyOf:
                                                            - type: 'null'
                                                            - type: string
                                                              enum:
                                                                - Twilio
                                                            - type: string
                                                              enum:
                                                                - SignalWire
                                                            - type: string
                                                              enum:
                                                                - Test
                                                        senderOverride:
                                                          anyOf:
                                                            - type: 'null'
                                                            - anyOf:
                                                                - type: object
                                                                  properties:
                                                                    type:
                                                                      type: string
                                                                      enum:
                                                                        - MessageSid
                                                                    messagingServiceSid:
                                                                      type: string
                                                                  required:
                                                                    - type
                                                                    - messagingServiceSid
                                                                - type: object
                                                                  properties:
                                                                    type:
                                                                      type: string
                                                                      enum:
                                                                        - PhoneNumber
                                                                    phone:
                                                                      type: string
                                                                  required:
                                                                    - type
                                                                    - phone
                                                            - type: object
                                                              properties:
                                                                type:
                                                                  type: string
                                                                  enum:
                                                                    - PhoneNumber
                                                                phone:
                                                                  type: string
                                                              required:
                                                                - type
                                                                - phone
                                                            - type: 'null'
                                                      required:
                                                        - type
                                                        - name
                                                        - channel
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageNode
                                                        name:
                                                          type: string
                                                        templateId:
                                                          type: string
                                                        subscriptionGroupId:
                                                          type: string
                                                        syncProperties:
                                                          type: boolean
                                                        skipOnFailure:
                                                          type: boolean
                                                        channel:
                                                          type: string
                                                          enum:
                                                            - MobilePush
                                                        providerOverride:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - Firebase
                                                            - type: string
                                                              enum:
                                                                - Test
                                                      required:
                                                        - type
                                                        - name
                                                        - channel
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageNode
                                                        name:
                                                          type: string
                                                        templateId:
                                                          type: string
                                                        subscriptionGroupId:
                                                          type: string
                                                        syncProperties:
                                                          type: boolean
                                                        skipOnFailure:
                                                          type: boolean
                                                        channel:
                                                          type: string
                                                          enum:
                                                            - Webhook
                                                      required:
                                                        - type
                                                        - name
                                                        - channel
                                                - type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - DelayNode
                                                    variant:
                                                      anyOf:
                                                        - type: object
                                                          properties:
                                                            minute:
                                                              type: number
                                                            hour:
                                                              type: number
                                                            allowedDaysOfWeek:
                                                              type: array
                                                              items:
                                                                anyOf:
                                                                  - type: number
                                                                    enum:
                                                                      - 0
                                                                  - type: number
                                                                    enum:
                                                                      - 1
                                                                  - type: number
                                                                    enum:
                                                                      - 2
                                                                  - type: number
                                                                    enum:
                                                                      - 3
                                                                  - type: number
                                                                    enum:
                                                                      - 4
                                                                  - type: number
                                                                    enum:
                                                                      - 5
                                                                  - type: number
                                                                    enum:
                                                                      - 6
                                                            defaultTimezone:
                                                              type: string
                                                            type:
                                                              type: string
                                                              enum:
                                                                - LocalTime
                                                          required:
                                                            - type
                                                        - type: object
                                                          properties:
                                                            seconds:
                                                              type: number
                                                            type:
                                                              type: string
                                                              enum:
                                                                - Second
                                                          required:
                                                            - type
                                                        - type: object
                                                          properties:
                                                            userProperty:
                                                              type: string
                                                            offsetSeconds:
                                                              type: number
                                                            offsetDirection:
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - after
                                                                - type: string
                                                                  enum:
                                                                    - before
                                                            type:
                                                              type: string
                                                              enum:
                                                                - UserProperty
                                                          required:
                                                            - type
                                                  required:
                                                    - type
                                                    - variant
                                                - type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - SegmentSplitNode
                                                    name:
                                                      type: string
                                                    segmentId:
                                                      type: string
                                                    trueLabelNodeId:
                                                      type: string
                                                    falseLabelNodeId:
                                                      type: string
                                                  required:
                                                    - type
                                                    - name
                                                    - trueLabelNodeId
                                                    - falseLabelNodeId
                                                - type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - WaitForNode
                                                    timeoutSeconds:
                                                      type: number
                                                    timeoutLabelNodeId:
                                                      type: string
                                                    segmentChildren:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          labelNodeId:
                                                            type: string
                                                          segmentId:
                                                            type: string
                                                        required:
                                                          - labelNodeId
                                                  required:
                                                    - type
                                                    - timeoutLabelNodeId
                                                    - segmentChildren
                                                - type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - RandomCohortNode
                                                    cohortChildren:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          name:
                                                            type: string
                                                          percent:
                                                            type: number
                                                        required:
                                                          - name
                                                          - percent
                                                  required:
                                                    - type
                                                    - cohortChildren
                                      required:
                                        - type
                                        - nodeTypeProps
                                    - anyOf:
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - JourneyUiNodeLabelProps
                                            title:
                                              type: string
                                          required:
                                            - type
                                            - title
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - JourneyUiNodeEmptyProps
                                          required:
                                            - type
                              required:
                                - id
                                - data
                          edges:
                            type: array
                            items:
                              type: object
                              properties:
                                source:
                                  type: string
                                target:
                                  type: string
                                data:
                                  anyOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - JourneyUiDefinitionEdgeProps
                                        disableMarker:
                                          type: boolean
                                      required:
                                        - type
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - JourneyUiPlaceholderEdgeProps
                                      required:
                                        - type
                              required:
                                - source
                                - target
                                - data
                        required:
                          - nodes
                          - edges
                      status:
                        anyOf:
                          - type: string
                            enum:
                              - Running
                          - type: string
                            enum:
                              - Paused
                          - type: string
                            enum:
                              - Broadcast
                      definition:
                        type: object
                        properties:
                          entryNode:
                            anyOf:
                              - title: Segment Entry Node
                                description: >-
                                  The first node in a journey - triggered when a
                                  user enters a segment.
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - EntryNode
                                  segment:
                                    type: string
                                  child:
                                    type: string
                                  reEnter:
                                    type: boolean
                                required:
                                  - type
                                  - segment
                                  - child
                              - title: Event Entry Node
                                description: >-
                                  The first node in a journey - triggered when a
                                  user performs a specific event.
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - EventEntryNode
                                  event:
                                    type: string
                                  key:
                                    type: string
                                  child:
                                    type: string
                                required:
                                  - type
                                  - event
                                  - child
                          exitNode:
                            title: Exit Node
                            description: >-
                              Defines when a user exits a journey. Allows users
                              to re-enter the journey, under some set of
                              conditions.
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - ExitNode
                            required:
                              - type
                          nodes:
                            type: array
                            items:
                              anyOf:
                                - title: Delay Node
                                  description: >-
                                    Delays a users progression through the
                                    journey for either a set amount of time, or
                                    until a specific date time.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - DelayNode
                                    variant:
                                      anyOf:
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - Second
                                            seconds:
                                              type: number
                                          required:
                                            - type
                                            - seconds
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - LocalTime
                                            minute:
                                              type: number
                                            hour:
                                              type: number
                                            allowedDaysOfWeek:
                                              type: array
                                              items:
                                                anyOf:
                                                  - type: number
                                                    enum:
                                                      - 0
                                                  - type: number
                                                    enum:
                                                      - 1
                                                  - type: number
                                                    enum:
                                                      - 2
                                                  - type: number
                                                    enum:
                                                      - 3
                                                  - type: number
                                                    enum:
                                                      - 4
                                                  - type: number
                                                    enum:
                                                      - 5
                                                  - type: number
                                                    enum:
                                                      - 6
                                            defaultTimezone:
                                              type: string
                                          required:
                                            - type
                                            - hour
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - UserProperty
                                            userProperty:
                                              type: string
                                            offsetSeconds:
                                              type: number
                                            offsetDirection:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - after
                                                - type: string
                                                  enum:
                                                    - before
                                          required:
                                            - type
                                            - userProperty
                                    child:
                                      type: string
                                  required:
                                    - id
                                    - type
                                    - variant
                                    - child
                                - title: Rate Limit Node
                                  description: >-
                                    Used to limit the frequency with which users
                                    are contacted by a given Journey.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - RateLimitNode
                                  required:
                                    - id
                                    - type
                                - title: Segment Split Node
                                  description: >-
                                    Used to split users among audiences, based
                                    on the behavior and attributes.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - SegmentSplitNode
                                    variant:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - Boolean
                                        segment:
                                          type: string
                                        trueChild:
                                          type: string
                                        falseChild:
                                          type: string
                                      required:
                                        - type
                                        - segment
                                        - trueChild
                                        - falseChild
                                    name:
                                      type: string
                                  required:
                                    - id
                                    - type
                                    - variant
                                - title: Message Node
                                  description: Used to contact a user on a message channel.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - MessageNode
                                    name:
                                      type: string
                                    subscriptionGroupId:
                                      type: string
                                    variant:
                                      anyOf:
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - Email
                                            templateId:
                                              type: string
                                            providerOverride:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - SendGrid
                                                - type: string
                                                  enum:
                                                    - AmazonSes
                                                - type: string
                                                  enum:
                                                    - Resend
                                                - type: string
                                                  enum:
                                                    - PostMark
                                                - type: string
                                                  enum:
                                                    - Smtp
                                                - type: string
                                                  enum:
                                                    - Test
                                                - type: string
                                                  enum:
                                                    - MailChimp
                                          required:
                                            - type
                                            - templateId
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - MobilePush
                                            templateId:
                                              type: string
                                            providerOverride:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - Firebase
                                                - type: string
                                                  enum:
                                                    - Test
                                          required:
                                            - type
                                            - templateId
                                        - anyOf:
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - Sms
                                                templateId:
                                                  type: string
                                                providerOverride:
                                                  type: 'null'
                                                senderOverride:
                                                  type: 'null'
                                              required:
                                                - type
                                                - templateId
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - Sms
                                                templateId:
                                                  type: string
                                                providerOverride:
                                                  type: string
                                                  enum:
                                                    - Twilio
                                                senderOverride:
                                                  anyOf:
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - MessageSid
                                                        messagingServiceSid:
                                                          type: string
                                                      required:
                                                        - type
                                                        - messagingServiceSid
                                                    - type: object
                                                      properties:
                                                        type:
                                                          type: string
                                                          enum:
                                                            - PhoneNumber
                                                        phone:
                                                          type: string
                                                      required:
                                                        - type
                                                        - phone
                                              required:
                                                - type
                                                - templateId
                                                - providerOverride
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - Sms
                                                templateId:
                                                  type: string
                                                providerOverride:
                                                  type: string
                                                  enum:
                                                    - SignalWire
                                                senderOverride:
                                                  type: object
                                                  properties:
                                                    type:
                                                      type: string
                                                      enum:
                                                        - PhoneNumber
                                                    phone:
                                                      type: string
                                                  required:
                                                    - type
                                                    - phone
                                              required:
                                                - type
                                                - templateId
                                                - providerOverride
                                            - type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - Sms
                                                templateId:
                                                  type: string
                                                providerOverride:
                                                  type: string
                                                  enum:
                                                    - Test
                                                senderOverride:
                                                  type: 'null'
                                              required:
                                                - type
                                                - templateId
                                                - providerOverride
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                                - Webhook
                                            templateId:
                                              type: string
                                          required:
                                            - type
                                            - templateId
                                    child:
                                      type: string
                                    syncProperties:
                                      type: boolean
                                    skipOnFailure:
                                      type: boolean
                                    retryCount:
                                      description: 'Number of retry attempts (default: 3)'
                                      type: number
                                  required:
                                    - id
                                    - type
                                    - variant
                                    - child
                                - title: Random Cohort Node
                                  description: >-
                                    Used to split users among random cohorts, to
                                    test their effectiveness.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - RandomCohortNode
                                    children:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            description: The id of the child node to be split to
                                            type: string
                                          percent:
                                            description: >-
                                              The percentage of users to be randomly
                                              assigned to be in the cohort.
                                            type: number
                                          name:
                                            type: string
                                        required:
                                          - id
                                          - percent
                                          - name
                                  required:
                                    - id
                                    - type
                                    - children
                                - title: Wait For Node
                                  description: >-
                                    A node which waits for a user to enter a
                                    segment before progressing.
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - WaitForNode
                                    timeoutSeconds:
                                      type: number
                                    timeoutChild:
                                      type: string
                                    segmentChildren:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                          segmentId:
                                            type: string
                                        required:
                                          - id
                                          - segmentId
                                  required:
                                    - id
                                    - type
                                    - timeoutSeconds
                                    - timeoutChild
                                    - segmentChildren
                        required:
                          - entryNode
                          - exitNode
                          - nodes
                      createdAt:
                        type: number
                    required:
                      - id
                      - workspaceId
                      - name
                      - updatedAt
                      - status
                      - definition
                      - createdAt
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - ConstraintViolation
                      violations:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              anyOf:
                                - type: string
                                  enum:
                                    - WaitForNodeAndEventEntryNode
                                - type: string
                                  enum:
                                    - KeyedPerformedSegmentEntryNode
                                - type: string
                                  enum:
                                    - CantStart
                            message:
                              type: string
                          required:
                            - type
                            - message
                    required:
                      - type
                      - violations
                  - type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - IdError
                      message:
                        type: string
                    required:
                      - type
                      - message
                  - type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - StatusTransitionError
                      message:
                        type: string
                    required:
                      - type
                      - message
                  - type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - UniqueConstraintViolation
                      message:
                        type: string
                    required:
                      - type
                      - message
                  - type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - BadValues
                      message:
                        type: string
                    required:
                      - type
                      - message

````