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

# Reply to the plan AI agent (paid AI turn, confirm required)

> Requires confirm:true. Returns an ack of the human message; the AI reply is composed asynchronously, so poll GET conversation until busy is false. Only a plan in draft accepts replies (409 otherwise).



## OpenAPI

````yaml /openapi-v1.json post /v1/action-plans/{id}/conversation
openapi: 3.0.0
info:
  title: Woku Client API v1
  description: >-
    Public REST API for programmatic management of woku Voice-of-Customer
    programs: trackers, VoC instruments (NPS, woku, CES, CSAT), action plans,
    support tickets, multi-channel sending and response capture. Requests are
    company-scoped by the API key; never send a company id.
  version: 1.0.0
  contact:
    name: Woku
    url: https://woku.app
    email: team@woku.app
servers:
  - url: https://clientapi.woku.app
    description: Production
security: []
tags: []
paths:
  /v1/action-plans/{id}/conversation:
    post:
      tags:
        - v1 - action-plans
      summary: Reply to the plan AI agent (paid AI turn, confirm required)
      description: >-
        Requires confirm:true. Returns an ack of the human message; the AI reply
        is composed asynchronously, so poll GET conversation until busy is
        false. Only a plan in draft accepts replies (409 otherwise).
      operationId: V1ActionPlansController_postReply
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
            format: ObjectId
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostPlanReplyBodyDTO'
      responses:
        '202':
          description: Human message accepted
        '400':
          description: Not confirmed or invalid body
        '404':
          description: Plan not found
        '409':
          description: Plan is not in draft or is busy
      security:
        - bearer: []
components:
  schemas:
    PostPlanReplyBodyDTO:
      type: object
      properties:
        text:
          type: string
          description: Message to send to the plan AI agent.
          minLength: 1
          maxLength: 4000
        confirm:
          type: boolean
          description: >-
            Must be true. Each reply triggers a paid AI turn; the reply is
            composed asynchronously and delivered over the plan channel.
      required:
        - text
        - confirm
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: Company secret API key.

````