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

# Update Agent Action

> Update an existing action for a voice AI agent. Modifies the behavior and configuration of an agent action.



## OpenAPI

````yaml /api-reference/voice-ai/openapi.json put /voice-ai/actions/{actionId}
openapi: 3.0.0
info:
  title: Voice AI API
  description: Documentation for Voice AI API
  version: '1.0'
  contact: {}
servers:
  - url: https://services.leadconnectorhq.com
security: []
tags:
  - name: Voice-AI
    description: Documentation for Voice AI API
  - name: Dashboard
    description: Documentation for Voice AI API
  - name: Agents
    description: Documentation for Voice AI API
  - name: Actions
    description: Documentation for Voice AI API
paths:
  /voice-ai/actions/{actionId}:
    put:
      tags:
        - Actions
      summary: Update Agent Action
      description: >-
        Update an existing action for a voice AI agent. Modifies the behavior
        and configuration of an agent action.
      operationId: update-action
      parameters:
        - name: Version
          in: header
          description: API Version
          required: true
          schema:
            type: string
            enum:
              - '2021-04-15'
        - name: actionId
          required: true
          in: path
          description: Unique identifier for the action
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSingleActionDTO'
      responses:
        '200':
          description: Action updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateActionResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestDTO'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedDTO'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableDTO'
      security:
        - bearer:
            - voice-ai-agent-goals.write
components:
  schemas:
    UpdateSingleActionDTO:
      type: object
      properties:
        agentId:
          type: string
          description: Agent ID to attach the action to
          example: 507f1f77bcf86cd799439011
        locationId:
          type: string
          description: Location ID
          example: 507f1f77bcf86cd799439012
        actionType:
          type: string
          description: Type of action
          enum:
            - CALL_TRANSFER
            - DATA_EXTRACTION
            - IN_CALL_DATA_EXTRACTION
            - WORKFLOW_TRIGGER
            - SMS
            - APPOINTMENT_BOOKING
            - CUSTOM_ACTION
          example: CALL_TRANSFER
        name:
          type: string
          description: Human-readable name for this action
          example: Transfer to Manager
        actionParameters:
          description: Action parameters - structure varies by actionType
          oneOf:
            - $ref: '#/components/schemas/CallTransferActionParameters'
            - $ref: '#/components/schemas/DataExtractionActionParameters'
            - $ref: '#/components/schemas/InCallDataExtractionActionParameters'
            - $ref: '#/components/schemas/WorkflowTriggerParameters'
            - $ref: '#/components/schemas/SMSParameters'
            - $ref: '#/components/schemas/AppointmentBookingActionParameters'
            - $ref: '#/components/schemas/CustomActionParameters'
      required:
        - agentId
        - locationId
        - actionType
        - name
        - actionParameters
    UpdateActionResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the created action
          example: 507f1f77bcf86cd799439011
        actionType:
          type: string
          description: Type of action
          enum:
            - CALL_TRANSFER
            - DATA_EXTRACTION
            - IN_CALL_DATA_EXTRACTION
            - WORKFLOW_TRIGGER
            - SMS
            - APPOINTMENT_BOOKING
            - CUSTOM_ACTION
          example: CALL_TRANSFER
        name:
          type: string
          description: Human-readable name for this action
          example: Transfer to Manager
        actionParameters:
          description: Action parameters - structure varies by actionType
          oneOf:
            - $ref: '#/components/schemas/CallTransferActionParameters'
            - $ref: '#/components/schemas/DataExtractionActionParameters'
            - $ref: '#/components/schemas/InCallDataExtractionActionParameters'
            - $ref: '#/components/schemas/WorkflowTriggerParameters'
            - $ref: '#/components/schemas/SMSParameters'
            - $ref: '#/components/schemas/AppointmentBookingActionParameters'
            - $ref: '#/components/schemas/CustomActionParameters'
      required:
        - id
        - actionType
        - name
        - actionParameters
    BadRequestDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        message:
          type: string
          example: Bad Request
    UnauthorizedDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        message:
          type: string
          example: 'Invalid token: access token is invalid'
        error:
          type: string
          example: Unauthorized
    UnprocessableDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 422
        message:
          example:
            - Unprocessable Entity
          type: array
          items:
            type: string
        error:
          type: string
          example: Unprocessable Entity
    CallTransferActionParameters:
      type: object
      properties:
        triggerPrompt:
          type: string
          description: When to trigger this action during the call
          example: When the caller asks to speak to a manager
        transferToType:
          type: string
          description: Type of transfer destination (currently only "number" is supported)
          enum:
            - number
          example: number
        transferToValue:
          type: string
          description: >-
            Phone number to transfer to. Must start with +, include country
            code, contain only numbers, and be 11-16 characters long (e.g.,
            +12345678901).
          example: '+12345678901'
        triggerMessage:
          type: string
          description: Message to tell the caller before transferring
          example: Let me transfer you to a manager right away
        hearWhisperMessage:
          type: boolean
          description: Whether to play whisper message to the receiving party
          example: true
      required:
        - triggerPrompt
        - transferToType
        - transferToValue
    DataExtractionActionParameters:
      type: object
      properties:
        contactFieldId:
          type: string
          description: ID of the contact field to be updated with the extracted data
          example: 507f1f77bcf86cd799439011
        description:
          type: string
          description: Description of what data to extract
          example: Caller's phone number
        overwriteExistingValue:
          type: boolean
          description: >-
            Whether to overwrite existing field value if already set, default is
            false
          example: false
          default: false
      required:
        - contactFieldId
        - description
        - examples
    InCallDataExtractionActionParameters:
      type: object
      properties:
        contactFieldId:
          type: string
          description: ID of the contact field to be updated with the extracted data
          example: 507f1f77bcf86cd799439011
        description:
          type: string
          description: Description of what data to extract
          example: Caller's phone number
        overwriteExistingValue:
          type: boolean
          description: >-
            Whether to overwrite existing field value if already set, default is
            false
          example: false
          default: false
      required:
        - contactFieldId
        - description
        - examples
    WorkflowTriggerParameters:
      type: object
      properties:
        triggerPrompt:
          type: string
          description: When to trigger this workflow
          example: When caller requests a quote
        triggerMessage:
          type: string
          description: Message to tell the caller
          example: Let me start that process for you
        workflowId:
          type: string
          description: Workflow ID to trigger
          example: 507f1f77bcf86cd799439011
      required:
        - triggerPrompt
        - triggerMessage
        - workflowId
    SMSParameters:
      type: object
      properties:
        triggerPrompt:
          type: string
          description: When to send the SMS
          example: When caller asks for booking confirmation
        triggerMessage:
          type: string
          description: Message to tell the caller
          example: I'll send you a confirmation text
        messageBody:
          type: string
          description: SMS message content to send
          example: Your appointment is confirmed for tomorrow at 2 PM
      required:
        - triggerPrompt
        - triggerMessage
        - messageBody
    AppointmentBookingActionParameters:
      type: object
      properties:
        calendarId:
          type: string
          description: Calendar ID to book appointments in
          example: 507f1f77bcf86cd799439011
        daysOfOfferingDates:
          type: number
          description: Number of days ahead to offer booking dates
          example: 3
        slotsPerDay:
          type: number
          description: Number of available slots per day
          example: 3
        hoursBetweenSlots:
          type: number
          description: Hours between available slots
          example: 1
      required:
        - calendarId
        - daysOfOfferingDates
        - slotsPerDay
        - hoursBetweenSlots
    CustomActionParameters:
      type: object
      properties:
        triggerPrompt:
          type: string
          description: When to call the custom API
          example: When caller provides order number
        triggerMessage:
          type: string
          description: Message to tell the caller
          example: Let me check that order status
        apiDetails:
          description: API endpoint configuration
          allOf:
            - $ref: '#/components/schemas/CustomActionApiDetailsDTO'
        selectedPaths:
          description: >-
            Selected response paths to extract from API response. Required: at
            least 1 value if the method is GET. Should be empty if the method is
            POST.
          example:
            - data.orderId
            - status
          type: array
          items:
            type: string
      required:
        - triggerPrompt
        - apiDetails
    CustomActionApiDetailsDTO:
      type: object
      properties:
        url:
          type: string
          description: API endpoint URL
          example: https://api.example.com/orders
        method:
          type: string
          description: HTTP method
          example: GET
          enum:
            - POST
            - GET
        authenticationRequired:
          type: boolean
          description: Whether authentication is required
          example: true
        authenticationValue:
          type: string
          description: >-
            Authentication token or API key (required if authenticationRequired
            is true)
          example: token123
        headers:
          description: HTTP headers to include
          type: array
          items:
            $ref: '#/components/schemas/CustomActionHeaderDTO'
        parameters:
          description: API parameters to send
          type: array
          items:
            $ref: '#/components/schemas/CustomActionParameterDTO'
      required:
        - url
        - method
    CustomActionHeaderDTO:
      type: object
      properties:
        key:
          type: string
          description: HTTP header name
          example: id
        value:
          type: string
          description: HTTP header value
          example: '1234567890'
      required:
        - key
        - value
    CustomActionParameterDTO:
      type: object
      properties:
        name:
          type: string
          description: Parameter name
          example: orderId
        description:
          type: string
          description: Parameter description
          example: Order ID to look up
        type:
          type: string
          description: Parameter type
          example: string
        example:
          type: string
          description: Example parameter value
          example: ORD-12345
      required:
        - name
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Access Token or Private Integration Token

````