Zoca Chatbot API

The chatbot API from Zoca — 82 operation(s) for chatbot.

Operations 92

GET /chatbot/calls/{callId} Get call details by call ID #
GET /chatbot/calls/{callId}/regenerate-summary Regenerate call summary by call ID #
GET /chatbot/sp-context/{entityId} Get service provider context for an entity #
POST /chatbot/retell/phone/import Import a phone number to Retell #
PUT /chatbot/retell/phone/{phoneNumber} Update a phone number configuration #
POST /chatbot/phone/purchase Purchase a new phone number #
POST /chatbot/phone/verify-virtual-number Verify that a virtual number is properly configured #
GET /chatbot/test/followup-status/{clientId} Test endpoint to check followup status for a client #
POST /chatbot/conversation/state/{clientId} Get conversation state by client ID #
POST /chatbot/card/on-file Create card on file #
POST /chatbot/card/on-file/link Get card on file link #
POST /chatbot/feedback Create a new feedback record #
GET /chatbot/feedback Get all feedback records for an entity with pagination #
PUT /chatbot/feedback/{id} Update an existing feedback record #
DELETE /chatbot/feedback/{id} Soft delete a feedback record #
GET /chatbot/feedback/{id} Get a feedback record by ID #
GET /chatbot/human-handovers/{clientId} Get all human handover records for a client #
POST /tasks/api/v1/chatbot/callhippo-sms-webhook Handle incoming SMS messages from CallHippo #
POST /tasks/api/v1/chatbot/continue-conversation Continue a conversation with the chatbot for testing #
POST /tasks/api/v1/chatbot/soft-delete-messages Soft delete messages from a conversation #
POST /tasks/api/v1/chatbot/start-conversation Start a new conversation with a customer #
POST /tasks/api/v1/chatbot/start-conversation-production Start a new conversation with a customer (Production - No Restrictions) #
POST /tasks/api/v1/chatbot/process-followups Process due follow-ups #
POST /tasks/api/v1/chatbot/deactivate-handover/{clientId} Deactivate human handover for a client #
POST /tasks/api/v1/chatbot/activate-handover/{clientId} Activate human handover for a client #
GET /tasks/api/v1/chatbot/followups/due Get all due followups #
GET /tasks/api/v1/chatbot/followups/{clientId} Get all followups for a client #
POST /tasks/api/v1/chatbot/{clientId}/next-followup Calculate next follow-up for a client #
POST /tasks/api/v1/chatbot/event-webhook Handle various application events #
GET /tasks/api/v1/chatbot/sp-context/{locationEntityId} Test the getSpContext function with a specific location entity ID #
POST /tasks/api/v1/chatbot/booking-requests/update Update booking requests with available slots #
GET /tasks/api/v1/chatbot/booking-requests/pending Get all pending booking requests #
POST /tasks/api/v1/chatbot/booking-requests/test-booking-info Test the getBookingInfo function with direct parameters #
POST /tasks/api/v1/chatbot/booking-info Get available booking slots for a specific service and date #
GET /tasks/api/v1/chatbot/entity-record-l2b/{entityId} Get an entity record for L2B bot configuration #
GET /tasks/api/v1/chatbot/enabled-functions/{entityId} Get enabled chatbot functions for an entity #
POST /tasks/api/v1/chatbot/entity-record-l2b Create an entity record for L2B bot configuration #
POST /tasks/api/v1/chatbot/entity-record-l2b/update/{entityId} Update an entity record for L2B bot configuration #
POST /tasks/api/v1/chatbot/business-info/{entityId} Save business information for L2B entity #
GET /tasks/api/v1/chatbot/business-info/{entityId} Get business information and onboarding data for entity #
GET /tasks/api/v1/chatbot/l2b/non-configured-entities Get entities not configured for L2B or with L2B disabled #
GET /tasks/api/v1/chatbot/l2b/all-phone-numbers Get all L2B entity phone numbers #
GET /tasks/api/v1/chatbot/l2b/entity-phone-numbers/{entityId} Get all L2B entity phone numbers #
GET /tasks/api/v1/chatbot/conversation-partners Get recent conversation partners #
POST /tasks/api/v1/chatbot/mark-read Mark conversation as read for a client #
GET /tasks/api/v1/chatbot/conversation-history Get conversation history #
GET /tasks/api/v1/chatbot/l2b/leads/{entityId} Get L2B leads for an entity with their most recent message #
GET /tasks/api/v1/chatbot/l2b/conversations/{phoneNumber}/{countryCode}/{entityId} Get L2B conversations for a phone number #
GET /tasks/api/v1/chatbot/l2b-entity-phone-numbers/{entityId} Get virtual phone numbers for an entity #
POST /tasks/api/v1/chatbot/calls/initiate Initiate a call to a customer #
GET /tasks/api/v1/chatbot/calls/client/{clientId} Get call history for a client #
POST /tasks/api/v1/chatbot/webhooks/incoming-call Handle incoming call webhook and events from Retell #
GET /tasks/api/v1/chatbot/calls/context Get call context for incoming calls #
GET /tasks/api/v1/chatbot/calls/{callId} Retrieve call details from Retell #
POST /tasks/api/v1/chatbot/webhooks/call-events Handle all call events webhook from Retell (unified endpoint) #
POST /tasks/api/v1/chatbot/test/make-call Make a test outbound call #
POST /tasks/api/v1/chatbot/test/incoming-call Handle test incoming call setup #
GET /tasks/api/v1/chatbot/human-handover/{clientId} Check if human handover is active for a client #
GET /tasks/api/v1/chatbot/call-bridge-number Get the call brige number to which calls will be forwarded if EC calls to virtual number. #
GET /tasks/api/v1/chatbot/message-history/{clientId} Get formatted message history for a client #
GET /tasks/api/v1/chatbot/l2b/active-businesses Get all businesses with active L2B bot #
GET /tasks/api/v1/chatbot/entities/{entityId}/preferences Get all chatbot-related preferences for an entity #
GET /tasks/api/v1/chatbot/l2b/business/{entityId}/clients Get clients for a business with conversation and handover status #
GET /tasks/api/v1/chatbot/business/{entityId}/webhook-data Get formatted webhook data for a business entity #
GET /tasks/api/v1/chatbot/l2b/conversations/{clientId} Get conversation history for a client #
POST /tasks/api/v1/chatbot/webhook-data Upsert webhook data for a phone number #
GET /tasks/api/v1/chatbot/test/entity/{entityId}/phones Get phone numbers for an entity (testing) #
POST /tasks/api/v1/chatbot/test/entity/{entityId}/phones Add phone number to entity (testing) #
POST /tasks/api/v1/chatbot/bookings Create a new booking #
GET /tasks/api/v1/chatbot/prompt-variables Get prompt variables with optional full prompt #
GET /tasks/api/v1/chatbot/original-variables Get original variables for non-test entities #
GET /tasks/api/v1/chatbot/internal/prompt-with-fallback Get prompt with multi-tier fallback mechanism #
GET /tasks/api/v1/chatbot/rules/entity/{entityId} List all rules for an entity #
POST /tasks/api/v1/chatbot/rules Create a new ops team rule #
GET /tasks/api/v1/chatbot/rules/{ruleId} Get a rule by ID #
PUT /tasks/api/v1/chatbot/rules/{ruleId} Update a rule #
DELETE /tasks/api/v1/chatbot/rules/{ruleId} Delete a rule #
GET /tasks/api/v1/chatbot/test/category-grouping/{locationEntityId} Test the category grouping function with a specific location entity ID #
POST /tasks/api/v1/chatbot/test/validate-ccof #
POST /tasks/api/v1/chatbot/temp/square/bookings #
POST /tasks/api/v1/chatbot/square/bookings/no-card-validation #
POST /tasks/api/v1/chatbot/square/bookings/accepted #
POST /tasks/api/v1/chatbot/test/schedule-response-followup #
GET /tasks/api/v1/chatbot/functions Get all available chatbot functions #
GET /tasks/api/v1/chatbot/functions/entity/{entityId} Get enabled chatbot functions for an entity #
POST /tasks/api/v1/chatbot/message-templates Create a new message template #
GET /tasks/api/v1/chatbot/message-templates Get all message templates #
GET /tasks/api/v1/chatbot/message-templates/{id} Get a message template by ID #
PUT /tasks/api/v1/chatbot/message-templates/{id} Update a message template #
DELETE /tasks/api/v1/chatbot/message-templates/{id} Delete a message template #
PUT /tasks/api/v1/chatbot/entity/{entityId}/metadata Update entity metadata #
POST /tasks/api/v1/chatbot/metadata/bulk-update Bulk update entity metadata for L2B entities #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoca-chatbot-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoca-chatbot-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zoca Chatbot API
  contact: {}
  x-refined-note:
  - x-apievangelist-note differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged chatbot across 2 of this provider''s published API definitions: zoca-platform-openapi.yml, zoca-tasks-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.zoca.ai
  description: Production
- url: https://tasks.zoca.ai
  description: Production
tags:
- name: chatbot
paths:
  /chatbot/calls/{callId}:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Call details retrieved successfully
      summary: Get call details by call ID
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/calls/{callId}/regenerate-summary:
    get:
      operationId: t_value
      parameters:
      - name: callId
        required: true
        in: path
        description: Unique identifier for the call
        schema:
          type: string
      responses:
        '200':
          description: Call summary retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: string
                    description: The call summary or "No summary available"
                  regenerateSummary:
                    type: boolean
                    description: Indicates if the summary was newly generated
        '400':
          description: Bad request - CallId is required
        '404':
          description: Call record not found
      summary: Regenerate call summary by call ID
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/sp-context/{entityId}:
    get:
      operationId: t_value
      parameters:
      - name: entityId
        required: true
        in: path
        description: Entity ID to retrieve context for
        schema:
          type: string
      responses:
        '200':
          description: Service provider context retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: Get service provider context for an entity
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/retell/phone/import:
    post:
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e'
      responses:
        '201':
          description: Phone number successfully imported
        '400':
          description: Invalid request payload
      summary: Import a phone number to Retell
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/retell/phone/{phoneNumber}:
    put:
      operationId: t_value
      parameters:
      - name: phoneNumber
        required: true
        in: path
        description: Phone number to update
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e'
      responses:
        '200':
          description: Phone number configuration updated successfully
        '400':
          description: Invalid request payload
        '404':
          description: Phone number not found
      summary: Update a phone number configuration
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/phone/purchase:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Purchase a new phone number
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/phone/verify-virtual-number:
    post:
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e'
      responses:
        '200':
          description: Virtual number verification completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '400':
          description: Invalid request payload
      summary: Verify that a virtual number is properly configured
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/test/followup-status/{clientId}:
    get:
      operationId: t_value
      parameters:
      - name: clientId
        required: true
        in: path
        description: Client ID to check followup status for
        schema:
          type: string
      responses:
        '200':
          description: Followup status retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  clientId:
                    type: string
                  hasProcessedFollowups:
                    type: boolean
                  hasConsecutiveBotMessages:
                    type: boolean
                  shouldSkipFollowup:
                    type: boolean
      summary: Test endpoint to check followup status for a client
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/conversation/state/{clientId}:
    post:
      operationId: t_value
      parameters:
      - name: clientId
        required: true
        in: path
        description: Client ID to retrieve conversation state
        schema:
          type: string
      responses:
        '201':
          description: ''
      summary: Get conversation state by client ID
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/card/on-file:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Create card on file
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/card/on-file/link:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Get card on file link
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/feedback:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: Feedback created successfully
        '400':
          description: Invalid request payload or missing entityId
      summary: Create a new feedback record
      tags:
      - chatbot
    get:
      operationId: t_value
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of items per page
        schema:
          type: number
      - name: page
        required: false
        in: query
        description: Page number (1-indexed)
        schema:
          type: number
      - name: entityId
        required: true
        in: query
        description: Entity ID to retrieve feedback for
        schema:
          type: string
      responses:
        '200':
          description: Feedback list retrieved successfully
        '400':
          description: entityId is required
      summary: Get all feedback records for an entity with pagination
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/feedback/{id}:
    put:
      operationId: t_value
      parameters:
      - name: id
        required: true
        in: path
        description: Feedback record ID to update
        schema:
          type: string
      responses:
        '200':
          description: Feedback updated successfully
        '400':
          description: Invalid request payload or missing entityId
        '404':
          description: Feedback not found or not accessible
      summary: Update an existing feedback record
      tags:
      - chatbot
    delete:
      operationId: t_value
      parameters:
      - name: id
        required: true
        in: path
        description: Feedback record ID to delete
        schema:
          type: string
      responses:
        '200':
          description: Feedback deleted successfully
        '404':
          description: Feedback not found or not accessible
      summary: Soft delete a feedback record
      tags:
      - chatbot
    get:
      operationId: t_value
      parameters:
      - name: id
        required: true
        in: path
        description: Feedback record ID to retrieve
        schema:
          type: string
      responses:
        '200':
          description: Feedback retrieved successfully
        '404':
          description: Feedback not found
      summary: Get a feedback record by ID
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/human-handovers/{clientId}:
    get:
      operationId: t_value
      parameters:
      - name: clientId
        required: true
        in: path
        description: Client ID to retrieve human handovers for
        schema:
          type: string
      responses:
        '200':
          description: Human handovers retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    clientId:
                      type: string
                      description: Client UUID
                    isActive:
                      type: boolean
                      description: Whether handover is currently active
                    createdAt:
                      type: string
                      description: Creation timestamp
                    reason:
                      type: string
                      description: Reason for handover
                    deactivatedAt:
                      type: string
                      description: Deactivation timestamp
                    deactivationReason:
                      type: string
                      description: Reason for deactivation
                    deactivateAt:
                      type: string
                      description: Scheduled deactivation timestamp
        '404':
          description: Client not found or no handovers exist
        '500':
          description: Internal server error
      summary: Get all human handover records for a client
      tags:
      - chatbot
    servers:
    - url: https://api.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/callhippo-sms-webhook:
    post:
      description: Processes incoming CallHippo SMS webhook data and batches it for processing
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: SMS message processed successfully
        '400':
          description: Bad request format
        '500':
          description: Internal server error
      security:
      - {}
      summary: Handle incoming SMS messages from CallHippo
      tags:
      - chatbot
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/continue-conversation:
    post:
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: Conversation processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '500':
          description: Internal server error
      summary: Continue a conversation with the chatbot for testing
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/soft-delete-messages:
    post:
      description: Marks specified messages as deleted without removing them from the database. Uses the same access validation as continue-conversation endpoint.
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: Messages soft deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '403':
          description: Access denied
        '404':
          description: Entity not found for client
        '500':
          description: Internal server error
      summary: Soft delete messages from a conversation
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/start-conversation:
    post:
      description: Initiates a new conversation without waiting for a booking enquiry. Creates a new client if needed and sends initial messages. Requires phone number and country code as separate fields.
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: Conversation started successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '400':
          description: Bad request - invalid parameters
        '500':
          description: Internal server error
      summary: Start a new conversation with a customer
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/start-conversation-production:
    post:
      description: Initiates a new conversation without waiting for a booking enquiry. Creates a new client if needed and sends initial messages. This endpoint has no access restrictions and can be used in production for any entity. Requires phone number and country code as separate fields.
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: Conversation started successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '400':
          description: Bad request - invalid parameters
        '500':
          description: Internal server error
      summary: Start a new conversation with a customer (Production - No Restrictions)
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/process-followups:
    post:
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: Follow-ups processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '500':
          description: Internal server error during processing
      summary: Process due follow-ups
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/deactivate-handover/{clientId}:
    post:
      operationId: t_value
      parameters:
      - name: reason
        required: false
        in: query
        description: Reason for deactivating human handover
        schema:
          example: Manual deactivation
      - name: clientId
        required: true
        in: path
        description: ID of the client to deactivate handover for
        schema:
          example: client_123456
      responses:
        '200':
          description: Human handover deactivated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '500':
          description: Internal server error during deactivation
      summary: Deactivate human handover for a client
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/activate-handover/{clientId}:
    post:
      operationId: t_value
      parameters:
      - name: clientId
        required: true
        in: path
        description: Client ID to activate handover for
        schema: {}
      responses:
        '200':
          description: Human handover activated successfully
        '500':
          description: Internal server error during activation
      summary: Activate human handover for a client
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/followups/due:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Due followups retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    clientId:
                      type: string
                    type:
                      type: string
                    scheduledTime:
                      type: string
                      format: date-time
        '500':
          description: Internal server error
      summary: Get all due followups
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/followups/{clientId}:
    get:
      operationId: t_value
      parameters:
      - name: clientId
        required: true
        in: path
        description: ID of the client to retrieve followups for
        schema:
          example: client_123456
      responses:
        '200':
          description: Followups retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    clientId:
                      type: string
                    type:
                      type: string
                    scheduledTime:
                      type: string
                      format: date-time
        '500':
          description: Internal server error
      summary: Get all followups for a client
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/{clientId}/next-followup:
    post:
      description: Determines the next follow-up action to schedule for a client based on their current conversation state and existing follow-up rules.
      operationId: t_value
      parameters:
      - name: clientId
        required: true
        in: path
        description: Client ID for the follow-up calculation
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: Next follow-up calculated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '400':
          description: Bad request - invalid parameters
        '404':
          description: Client not found or no follow-up needed
        '500':
          description: Internal server error
      summary: Calculate next follow-up for a client
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/event-webhook:
    post:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Event processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '400':
          description: Bad request format
        '500':
          description: Internal server error
      summary: Handle various application events
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/sp-context/{locationEntityId}:
    get:
      operationId: t_value
      parameters:
      - name: locationEntityId
        required: true
        in: path
        description: ID of the location entity to retrieve context for
        schema:
          example: 5b2aa9ad-3fb0-456c-9ae8-4d79f67b294f
      responses:
        '200':
          description: Service provider context retrieved successfully
        '500':
          description: Internal server error
      summary: Test the getSpContext function with a specific location entity ID
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/booking-requests/update:
    post:
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        description: Either {uuid, slots, service} or {uuid, error}
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Booking requests updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e_2'
        '404':
          description: No pending booking requests found
        '500':
          description: Internal server error
      summary: Update booking requests with available slots
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/booking-requests/pending:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: List of pending booking requests
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/e_2'
        '500':
          description: Internal server error
      summary: Get all pending booking requests
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/booking-requests/test-booking-info:
    post:
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                date:
                  type: string
                  example: '2025-01-15'
                  description: Date for booking in YYYY-MM-DD format
                serviceType:
                  type: string
                  example: Haircut
                  description: Type of service to book
                salonId:
                  type: string
                  example: 123e4567-e89b-12d3-a456-426614174000
                  description: Entity ID of the salon
                clientId:
                  type: string
                  example: client_123456
                  description: Client ID requesting the booking
              required:
              - date
              - serviceType
              - salonId
              - clientId
      responses:
        '200':
          description: Booking info function result
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    - error
                    - PENDING
                  message:
                    type: string
                  requestId:
                    type: string
                  bookingLink:
                    type: string
                  slots:
                    type: string
        '400':
          description: Bad request
        '500':
          description: Internal server error
      summary: Test the getBookingInfo function with direct parameters
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/booking-info:
    post:
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: Booking information retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - PENDING
                    - COMPLETED
                    - error
                  message:
                    type: string
                  requestId:
                    type: string
                  slots:
                    type: array
                    items:
                      type: object
                      properties:
                        time:
                          type: string
                        stylist:
                          type: string
                        available:
                          type: boolean
                        timezone:
                          type: string
                  bookingLink:
                    type: string
        '400':
          description: Bad request
        '500':
          description: Internal server error
      summary: Get available booking slots for a specific service and date
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/entity-record-l2b/{entityId}:
    get:
      operationId: t_value
      parameters:
      - name: entityId
        required: true
        in: path
        description: The entity ID to fetch
        schema:
          example: c23f1689-2cbf-488e-b53e-090ccdb9254b
      responses:
        '200':
          description: Entity record fetched successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      entityId:
                        type: string
                      status:
                        type: boolean
                      messageSendDelay:
                        type: number
                      messages:
                        type: array
                        items:
                          type: string
                      isBotActive:
                        type: boolean
                      isVoiceActive:
                        type: boolean
                      createdAt:
                        type: string
                        format: date-time
                      channel:
                        type: string
        '404':
          description: Entity record not found
        '500':
          description: Internal server error
      summary: Get an entity record for L2B bot configuration
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/enabled-functions/{entityId}:
    get:
      description: Returns enabled functions based on entity preferences, cohort settings, or default configuration
      operationId: t_value
      parameters:
      - name: entityId
        required: true
        in: path
        description: The entity ID to fetch enabled functions for
        schema:
          example: c23f1689-2cbf-488e-b53e-090ccdb9254b
      responses:
        '200':
          description: Enabled functions retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      functions:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            description:
                              type: string
                            parameters:
                              type: object
                              properties:
                                type:
                                  type: string
                                properties:
                                  type: object
                                required:
                                  type: array
                                  items:
                                    type: string
                      isDefault:
                        type: boolean
                        description: Indicates if default functions are being used (no custom preference set)
        '404':
          description: Entity not found
        '500':
          description: Internal server error
      summary: Get enabled chatbot functions for an entity
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/entity-record-l2b:
    post:
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e_2'
      responses:
        '200':
          description: Entity record created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  entityId:
                    type: string
        '400':
          description: Bad request
        '500':
          description: Internal server error
      summary: Create an entity record for L2B bot configuration
      tags:
      - chatbot
      security:
      - access-token: []
    servers:
    - url: https://tasks.zoca.ai
      description: Production
  /tasks/api/v1/chatbot/entity-record-l2b/update/{entityId}:
    post:
      operationId: t_value
      parameters:
      - name: entityId
        required: true
        in: path
        description: Entity ID to update
        schema:
          example: c23f1689

# --- truncated at 32 KB (95 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoca/refs/heads/main/openapi/zoca-chatbot-api-openapi.yml