Extole Campaign Flow Steps API

The Campaign Flow Steps API from Extole — 12 operation(s) for campaign flow steps.

OpenAPI Specification

extole-campaign-flow-steps-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  description: 'Consumer-to-Extole integration endpoints: consumer event submission, zone rendering, profile management, and SDK-backing operations for browser and native app environments.'
  title: Integration API - Consumer to Extole Audiences Campaign Flow Steps API
  version: '1.0'
servers:
- description: Production
  url: https://{brand}.extole.io
  variables:
    brand:
      default: yourcompany
      description: Your Extole client subdomain (e.g. 'mycompany' for mycompany.extole.io)
security:
- HEADER: []
- QUERY: []
- COOKIE: []
tags:
- name: Campaign Flow Steps
paths:
  /v2/campaigns/{campaignId}{version}/flow-steps:
    get:
      description: Returns all flow steps for the specified campaign.
      operationId: listCampaignFlowSteps
      parameters:
      - in: path
        name: campaignId
        required: true
        schema:
          type: string
      - in: path
        name: version
        required: true
        schema:
          pattern: (/version/.+)?
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CampaignFlowStepResponse'
                type: array
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_concurrent_update:
                  $ref: '#/components/examples/campaign_concurrent_update'
                campaign_has_pending_changes:
                  $ref: '#/components/examples/campaign_has_pending_changes'
                campaign_locked:
                  $ref: '#/components/examples/campaign_locked'
                campaign_version_malformed:
                  $ref: '#/components/examples/campaign_version_malformed'
                date_invalid:
                  $ref: '#/components/examples/date_invalid'
                invalid_campaign_id:
                  $ref: '#/components/examples/invalid_campaign_id'
                invalid_campaign_state:
                  $ref: '#/components/examples/invalid_campaign_state'
                invalid_campaign_version:
                  $ref: '#/components/examples/invalid_campaign_version'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                lock_missing_lock_types:
                  $ref: '#/components/examples/lock_missing_lock_types'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                unlock_missing_lock_types:
                  $ref: '#/components/examples/unlock_missing_lock_types'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
      summary: List campaign flow steps
      tags:
      - Campaign Flow Steps
      x-extole-bundle: management-expert
      x-extole-visibility: expert
    post:
      description: Adds a new flow step to the specified campaign. Flow steps are the visual builder blocks of a participant's journey through a campaign. Returns the created flow step with its server-assigned id.
      operationId: createCampaignFlowStep
      parameters:
      - in: path
        name: campaignId
        required: true
        schema:
          type: string
      - in: path
        name: version
        required: true
        schema:
          pattern: (/version/.+)?
          type: string
      requestBody:
        content:
          application/json:
            example:
              apps:
              - component_ids:
                - component_id
                component_references:
                - component_id: component_id
                  socket_names:
                  - socket_name
                description: description
                name: name
                type:
                  name: name
              component_ids:
              - component_id
              component_references:
              - component_id: component_id
                socket_names:
                - socket_name
              description: description
              flow_path: flow_path
              icon_color: icon_color
              icon_type: icon_type
              metrics:
              - component_ids:
                - component_id
                component_references:
                - component_id: component_id
                  socket_names:
                  - socket_name
                description: description
                expression: expression
                name: name
                tags:
                - tag
                unit: unit
              name: name
              sequence: 1.0
              step_name: step_name
              tags:
              - tag
              words:
                person_counting_name: person_counting_name
                plural_noun_name: plural_noun_name
                rate_name: rate_name
                singular_noun_name: singular_noun_name
                verb_name: verb_name
            schema:
              $ref: '#/components/schemas/CampaignFlowStepCreateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignFlowStepResponse'
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_build_failed:
                  $ref: '#/components/examples/campaign_build_failed'
                campaign_component_absolute_name_missing:
                  $ref: '#/components/examples/campaign_component_absolute_name_missing'
                campaign_component_description_out_of_range:
                  $ref: '#/components/examples/campaign_component_description_out_of_range'
                campaign_component_display_name_contains_illegal_character:
                  $ref: '#/components/examples/campaign_component_display_name_contains_illegal_character'
                campaign_component_display_name_out_of_range:
                  $ref: '#/components/examples/campaign_component_display_name_out_of_range'
                campaign_component_id_missing:
                  $ref: '#/components/examples/campaign_component_id_missing'
                campaign_component_name_already_in_use:
                  $ref: '#/components/examples/campaign_component_name_already_in_use'
                campaign_component_name_contains_illegal_character:
                  $ref: '#/components/examples/campaign_component_name_contains_illegal_character'
                campaign_component_name_out_of_range:
                  $ref: '#/components/examples/campaign_component_name_out_of_range'
                campaign_component_type_validation_failed:
                  $ref: '#/components/examples/campaign_component_type_validation_failed'
                campaign_concurrent_update:
                  $ref: '#/components/examples/campaign_concurrent_update'
                campaign_flow_step_app_description_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_app_description_length_out_of_range'
                campaign_flow_step_app_name_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_app_name_length_out_of_range'
                campaign_flow_step_app_name_missing:
                  $ref: '#/components/examples/campaign_flow_step_app_name_missing'
                campaign_flow_step_app_type_missing:
                  $ref: '#/components/examples/campaign_flow_step_app_type_missing'
                campaign_flow_step_app_type_name_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_app_type_name_length_out_of_range'
                campaign_flow_step_app_type_name_missing:
                  $ref: '#/components/examples/campaign_flow_step_app_type_name_missing'
                campaign_flow_step_description_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_description_length_out_of_range'
                campaign_flow_step_flow_path_invalid:
                  $ref: '#/components/examples/campaign_flow_step_flow_path_invalid'
                campaign_flow_step_flow_path_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_flow_path_length_out_of_range'
                campaign_flow_step_flow_path_missing:
                  $ref: '#/components/examples/campaign_flow_step_flow_path_missing'
                campaign_flow_step_icon_color_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_icon_color_length_out_of_range'
                campaign_flow_step_icon_type_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_icon_type_length_out_of_range'
                campaign_flow_step_icon_type_missing:
                  $ref: '#/components/examples/campaign_flow_step_icon_type_missing'
                campaign_flow_step_metric_description_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_metric_description_length_out_of_range'
                campaign_flow_step_metric_duplicate_exists:
                  $ref: '#/components/examples/campaign_flow_step_metric_duplicate_exists'
                campaign_flow_step_metric_expression_invalid:
                  $ref: '#/components/examples/campaign_flow_step_metric_expression_invalid'
                campaign_flow_step_metric_expression_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_metric_expression_length_out_of_range'
                campaign_flow_step_metric_expression_missing:
                  $ref: '#/components/examples/campaign_flow_step_metric_expression_missing'
                campaign_flow_step_metric_name_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_metric_name_length_out_of_range'
                campaign_flow_step_metric_name_missing:
                  $ref: '#/components/examples/campaign_flow_step_metric_name_missing'
                campaign_flow_step_metric_tags_missing:
                  $ref: '#/components/examples/campaign_flow_step_metric_tags_missing'
                campaign_flow_step_metric_unit_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_metric_unit_length_out_of_range'
                campaign_flow_step_metric_unit_missing:
                  $ref: '#/components/examples/campaign_flow_step_metric_unit_missing'
                campaign_flow_step_name_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_name_length_out_of_range'
                campaign_flow_step_sequence_invalid:
                  $ref: '#/components/examples/campaign_flow_step_sequence_invalid'
                campaign_flow_step_sequence_missing:
                  $ref: '#/components/examples/campaign_flow_step_sequence_missing'
                campaign_flow_step_step_name_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_step_name_length_out_of_range'
                campaign_flow_step_step_name_missing:
                  $ref: '#/components/examples/campaign_flow_step_step_name_missing'
                campaign_flow_step_word_length_out_of_range:
                  $ref: '#/components/examples/campaign_flow_step_word_length_out_of_range'
                campaign_has_pending_changes:
                  $ref: '#/components/examples/campaign_has_pending_changes'
                campaign_locked:
                  $ref: '#/components/examples/campaign_locked'
                campaign_stale_version:
                  $ref: '#/components/examples/campaign_stale_version'
                campaign_version_malformed:
                  $ref: '#/components/examples/campaign_version_malformed'
                circular_component_reference:
                  $ref: '#/components/examples/circular_component_reference'
                component_facets_not_found:
                  $ref: '#/components/examples/component_facets_not_found'
                controller_state_misconfiguration:
                  $ref: '#/components/examples/controller_state_misconfiguration'
                date_invalid:
                  $ref: '#/components/examples/date_invalid'
                excessive_component_reference:
                  $ref: '#/components/examples/excessive_component_reference'
                expression_invalid_syntax:
                  $ref: '#/components/examples/expression_invalid_syntax'
                external_element_is_referenced_by_active_configuration:
                  $ref: '#/components/examples/external_element_is_referenced_by_active_configuration'
                external_elements_cannot_have_multiple_references:
                  $ref: '#/components/examples/external_elements_cannot_have_multiple_references'
                invalid_campaign_id:
                  $ref: '#/components/examples/invalid_campaign_id'
                invalid_campaign_state:
                  $ref: '#/components/examples/invalid_campaign_state'
                invalid_campaign_version:
                  $ref: '#/components/examples/invalid_campaign_version'
                invalid_component_installed_into_socket:
                  $ref: '#/components/examples/invalid_component_installed_into_socket'
                invalid_component_reference:
                  $ref: '#/components/examples/invalid_component_reference'
                invalid_component_reference_socket_name:
                  $ref: '#/components/examples/invalid_component_reference_socket_name'
                invalid_external_component_reference:
                  $ref: '#/components/examples/invalid_external_component_reference'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                lock_missing_lock_types:
                  $ref: '#/components/examples/lock_missing_lock_types'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                orphan_external_component_reference:
                  $ref: '#/components/examples/orphan_external_component_reference'
                rebuild_campaigns_build_failed:
                  $ref: '#/components/examples/rebuild_campaigns_build_failed'
                redundant_component_reference:
                  $ref: '#/components/examples/redundant_component_reference'
                self_component_reference:
                  $ref: '#/components/examples/self_component_reference'
                unlock_missing_lock_types:
                  $ref: '#/components/examples/unlock_missing_lock_types'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
      summary: Create a campaign flow step
      tags:
      - Campaign Flow Steps
      x-extole-bundle: management-expert
      x-extole-visibility: expert
  /v2/campaigns/{campaignId}{version}/flow-steps/built:
    get:
      description: Returns all campaign flow steps in their fully evaluated runtime form.
      operationId: listBuiltCampaignFlowSteps
      parameters:
      - in: path
        name: campaignId
        required: true
        schema:
          type: string
      - in: path
        name: version
        required: true
        schema:
          pattern: (/version/.+)?
          type: string
      - in: query
        name: flow_path
        schema:
          nullable: true
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/BuiltCampaignFlowStepResponse'
                type: array
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_build_failed:
                  $ref: '#/components/examples/campaign_build_failed'
                campaign_concurrent_update:
                  $ref: '#/components/examples/campaign_concurrent_update'
                campaign_has_pending_changes:
                  $ref: '#/components/examples/campaign_has_pending_changes'
                campaign_locked:
                  $ref: '#/components/examples/campaign_locked'
                campaign_version_malformed:
                  $ref: '#/components/examples/campaign_version_malformed'
                controller_state_misconfiguration:
                  $ref: '#/components/examples/controller_state_misconfiguration'
                date_invalid:
                  $ref: '#/components/examples/date_invalid'
                expression_invalid_syntax:
                  $ref: '#/components/examples/expression_invalid_syntax'
                invalid_campaign_id:
                  $ref: '#/components/examples/invalid_campaign_id'
                invalid_campaign_state:
                  $ref: '#/components/examples/invalid_campaign_state'
                invalid_campaign_version:
                  $ref: '#/components/examples/invalid_campaign_version'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                lock_missing_lock_types:
                  $ref: '#/components/examples/lock_missing_lock_types'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                rebuild_campaigns_build_failed:
                  $ref: '#/components/examples/rebuild_campaigns_build_failed'
                unlock_missing_lock_types:
                  $ref: '#/components/examples/unlock_missing_lock_types'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
      summary: List built campaign flow steps
      tags:
      - Campaign Flow Steps
      x-extole-bundle: management-expert
      x-extole-visibility: expert
  /v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}:
    get:
      description: Returns the campaign flow step for the specified id.
      operationId: getCampaignFlowStep
      parameters:
      - in: path
        name: campaignId
        required: true
        schema:
          type: string
      - in: path
        name: version
        required: true
        schema:
          pattern: (/version/.+)?
          type: string
      - in: path
        name: flowStepId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignFlowStepResponse'
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_concurrent_update:
                  $ref: '#/components/examples/campaign_concurrent_update'
                campaign_has_pending_changes:
                  $ref: '#/components/examples/campaign_has_pending_changes'
                campaign_locked:
                  $ref: '#/components/examples/campaign_locked'
                campaign_version_malformed:
                  $ref: '#/components/examples/campaign_version_malformed'
                date_invalid:
                  $ref: '#/components/examples/date_invalid'
                invalid_campaign_flow_step_id:
                  $ref: '#/components/examples/invalid_campaign_flow_step_id'
                invalid_campaign_id:
                  $ref: '#/components/examples/invalid_campaign_id'
                invalid_campaign_state:
                  $ref: '#/components/examples/invalid_campaign_state'
                invalid_campaign_version:
                  $ref: '#/components/examples/invalid_campaign_version'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                lock_missing_lock_types:
                  $ref: '#/components/examples/lock_missing_lock_types'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                unlock_missing_lock_types:
                  $ref: '#/components/examples/unlock_missing_lock_types'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
      summary: Get a campaign flow step
      tags:
      - Campaign Flow Steps
      x-extole-bundle: management-expert
      x-extole-visibility: expert
    put:
      description: Updates the specified campaign flow step. Only fields present in the request body are changed. Returns the updated flow step.
      operationId: updateCampaignFlowStep
      parameters:
      - in: path
        name: campaignId
        required: true
        schema:
          type: string
      - in: path
        name: version
        required: true
        schema:
          pattern: (/version/.+)?
          type: string
      - in: path
        name: flowStepId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example:
              apps:
              - component_ids:
                - component_id
                component_references:
                - component_id: component_id
                  socket_names:
                  - socket_name
                description: description
                name: name
                type:
                  name: name
              component_ids:
              - component_id
              component_references:
              - component_id: component_id
                socket_names:
                - socket_name
              description: description
              flow_path: flow_path
              icon_color: icon_color
              icon_type: icon_type
              metrics:
              - component_ids:
                - component_id
                component_references:
                - component_id: component_id
                  socket_names:
                  - socket_name
                description: description
                expression: expression
                name: name
                tags:
                - tag
                unit: unit
              name: name
              sequence: 1.0
              step_name: step_name
              tags:
              - tag
              words:
                person_counting_name: person_counting_name
                plural_noun_name: plural_noun_name
                rate_name: rate_name
                singular_noun_name: singular_noun_name
                verb_name: verb_name
            schema:
              $ref: '#/components/schemas/CampaignFlowStepUpdateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignFlowStepResponse'
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_build_failed:
                  $ref: '#/components/examples/campaign_build_failed'
                campaign_component_absolute_name_missing:
                  $ref: '#/components/examples/campaign_component_absolute_name_missing'
                campaign_component_description_out_of_range:
                  $ref: '#/components/examples/campaign_component_description_out_of_range'
                campaign_component_display_name_contains_illegal_character:
                  $ref: '#/components/examples/campaign_component_display_name_contains_illegal_character'
                campaign_component_display_name_out_of_range:
                  $ref: '#/components/examples/campaign_component_display_name_out_of_range'
                campaign_component_id_missing:
                  $ref: '#/components/examples/campaign_component_id_missing'
                campaign_component_name_already_in_use:
                  $ref: '#/components/examples/campaign_component_name_already_in_use'
                campaign_component_name_contains_illegal_character:
                  $ref: '#/components/examples/campaign_component_name_contains_illegal_character'
                campaign_component_name_out_of_range:
                  $ref: '#/components/examples/campaign_component_name_out_of_range'
                campaign_component_type_validation_failed:
                  $ref: '#/components/examples/campaign_component_type_validation_failed'
     

# --- truncated at 32 KB (279 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/extole/refs/heads/main/openapi/extole-campaign-flow-steps-api-openapi.yml