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

# Make a variant the flow default

> Promotes a variant to the flow's default, demoting the current one. The outgoing default's persona and environment are baked into it first, so variants that were inheriting keep the configuration they had.



## OpenAPI

````yaml /api-reference/openapi.documented.json post /v1/simulation/customer-flow/{flowId}/variant/{variantId}/default
openapi: 3.1.0
info:
  title: Roark Analytics API
  description: >-
    The Roark Analytics API gives you access to the same API that powers the
    award winning Roark Analytics platform.
  version: 1.0.0
servers:
  - description: Production
    url: https://api.roark.ai
security:
  - Bearer: []
tags:
  - name: Agent
  - name: Agent Endpoint
  - name: Call
  - name: Chat
  - name: Metric
  - name: Metric Policy
  - name: Metric Collection Job
  - name: Simulation Persona
  - name: Simulation Environment
  - name: Simulation Customer Flow
  - name: Simulation Customer Flow Variant
  - name: Simulation Scenario
  - name: Simulation Run Plan
  - name: Simulation Run Plan Job
  - name: Simulation Job
  - name: HTTP Request Definition
  - name: Webhook
  - name: Issue
  - name: Knowledge Base
  - name: Call Analysis
  - name: Health
paths:
  /v1/simulation/customer-flow/{flowId}/variant/{variantId}/default:
    post:
      tags:
        - Simulation Customer Flow Variant
      summary: Make a variant the flow default
      description: >-
        Promotes a variant to the flow's default, demoting the current one. The
        outgoing default's persona and environment are baked into it first, so
        variants that were inheriting keep the configuration they had.
      operationId: postV1SimulationCustomer-flowByFlowIdVariantByVariantIdDefault
      parameters:
        - in: path
          name: flowId
          schema:
            type: string
            format: uuid
          required: true
        - in: path
          name: variantId
          schema:
            type: string
            format: uuid
          required: true
      responses:
        '200':
          description: The variant, now the default
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/FlowVariantResponse'
                required:
                  - data
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Validation error
              example:
                type: validation
                code: invalid_parameter
                message: The request was invalid
                param: email
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Authentication error
              example:
                type: authentication
                code: unauthorized
                message: Authentication required
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Permission error
              example:
                type: forbidden
                code: permission_denied
                message: You do not have permission to access this resource
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Not found error
              example:
                type: not_found
                code: resource_not_found
                message: The requested resource could not be found
          description: Not Found
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Rate limit error
              example:
                type: rate_limit
                code: too_many_requests
                message: Rate limit exceeded
          description: Too Many Requests
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Server error
              example:
                type: internal
                code: internal_error
                message: Internal server error
          description: Internal Server Error
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Roark from '@roarkanalytics/sdk';


            const client = new Roark({
              bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted
            });


            const response = await
            client.simulationCustomerFlowVariant.setDefault(
              '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
              { flowId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },
            );


            console.log(response.data);
        - lang: Python
          source: |-
            import os
            from roark_analytics import Roark

            client = Roark(
                bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"),  # This is the default and can be omitted
            )
            response = client.simulation_customer_flow_variant.set_default(
                variant_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
                flow_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
            )
            print(response.data)
components:
  schemas:
    FlowVariantResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        customerFlowId:
          type: string
          format: uuid
        title:
          type: string
          minLength: 1
        isDefault:
          type: boolean
          default: false
        personaId:
          type:
            - string
            - 'null'
          format: uuid
        environmentId:
          type:
            - string
            - 'null'
          format: uuid
        prompt:
          type:
            - string
            - 'null'
        latestPathId:
          type:
            - string
            - 'null'
          format: uuid
        precededByCustomerFlowId:
          type:
            - string
            - 'null'
          format: uuid
        precededByCustomerFlowVariantId:
          type:
            - string
            - 'null'
          format: uuid
        isGenerated:
          type: boolean
          default: false
        isAutoGeneratedTitle:
          type: boolean
          default: false
        createdAt:
          type: string
          description: Creation timestamp in ISO 8601 format
        updatedAt:
          type: string
          description: Last update timestamp in ISO 8601 format
        additionalExpectations:
          type: array
          items:
            $ref: '#/components/schemas/FlowExpectationResponse'
      required:
        - id
        - customerFlowId
        - title
        - isDefault
        - personaId
        - environmentId
        - latestPathId
        - precededByCustomerFlowId
        - precededByCustomerFlowVariantId
        - isGenerated
        - isAutoGeneratedTitle
        - createdAt
        - updatedAt
        - additionalExpectations
      description: >-
        One way of running a flow. Exactly one variant per flow is the default;
        the others inherit its persona and environment wherever they leave those
        unset. On a scripted flow each variant is bound to one path through the
        graph and the path engine owns that binding.
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - validation
            - authentication
            - forbidden
            - not_found
            - conflict
            - payment_required
            - rate_limit
            - internal
          description: The error type category
          examples:
            - validation
            - authentication
        code:
          type: string
          description: Machine-readable error code identifier
          examples:
            - invalid_parameter
            - missing_required_field
            - unauthorized
        message:
          type: string
          description: Human-readable error message
          examples:
            - The request was invalid
            - Authentication required
        param:
          type: string
          description: The parameter that caused the error (if applicable)
          examples:
            - email
            - user_id
        details:
          description: Additional error context information
      required:
        - type
        - code
        - message
    FlowExpectationResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        llmPrompt:
          type: string
        orderIndex:
          type: integer
          default: 0
        sourceStepNodeId:
          type:
            - string
            - 'null'
          format: uuid
      required:
        - id
        - llmPrompt
        - orderIndex
        - sourceStepNodeId
      description: >-
        An expectation the agent under test is graded against. On a scripted
        flow these are derived from the agent turns in the graph, so they are
        read-only there.
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````