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

# Save workflow as template

> Create a new template from an existing workflow's configuration



## OpenAPI

````yaml post /v4/templates/from-workflow
openapi: 3.0.3
info:
  title: Kadoa API
  version: 3.0.0
  contact:
    name: Support
    email: support@kadoa.com
servers:
  - url: https://api.kadoa.com
security: []
paths:
  /v4/templates/from-workflow:
    post:
      tags:
        - Templates
      summary: Save workflow as template
      description: >-
        Extract a workflow's prompt, schema, validation rules, and notifications
        into a new template or as a new version of an existing template. The
        source workflow is not modified (v1: no auto-link).
      parameters: []
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SaveFromWorkflowBody'
      responses:
        '201':
          description: '201'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SaveFromWorkflowResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: boolean
                    description: Indicates an error occurred
                  message:
                    type: string
                    description: Error message
                  details:
                    nullable: true
                    description: Additional error details (e.g., validation errors)
                required:
                  - error
                  - message
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: boolean
                    description: Indicates an error occurred
                  message:
                    type: string
                    description: Error message
                  details:
                    nullable: true
                    description: Additional error details (e.g., validation errors)
                required:
                  - error
                  - message
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: boolean
                    description: Indicates an error occurred
                  message:
                    type: string
                    description: Error message
                  details:
                    nullable: true
                    description: Additional error details (e.g., validation errors)
                required:
                  - error
                  - message
        '409':
          description: '409'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: boolean
                    description: Indicates an error occurred
                  message:
                    type: string
                    description: Error message
                  details:
                    nullable: true
                    description: Additional error details (e.g., validation errors)
                required:
                  - error
                  - message
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: boolean
                    description: Indicates an error occurred
                  message:
                    type: string
                    description: Error message
                  details:
                    nullable: true
                    description: Additional error details (e.g., validation errors)
                required:
                  - error
                  - message
      security:
        - ApiKeyAuth: []
components:
  schemas:
    SaveFromWorkflowBody:
      type: object
      properties:
        workflowId:
          type: string
          format: uuid
          description: Source workflow ID to extract config from
        name:
          type: string
          minLength: 1
          maxLength: 255
          description: Name for the new template (required if templateId is not set)
        description:
          type: string
          maxLength: 2000
          description: Description for the new template
        templateId:
          type: string
          format: uuid
          description: >-
            Existing template ID to add a new version to (mutually exclusive
            with name)
        includeParts:
          type: array
          items:
            type: string
            enum:
              - prompt
              - schema
              - schemaValidationRules
              - notifications
              - frequency
          minItems: 1
          description: >-
            Which workflow parts to include in the template. If omitted, all
            parts are included.
      required:
        - workflowId
      title: SaveFromWorkflowBody
      description: >-
        Request body for saving a workflow's config as a template (new or
        existing)
    SaveFromWorkflowResponse:
      type: object
      properties:
        error:
          type: boolean
          enum:
            - false
          description: Error flag (always false on success)
        success:
          type: boolean
          enum:
            - true
          description: Success flag
        data:
          type: object
          properties:
            templateId:
              type: string
              format: uuid
              description: Template ID (new or existing)
            version:
              type: number
              description: Published version number
            isNew:
              type: boolean
              description: Whether a new template was created
          required:
            - templateId
            - version
            - isNew
      required:
        - error
        - success
        - data
      title: SaveFromWorkflowResponse
      description: Response for saving a workflow as a template
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication

````