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

# Save assistant and its managed workflow



## OpenAPI

````yaml https://api.sapt.ai/openapi.json post /projects/{projectId}/conversation-assistants
openapi: 3.1.0
info:
  title: Sapt Platform API
  version: 1.0.0
  description: >-
    API for Sapt platform - project management, authentication, and email
    services
servers:
  - url: https://api.sapt.ai
    description: Production
  - url: http://localhost:8787
    description: Local development
security: []
tags:
  - name: Accounts
    description: >-
      The social accounts connected to a project. Start here — the `id` of an
      account is the `socialAccountId` that every posting, scheduling and
      analytics call takes.
  - name: Actions
  - name: Ads
  - name: Agents
  - name: Analytics
    description: >-
      Account- and post-level organic performance for connected Instagram and
      Facebook accounts.
  - name: Assets
  - name: Auth
  - name: CMS
  - name: CRM
  - name: Calendar
  - name: Comments
    description: >-
      Read, reply to, hide and delete comments on published Instagram and
      Facebook posts.
  - name: Content Calendar
    description: >-
      Create, schedule, update and publish organic posts, and stage the media
      they carry. Publishing a post whose status is `failed` retries it.
  - name: Contracts
  - name: Conversation assistants
  - name: Conversions
    description: >-
      Meta server-side Conversions API (CAPI): discover pixels, connect a pixel
      + CAPI token, and send deduped server-side conversions.
  - name: Dashboard Sidebar
  - name: Emails
  - name: Engagement
    description: >-
      Act as the Page or account on published posts: comment, like, unlike, and
      delete a published post.
  - name: Geo
  - name: Google Ads
  - name: Google Analytics
  - name: Google Business
  - name: Integrations
    description: >-
      Connect third-party providers (Meta, Gmail, Google Business Profile, …).
      List providers, mint OAuth connect links, and poll connection status.
  - name: Invitations
  - name: Memory
  - name: OAuth Clients
  - name: Project Roles
  - name: Project Templates
  - name: Projects
  - name: Schedules
  - name: Service Accounts
  - name: Socials
    description: >-
      Organic social: the connected accounts, the content calendar, media
      staging, publishing, comments and engagement across Instagram, Facebook,
      TikTok, YouTube and Google Business Profile.
  - name: Team
  - name: Users
  - name: Web Analytics
  - name: Workflows
paths:
  /projects/{projectId}/conversation-assistants:
    post:
      tags:
        - Conversation assistants
      summary: Save assistant and its managed workflow
      operationId: saveConversationAssistant
      parameters:
        - schema:
            type: string
            format: uuid
          required: true
          name: projectId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                expectedRevision:
                  type: string
                  format: uuid
                configuration:
                  type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      maxLength: 120
                    mode:
                      type: string
                      enum:
                        - 'off'
                        - review
                        - automatic
                    goal:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - appointment_booking
                            calendarPresetId:
                              type: string
                              format: uuid
                          required:
                            - kind
                            - calendarPresetId
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - sample_conversion
                            program:
                              type: string
                              enum:
                                - atucun_wholesale
                          required:
                            - kind
                            - program
                    endpoints:
                      type: array
                      items:
                        oneOf:
                          - type: object
                            properties:
                              channel:
                                type: string
                                enum:
                                  - email
                              integrationAccountId:
                                type: string
                                format: uuid
                            required:
                              - channel
                              - integrationAccountId
                          - type: object
                            properties:
                              channel:
                                type: string
                                enum:
                                  - sms
                              phoneNumber:
                                type: string
                                pattern: ^\+[1-9]\d{7,14}$
                            required:
                              - channel
                              - phoneNumber
                      minItems: 1
                      maxItems: 20
                    instructions:
                      type: string
                      minLength: 1
                      maxLength: 12000
                    memoryKeys:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 120
                      maxItems: 20
                    automaticCapabilities:
                      type: array
                      items:
                        type: string
                        enum:
                          - reply
                          - offer_slots
                          - book_confirmed_slot
                          - offer_sample_link
                    reviewExceptions:
                      type: string
                      maxLength: 4000
                    maxRepliesPerDay:
                      type: integer
                      minimum: 1
                      maximum: 30
                    maxOutputTokens:
                      type: integer
                      minimum: 128
                      maximum: 2048
                    handoffInstructions:
                      type: string
                      maxLength: 2000
                  required:
                    - name
                    - mode
                    - goal
                    - endpoints
                    - instructions
                    - memoryKeys
                    - automaticCapabilities
                    - reviewExceptions
                    - maxRepliesPerDay
                    - maxOutputTokens
                    - handoffInstructions
              required:
                - configuration
      responses:
        '200':
          description: Saved configuration
          content:
            application/json:
              schema:
                type: object
                properties:
                  assistant:
                    type: object
                    properties:
                      name:
                        type: string
                        minLength: 1
                        maxLength: 120
                      mode:
                        type: string
                        enum:
                          - 'off'
                          - review
                          - automatic
                      goal:
                        oneOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - appointment_booking
                              calendarPresetId:
                                type: string
                                format: uuid
                            required:
                              - kind
                              - calendarPresetId
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - sample_conversion
                              program:
                                type: string
                                enum:
                                  - atucun_wholesale
                            required:
                              - kind
                              - program
                      endpoints:
                        type: array
                        items:
                          oneOf:
                            - type: object
                              properties:
                                channel:
                                  type: string
                                  enum:
                                    - email
                                integrationAccountId:
                                  type: string
                                  format: uuid
                              required:
                                - channel
                                - integrationAccountId
                            - type: object
                              properties:
                                channel:
                                  type: string
                                  enum:
                                    - sms
                                phoneNumber:
                                  type: string
                                  pattern: ^\+[1-9]\d{7,14}$
                              required:
                                - channel
                                - phoneNumber
                        minItems: 1
                        maxItems: 20
                      instructions:
                        type: string
                        minLength: 1
                        maxLength: 12000
                      memoryKeys:
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 120
                        maxItems: 20
                      automaticCapabilities:
                        type: array
                        items:
                          type: string
                          enum:
                            - reply
                            - offer_slots
                            - book_confirmed_slot
                            - offer_sample_link
                      reviewExceptions:
                        type: string
                        maxLength: 4000
                      maxRepliesPerDay:
                        type: integer
                        minimum: 1
                        maximum: 30
                      maxOutputTokens:
                        type: integer
                        minimum: 128
                        maximum: 2048
                      handoffInstructions:
                        type: string
                        maxLength: 2000
                      id:
                        type: string
                        format: uuid
                      revision:
                        type: string
                        format: uuid
                      version:
                        type: number
                        enum:
                          - 1
                      enabledAt:
                        type:
                          - string
                          - 'null'
                      actor:
                        type: object
                        properties:
                          actorType:
                            type: string
                            enum:
                              - user
                              - service_account
                          actorId:
                            type: string
                        required:
                          - actorType
                          - actorId
                    required:
                      - name
                      - mode
                      - goal
                      - endpoints
                      - instructions
                      - memoryKeys
                      - automaticCapabilities
                      - reviewExceptions
                      - maxRepliesPerDay
                      - maxOutputTokens
                      - handoffInstructions
                      - id
                      - revision
                      - version
                      - enabledAt
                      - actor
                  workflow:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      isActive:
                        type: boolean
                    required:
                      - id
                      - isActive
                required:
                  - assistant
                  - workflow
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code for programmatic handling
                required:
                  - message
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code for programmatic handling
                required:
                  - message
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code for programmatic handling
                required:
                  - message
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code for programmatic handling
                required:
                  - message
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT token obtained from /api/auth/token endpoint. Token is verified
        using JWKS and must include a valid user identifier.

````