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

# Workspace Builder Agent

> Generate and build a Workspace



## OpenAPI

````yaml post /api/v2/agents/workspace/build
openapi: 3.0.0
info:
  version: 1.0.0
  title: Octave API
  description: API for Octave workspace management and AI-powered content generation
servers:
  - url: https://app.octavehq.com
security:
  - ApiKeyAuth: []
paths:
  /api/v2/agents/workspace/build:
    post:
      tags:
        - Agents
      summary: Workspace Builder Agent
      description: Generate and build a Workspace
      operationId: runWorkspaceBuilder
      requestBody:
        description: Generate and build a Workspace input
        content:
          application/json:
            schema:
              type: object
              properties:
                workspace:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Name of the Workspace
                      example: Octave
                    url:
                      type: string
                      description: URL of the Workspace
                      example: https://octave.com
                    addExistingUsers:
                      type: boolean
                      nullable: true
                      default: true
                      description: >-
                        If true, existing users of the parent workspace will be
                        added to the new workspace
                      example: true
                    agentOIds:
                      type: array
                      items:
                        type: string
                      description: >-
                        Optional array of agent OIds to copy from the source
                        workspace
                      example:
                        - agent_oid1
                        - agent_oid2
                  required:
                    - name
                    - url
                offering:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - PRODUCT
                        - SERVICE
                        - SOLUTION
                      description: >-
                        Type of offering - currently only PRODUCT is supported
                        for workspace building.
                      example: PRODUCT
                    name:
                      type: string
                      nullable: true
                      description: Name of the Offering if different than the workspace
                      example: Octave
                    additionalUrls:
                      type: array
                      nullable: true
                      items:
                        type: string
                      description: >-
                        Additional URLs for the Offering. By default the
                        workspace URL will be used
                    differentiatedValue:
                      type: string
                      nullable: true
                      description: Differentiated Value of the Product
                      example: Our unique approach to...
                    statusQuo:
                      type: string
                      nullable: true
                      description: Status Quo of the Product
                    comparativeAdvantage:
                      type: string
                      nullable: true
                      description: Comparative Advantage of the Product
                      example: Our main advantage over the competition is...
                    likelyAlternative:
                      type: string
                      nullable: true
                      description: Likely Alternative of the Product
                      example: A more traditional approach to...
                    references:
                      type: array
                      nullable: true
                      items:
                        type: object
                        properties:
                          url:
                            type: string
                            nullable: true
                            description: >-
                              URL of a case study or website of the reference
                              customer
                          details:
                            type: string
                            nullable: true
                            description: >-
                              Optional details of how the reference customer
                              used or benefited from the offering
                      description: >-
                        Optional array of existing reference customers that use
                        the offering
                runtimeContext:
                  nullable: true
                  description: >-
                    Additional context to help build the Workspace, Persona, Use
                    Cases, etc
                brandVoiceOId:
                  type: string
                  description: Optional brand voice ID to apply to generated entities
                  example: bv_789
                createDefaultAgents:
                  type: boolean
                  description: >-
                    Whether to create default agents (Email, Prospector, etc.)
                    for the new workspace
                  example: true
                async:
                  type: boolean
                  description: >-
                    If true, the workspace build will be processed
                    asynchronously
                  example: false
                callbackUrl:
                  type: string
                  format: uri
                  description: >-
                    Optional callback URL. When provided with async: true, the
                    API will POST the result to this URL once processing
                    completes.
                  example: https://example.com/webhook/workspace
              required:
                - workspace
      responses:
        '200':
          description: Workspace setup successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  found:
                    type: boolean
                    description: Whether the operation was successful
                    example: true
                  message:
                    type: string
                    nullable: true
                    description: Message
                    example: Additional information
                  data:
                    $ref: '#/components/schemas/WorkspaceBuilderData'
                required:
                  - _metadata
                  - found
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  message:
                    type: string
                required:
                  - _metadata
                  - message
      deprecated: false
components:
  schemas:
    Metadata:
      type: object
      properties:
        usage:
          type: number
          default: 0
          example: 0
          description: API usage
        requestId:
          type: string
          example: requestId
          description: Request ID
        message:
          type: string
          example: message
          description: Message
        timestamp:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          description: Timestamp
      required:
        - requestId
        - timestamp
    WorkspaceBuilderData:
      type: object
      nullable: true
      properties:
        apiKey:
          type: string
          nullable: true
          description: API Key for the newly created Workspace
        mcpUrl:
          type: string
          nullable: true
          description: >-
            MCP server URL (with encoded workspace context) for the Workspace.
            Use together with the API key to connect MCP clients without copying
            values from the dashboard.
        offering:
          anyOf:
            - $ref: '#/components/schemas/Product'
            - $ref: '#/components/schemas/Service'
            - nullable: true
        personas:
          type: array
          nullable: true
          items:
            type: object
            properties:
              oId:
                type: string
                minLength: 1
                description: The ID of the persona
                example: p_1234
              name:
                type: string
                nullable: true
                description: The name of the persona
                example: VP of Sales
              internalName:
                type: string
                nullable: true
                description: The internal name of the persona
                example: Sally the Sales Leader
              description:
                type: string
                nullable: true
                description: The description of the persona
              createdAt:
                type: string
                format: date-time
                description: The date and time the persona was created
                example: '2021-01-01'
              deletedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the persona was deleted
                example: '2021-01-01'
              archivedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the persona was archived
                example: '2021-01-01'
              updatedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the persona was updated
                example: '2021-01-01'
              unrecognized:
                type: boolean
                nullable: true
                description: Whether the persona is unrecognized
                example: false
              rejected:
                type: boolean
                nullable: true
                description: Whether the persona is rejected
                example: false
              active:
                type: boolean
                default: true
                description: Whether the persona is active and can be used
                example: true
              data:
                $ref: '#/components/schemas/PersonaData'
              qualifyingQuestions:
                type: array
                nullable: true
                items:
                  type: object
                  properties:
                    question:
                      type: string
                      description: The question to ask to qualify the entity
                    rationale:
                      type: string
                      description: >-
                        The rationale for the question as to why it helps
                        qualify
                    fitType:
                      type: string
                      enum:
                        - GOOD
                        - BAD
                      description: The fit type of the question
                      example: GOOD
                    weight:
                      type: string
                      enum:
                        - LOW
                        - MEDIUM
                        - HIGH
                        - INSTANT_QUALIFIER
                        - INSTANT_DISQUALIFIER
                      description: The weight of the question
                      example: MEDIUM
                    archivedAt:
                      type: string
                      nullable: true
                      format: date-time
                      description: The date and time the question was archived
                  required:
                    - question
                    - rationale
                    - fitType
                    - weight
              user:
                type: object
                properties:
                  oId:
                    type: string
                    nullable: true
                    description: The ID of the user who created the persona
                    example: u_1234
                  firstName:
                    type: string
                    nullable: true
                    description: The first name of the user who created the persona
                    example: John
                  lastName:
                    type: string
                    nullable: true
                    description: The last name of the user who created the persona
                    example: Doe
              workspace:
                type: object
                properties:
                  oId:
                    type: string
                    nullable: true
                    description: The ID of the workspace that the persona belongs to
                    example: wa_1234
            required:
              - oId
              - createdAt
              - data
              - user
              - workspace
        useCases:
          type: array
          nullable: true
          items:
            type: object
            properties:
              oId:
                type: string
                minLength: 1
                description: The ID of the use case
                example: uc_1234
              createdAt:
                type: string
                format: date-time
                description: The date and time the use case was created
                example: '2021-01-01'
              updatedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the use case was updated
                example: '2021-01-01'
              deletedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the use case was deleted
                example: '2021-01-01'
              archivedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the use case was archived
                example: '2021-01-01'
              name:
                type: string
                nullable: true
                description: The name of the use case
                example: Use Case Name
              internalName:
                type: string
                nullable: true
                description: The internal name of the use case
                example: Use Case Internal Name
              description:
                type: string
                nullable: true
                description: The description of the use case
                example: Use Case Description
              primaryUrl:
                type: string
                nullable: true
                description: The primary URL of the use case
                example: https://www.use-case.com
              active:
                type: boolean
                default: true
                description: Whether the use case is active and can be used
                example: true
              data:
                $ref: '#/components/schemas/UseCaseData'
              user:
                type: object
                properties:
                  oId:
                    type: string
                    nullable: true
                    description: User OId
                  firstName:
                    type: string
                    nullable: true
                    description: The first name of the user who created the use case
                    example: John
                  lastName:
                    type: string
                    nullable: true
                    description: The last name of the user who created the use case
                    example: Doe
              workspace:
                type: object
                properties:
                  oId:
                    type: string
                    nullable: true
                    description: Workspace OId
              scenarios:
                type: array
                nullable: true
                items:
                  type: string
                description: Scenarios
              desiredOutcomes:
                type: array
                nullable: true
                items:
                  type: string
                description: Desired Outcomes
            required:
              - oId
              - createdAt
              - user
              - workspace
        segments:
          type: array
          nullable: true
          items:
            type: object
            properties:
              oId:
                type: string
              createdAt:
                type: string
                nullable: true
                format: date-time
              updatedAt:
                type: string
                nullable: true
                format: date-time
              deletedAt:
                type: string
                nullable: true
                format: date-time
              archivedAt:
                type: string
                nullable: true
                format: date-time
              name:
                type: string
              internalName:
                type: string
              description:
                type: string
              active:
                type: boolean
                default: true
              data:
                type: object
                nullable: true
                properties:
                  strategicFit:
                    type: array
                    items:
                      type: string
                    default: []
                  firmographics:
                    type: object
                    properties:
                      industry:
                        type: array
                        items:
                          type: string
                        default: []
                      businessModel:
                        type: array
                        items:
                          type: string
                        default: []
                      geography:
                        type: array
                        items:
                          type: string
                        default: []
                      revenue:
                        type: array
                        items:
                          type: string
                        default: []
                      employees:
                        type: array
                        items:
                          type: string
                        default: []
                    default:
                      industry: []
                      businessModel: []
                      geography: []
                      revenue: []
                      employees: []
                    additionalProperties:
                      nullable: true
                  operatingCharacteristics:
                    type: array
                    items:
                      type: string
                    default: []
                  strategicPriorities:
                    type: array
                    items:
                      type: string
                    default: []
                  marketPressures:
                    type: array
                    items:
                      type: string
                    default: []
                  buyingDynamics:
                    type: array
                    items:
                      type: string
                    default: []
                  customFields:
                    $ref: '#/components/schemas/CustomDataFields'
                  additionalProperties:
                    type: object
                    additionalProperties:
                      anyOf:
                        - type: string
                        - type: array
                          items:
                            type: string
                        - type: number
                        - type: boolean
              qualifyingQuestions:
                type: array
                nullable: true
                items:
                  type: object
                  properties:
                    question:
                      type: string
                      description: The question to ask to qualify the entity
                    rationale:
                      type: string
                      description: >-
                        The rationale for the question as to why it helps
                        qualify
                    fitType:
                      type: string
                      enum:
                        - GOOD
                        - BAD
                      description: The fit type of the question
                      example: GOOD
                    weight:
                      type: string
                      enum:
                        - LOW
                        - MEDIUM
                        - HIGH
                        - INSTANT_QUALIFIER
                        - INSTANT_DISQUALIFIER
                      description: The weight of the question
                      example: MEDIUM
                    archivedAt:
                      type: string
                      nullable: true
                      format: date-time
                      description: The date and time the question was archived
                  required:
                    - question
                    - rationale
                    - fitType
                    - weight
              user:
                type: object
                nullable: true
                properties:
                  oId:
                    type: string
                    nullable: true
                  firstName:
                    type: string
                    nullable: true
                    description: The first name of the user who created the segment
                    example: John
                  lastName:
                    type: string
                    nullable: true
                    description: The last name of the user who created the segment
                    example: Doe
              workspace:
                type: object
                nullable: true
                properties:
                  oId:
                    type: string
                    nullable: true
              unrecognized:
                type: boolean
              rejected:
                type: boolean
              intelOverride:
                type: object
                nullable: true
                properties:
                  enabled:
                    type: boolean
                  cadence:
                    type: string
                    enum:
                      - weekly
                      - biweekly
                      - monthly
                  guidance:
                    type: string
                    nullable: true
              tags:
                type: array
                items:
                  type: object
                  properties:
                    tagGroupOId:
                      type: string
                    tagGroupName:
                      type: string
                    tagOId:
                      type: string
                    tagName:
                      type: string
                  required:
                    - tagGroupOId
                    - tagGroupName
                    - tagOId
                    - tagName
            required:
              - oId
              - createdAt
              - updatedAt
              - name
              - internalName
              - description
              - unrecognized
              - rejected
        references:
          type: array
          nullable: true
          items:
            type: object
            properties:
              oId:
                type: string
                minLength: 1
                description: The ID of the reference
                example: r_1234
              name:
                type: string
                nullable: true
                description: The external facing name of the reference
                example: Large filesharing service
              internalName:
                type: string
                nullable: true
                description: The internal name of the reference
                example: Dropbox
              createdAt:
                type: string
                format: date-time
                description: The date and time the reference was created
                example: '2021-01-01'
              updatedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the reference was updated
                example: '2021-01-01'
              deletedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the reference was deleted
                example: '2021-01-01'
              archivedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the reference was archived
                example: '2021-01-01'
              description:
                type: string
                nullable: true
                description: The description of the reference
                example: Description of the reference
              active:
                type: boolean
                default: true
                description: Whether the reference is active and can be used
                example: true
              data:
                $ref: '#/components/schemas/ReferenceData'
              user:
                type: object
                properties:
                  oId:
                    type: string
                    nullable: true
                    description: The ID of the user
                    example: u_1234
                  firstName:
                    type: string
                    nullable: true
                    description: The first name of the user who created the reference
                    example: John
                  lastName:
                    type: string
                    nullable: true
                    description: The last name of the user who created the reference
                    example: Doe
              workspace:
                type: object
                properties:
                  oId:
                    type: string
                    nullable: true
                    description: The ID of the workspace
                    example: w_1234
              unrecognized:
                type: boolean
                nullable: true
                description: Whether the reference is unrecognized
                example: false
            required:
              - oId
              - createdAt
              - data
              - user
              - workspace
        workspace:
          type: object
          properties:
            oId:
              type: string
              minLength: 1
            name:
              type: string
            isDefault:
              type: boolean
              nullable: true
            isOnboarded:
              type: boolean
            visibility:
              type: string
              nullable: true
              enum:
                - public
                - private
                - null
            description:
              type: string
              nullable: true
            domain:
              type: string
              nullable: true
            logo:
              type: string
              nullable: true
            fiscalYearStartMonth:
              type: integer
              minimum: 1
              maximum: 12
              default: 1
            timezone:
              type: string
              nullable: true
            active:
              type: boolean
              default: true
            createdAt:
              type: string
              nullable: true
              format: date-time
            updatedAt:
              type: string
              nullable: true
              format: date-time
            createdBy:
              type: object
              properties:
                oId:
                  type: string
              required:
                - oId
            organization:
              type: object
              nullable: true
              properties:
                oId:
                  type: string
                  nullable: true
                name:
                  type: string
                  nullable: true
                domain:
                  type: string
                  nullable: true
                slug:
                  type: string
                  nullable: true
                logo:
                  type: string
                  nullable: true
          required:
            - oId
            - name
            - isOnboarded
            - createdBy
        workspaceCompany:
          type: object
          properties:
            oId:
              type: string
            createdAt:
              type: string
              nullable: true
              format: date-time
            updatedAt:
              type: string
              nullable: true
              format: date-time
            data:
              type: object
              nullable: true
              properties:
                whatWeDo:
                  type: string
                  nullable: true
                whyWeExist:
                  type: array
                  items:
                    type: string
                howWePositionOurselves:
                  type: array
                  items:
                    type: string
                whoWeHelp:
                  type: array
                  items:
                    type: string
                whatMakesUsUnique:
                  type: array
                  items:
                    type: string
                businessModel:
                  type: array
                  items:
                    type: string
                marketDynamics:
                  type: array
                  items:
                    type: string
                whyCustomersBuy:
                  type: array
                  nullable: true
                  items:
                    type: string
                whyCustomersCare:
                  type: array
                  nullable: true
                  items:
                    type: string
                customFields:
                  $ref: '#/components/schemas/CustomDataFields'
                customMarketFields:
                  $ref: '#/components/schemas/CustomDataFields'
              required:
                - whyWeExist
                - howWePositionOurselves
                - whoWeHelp
                - whatMakesUsUnique
                - businessModel
                - marketDynamics
            description:
              type: string
            name:
              type: string
            url:
              type: string
            internalName:
              type: string
              nullable: true
            user:
              type: object
              nullable: true
              properties:
                oId:
                  type: string
              required:
                - oId
            workspace:
              type: object
              nullable: true
              properties:
                oId:
                  type: string
                  nullable: true
            intelOverride:
              type: object
              nullable: true
              properties:
                enabled:
                  type: boolean
                cadence:
                  type: string
                  enum:
                    - weekly
                    - biweekly
                    - monthly
                guidance:
                  type: string
                  nullable: true
          required:
            - oId
            - createdAt
            - updatedAt
            - description
            - name
            - url
        playbookSuggestions:
          type: object
          nullable: true
          properties:
            solution:
              type: array
              nullable: true
              items:
                type: string
            sector:
              type: array
              nullable: true
              items:
                type: string
            practitioner:
              type: array
              nullable: true
              items:
                type: string
            milestone:
              type: array
              nullable: true
              items:
                type: string
      required:
        - workspace
        - workspaceCompany
    Product:
      type: object
      properties:
        oId:
          type: string
          minLength: 1
          description: The ID of the product
          example: p_1234
        createdAt:
          type: string
          format: date-time
          description: The date and time the product was created
          example: '2021-01-01'
        updatedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the product was updated
          example: '2021-01-01'
        archivedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the product was archived
          example: '2021-01-01'
        deletedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the product was deleted
          example: '2021-01-01'
        name:
          type: string
          nullable: true
          description: The external facing name of the product
          example: Product Name
        internalName:
          type: string
          nullable: true
          description: The internal name of the product
          example: Product Internal Name
        description:
          type: string
          nullable: true
          description: The description of the product
          example: Product Description
        primaryUrl:
          type: string
          nullable: true
          description: The primary URL of the product
          example: https://www.product.com
        active:
          type: boolean
          default: true
          description: Whether the product is active and can be used
          example: true
        data:
          $ref: '#/components/schemas/ProductData'
        qualifyingQuestions:
          type: array
          nullable: true
          items:
            type: object
            properties:
              question:
                type: string
                description: The question to ask to qualify the entity
              rationale:
                type: string
                description: The rationale for the question as to why it helps qualify
              fitType:
                type: string
                enum:
                  - GOOD
                  - BAD
                description: The fit type of the question
                example: GOOD
              weight:
                type: string
                enum:
                  - LOW
                  - MEDIUM
                  - HIGH
                  - INSTANT_QUALIFIER
                  - INSTANT_DISQUALIFIER
                description: The weight of the question
                example: MEDIUM
              archivedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the question was archived
            required:
              - question
              - rationale
              - fitType
              - weight
        user:
          type: object
          properties:
            oId:
              type: string
              nullable: true
              description: The ID of the user who created the product
              example: u_1234
            firstName:
              type: string
              nullable: true
              description: The first name of the user who created the product
              example: John
            lastName:
              type: string
              nullable: true
              description: The last name of the user who created the product
              example: Doe
        workspace:
          type: object
          properties:
            oId:
              type: string
              nullable: true
              description: The ID of the workspace that the product belongs to
              example: wa_1234
      required:
        - oId
        - createdAt
        - data
        - user
        - workspace
    Service:
      type: object
      properties:
        oId:
          type: string
          minLength: 1
          description: The ID of the service
          example: p_1234
        createdAt:
          type: string
          format: date-time
          description: The date and time the service was created
          example: '2021-01-01'
        updatedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the service was updated
          example: '2021-01-01'
        archivedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the service was archived
          example: '2021-01-01'
        deletedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the service was deleted
          example: '2021-01-01'
        name:
          type: string
          nullable: true
          description: The external facing name of the service
          example: Service Name
        internalName:
          type: string
          nullable: true
          description: The internal name of the service
          example: Service Internal Name
        description:
          type: string
          nullable: true
          description: The description of the service
          example: Service Description
        primaryUrl:
          type: string
          nullable: true
          description: The primary URL of the service
          example: https://www.service.com
        active:
          type: boolean
          default: true
          description: Whether the service is active and can be used
          example: true
        data:
          $ref: '#/components/schemas/ServiceData'
        qualifyingQuestions:
          type: array
          nullable: true
          items:
            type: object
            properties:
              question:
                type: string
                description: The question to ask to qualify the entity
              rationale:
                type: string
                description: The rationale for the question as to why it helps qualify
              fitType:
                type: string
                enum:
                  - GOOD
                  - BAD
                description: The fit type of the question
                example: GOOD
              weight:
                type: string
                enum:
                  - LOW
                  - MEDIUM
                  - HIGH
                  - INSTANT_QUALIFIER
                  - INSTANT_DISQUALIFIER
                description: The weight of the question
                example: MEDIUM
              archivedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the question was archived
            required:
              - question
              - rationale
              - fitType
              - weight
        user:
          type: object
          properties:
            oId:
              type: string
              nullable: true
              description: The ID of the user who created the service
              example: u_1234
            firstName:
              type: string
              nullable: true
              description: The first name of the user who created the service
              example: John
            lastName:
              type: string
              nullable: true
              description: The last name of the user who created the service
              example: Doe
        workspace:
          type: object
          properties:
            oId:
              type: string
              nullable: true
              description: The ID of the workspace that the service belongs to
              example: wa_1234
      required:
        - oId
        - createdAt
        - data
        - user
        - workspace
    PersonaData:
      type: object
      properties:
        internalName:
          type: string
          nullable: true
          description: The internal name of the persona
        primaryResponsibilities:
          type: array
          items:
            type: string
          default: []
          description: The primary responsibilities of the persona
          example:
            - Responsibility 1
            - Responsibility 2
        painPoints:
          type: array
          items:
            type: string
          default: []
          description: The pain points of the persona
          example:
            - Pain Point 1
            - Pain Point 2
        keyConcerns:
          type: array
          items:
            type: string
          default: []
          description: The key concerns of the persona
          example:
            - Concern 1
            - Concern 2
        keyObjectives:
          type: array
          items:
            type: string
          default: []
          description: The key objectives of the persona
          example:
            - Objective 1
            - Objective 2
        commonJobTitles:
          type: array
          items:
            type: string
          default: []
          description: The common job titles of the persona
          example:
            - Job Title 1
            - Job Title 2
        whyTheyMatterToUs:
          type: array
          items:
            type: string
          default: []
          description: The reasons why the persona matters to us
          example:
            - Reason 1
            - Reason 2
        whyWeMatterToThem:
          type: array
          items:
            type: string
          default: []
          description: The reasons why we matter to this type of persona
          example:
            - Reason 1
            - Reason 2
        buyingRole:
          type: array
          items:
            type: string
          default: []
          description: >-
            The function this persona typically plays in a purchase decision
            (e.g. economic buyer, champion, technical evaluator, end user,
            influencer, blocker), along with their level of sophistication on
            the problem space (newcomer, experienced, expert).
          example:
            - Economic buyer with budget authority over the GTM stack.
            - Experienced operator who has evaluated similar tooling before.
        customFields:
          $ref: '#/components/schemas/CustomDataFields'
        additionalProperties:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: number
              - type: boolean
    UseCaseData:
      type: object
      nullable: true
      properties:
        summary:
          type: string
          nullable: true
          description: Summary
        scenarios:
          type: array
          nullable: true
          items:
            type: string
          description: Scenarios
        desiredOutcomes:
          type: array
          nullable: true
          items:
            type: string
          description: Desired Outcomes
        businessDrivers:
          type: array
          nullable: true
          items:
            type: string
          description: Business Drivers
        strategicImpact:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            The strategic, business-level benefit realized when this use case is
            solved well: quantifiable impact on revenue, cost, risk, and/or
            efficiency, and the broader value to the company.
        customFields:
          $ref: '#/components/schemas/CustomDataFields'
        additionalProperties:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: number
              - type: boolean
    CustomDataFields:
      type: array
      items:
        $ref: '#/components/schemas/CustomDataFieldItem'
    ReferenceData:
      type: object
      nullable: true
      properties:
        businessModel:
          type: array
          nullable: true
          items:
            type: string
        theirChallenge:
          type: array
          nullable: true
          items:
            type: string
        howTheyUseUs:
          type: array
          nullable: true
          items:
            type: string
        whyTheyChoseUs:
          type: array
          nullable: true
          items:
            type: string
        impactTheySaw:
          type: array
          nullable: true
          items:
            type: string
        stakeholdersInvolved:
          type: array
          nullable: true
          items:
            type: string
        customFields:
          $ref: '#/components/schemas/CustomDataFields'
        additionalProperties:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: number
              - type: boolean
    ProductData:
      type: object
      properties:
        type:
          type: string
          enum:
            - PRODUCT
            - SERVICE
            - SOLUTION
          default: PRODUCT
        internalName:
          type: string
          nullable: true
          description: The internal name of the product
        summary:
          type: string
          nullable: true
        distinctCapabilities:
          type: array
          items:
            type: string
          default: []
          description: >-
            What the product does at the functional level, and what it enables
            customers to accomplish. Outcome-oriented, not mechanism-oriented
            (mechanisms live in keyFeatures).
          example:
            - Capability 1
            - Capability 2
        keyFeatures:
          type: array
          items:
            type: string
          default: []
          description: >-
            The specific, named, often branded components of the product worth
            highlighting. Concrete and tangible; these help frame the 'how'
            behind the capabilities.
          example:
            - Feature 1
            - Feature 2
        differentiatedValue:
          type: array
          items:
            type: string
          default: []
          description: The differentiated value of the product
          example:
            - Differentiated Value 1
            - Differentiated Value 2
        statusQuo:
          type: array
          items:
            type: string
          default: []
          description: The status quo of the product
          example:
            - Status Quo 1
            - Status Quo 2
        challengesAddressed:
          type: array
          items:
            type: string
          default: []
          description: The challenges addressed by the offering
          example:
            - Challenge 1
            - Challenge 2
        customerBenefits:
          type: array
          items:
            type: string
          default: []
          description: The customer benefits of the offering
          example:
            - Benefit 1
            - Benefit 2
        customFields:
          $ref: '#/components/schemas/CustomDataFields'
        additionalProperties:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: number
              - type: boolean
    ServiceData:
      type: object
      properties:
        type:
          type: string
          enum:
            - PRODUCT
            - SERVICE
            - SOLUTION
          default: SERVICE
        summary:
          type: string
          nullable: true
        deliverables:
          type: array
          items:
            type: string
          default: []
          description: Key deliverables of the service
          example:
            - Deliverable 1
            - Deliverable 2
        competencies:
          type: array
          items:
            type: string
          default: []
          description: Key competencies required for the service
          example:
            - Competency 1
            - Competency 2
        comparativeAdvantage:
          type: array
          items:
            type: string
          default: []
          description: The comparative advantage of the service
          example:
            - Advantage 1
            - Advantage 2
        likelyAlternative:
          type: array
          items:
            type: string
          default: []
          description: The likely alternative to the service
          example:
            - Alternative 1
            - Alternative 2
        challengesAddressed:
          type: array
          items:
            type: string
          default: []
          description: The challenges addressed by the offering
          example:
            - Challenge 1
            - Challenge 2
        customerBenefits:
          type: array
          items:
            type: string
          default: []
          description: The customer benefits of the offering
          example:
            - Benefit 1
            - Benefit 2
        customFields:
          $ref: '#/components/schemas/CustomDataFields'
        additionalProperties:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: number
              - type: boolean
    CustomDataFieldItem:
      type: object
      properties:
        title:
          type: string
        value:
          type: array
          items:
            type: string
      required:
        - title
        - value
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````