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

# Generate replies

> Generates a fresh Extrovert reply for each listed conversation, exactly as Generate does for one. Each conversation is generated on its own and gets its own result in request order — the reply with its dmId and text, or the reason it failed; a failed conversation never hides or undoes the others. Conversations of the same account are generated one after another, so a batch for one account takes longer than one spread over several accounts. Batch generation never takes instructions and never improves; nothing is sent. Up to 10 conversations per call.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json post /client/v2/dm-conversations/generate-replies
openapi: 3.1.0
info:
  title: Extrovert Client API
  description: >-
    Public API for Extrovert platform integration. Use your API key for
    authentication.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.goextrovert.com/
    description: API Server
security: []
tags: []
paths:
  /client/v2/dm-conversations/generate-replies:
    post:
      tags:
        - Direct Messages
      summary: Generate replies
      description: >-
        Generates a fresh Extrovert reply for each listed conversation, exactly
        as Generate does for one. Each conversation is generated on its own and
        gets its own result in request order — the reply with its dmId and text,
        or the reason it failed; a failed conversation never hides or undoes the
        others. Conversations of the same account are generated one after
        another, so a batch for one account takes longer than one spread over
        several accounts. Batch generation never takes instructions and never
        improves; nothing is sent. Up to 10 conversations per call.
      operationId: DmConversationsClientApiController_generateReplies
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateRepliesRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateRepliesResponseDto'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    GenerateRepliesRequestDto:
      type: object
      properties:
        items:
          type: array
          minItems: 1
          maxItems: 10
          items:
            type: object
            properties:
              connectionId:
                type: string
                format: uuid
                description: Conversation (connection) to generate a reply for.
              campaignId:
                type: string
                description: >-
                  One-call Voice source: an updatable campaign in this workspace
                  belonging to the conversation owner. Does not reassign the
                  prospect. Omit for implicit selection, which may differ from
                  the recommendation.
                format: uuid
            required:
              - connectionId
          description: Conversations to generate replies for, 1 to 10.
      required:
        - items
    GenerateRepliesResponseDto:
      type: object
      properties:
        status:
          type: string
          const: success
          description: Response status
        data:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
                minimum: 0
                maximum: 9007199254740991
                description: Position of the element in the request list, starting at 0.
              id:
                description: >-
                  Element ID. Present for every updated or deleted element, and
                  for a created element once it was saved.
                type: string
                format: uuid
              item:
                description: The element as saved. Absent when the element failed.
                type: object
                properties:
                  dmId:
                    type: string
                    format: uuid
                    description: Exact reply ID required by Edit, Send, and Recover.
                    examples:
                      - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                  connectionId:
                    type: string
                    format: uuid
                    description: Conversation this reply belongs to.
                    examples:
                      - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                  text:
                    type: string
                    minLength: 1
                    description: Effective reply text.
                  source:
                    type: string
                    enum:
                      - Extrovert-generated
                      - Agent-authored
                      - Edited
                    description: >-
                      Extrovert-generated when no authored override exists;
                      Agent-authored when created without generation; Edited
                      when custom text overrides a generated reply.
                  state:
                    type: string
                    enum:
                      - No draft
                      - Suggested
                      - Draft ready
                      - Generating
                      - Sending
                      - Sent
                      - History changed
                      - Error
                      - Paused
                      - Skipped
                  allowedActions:
                    type: array
                    items:
                      type: string
                      enum:
                        - prepare-reply
                        - generate-or-improve-reply
                        - edit-reply
                        - send-reply
                        - recover-draft
                    description: Actions valid for the current state.
                  reason:
                    anyOf:
                      - type: string
                        enum:
                          - Relevant post
                          - Follow-up
                          - First outreach
                          - Manual
                      - type: 'null'
                    description: >-
                      Why Extrovert recommended this conversation, or null when
                      no automatic reason applies.
                  followUpNumber:
                    anyOf:
                      - type: integer
                        minimum: 1
                        maximum: 9007199254740991
                      - type: 'null'
                    description: >-
                      Which follow-up of the unanswered series is due, counting
                      from 1. Null outside a follow-up series.
                    examples:
                      - 1
                      - 3
                  relevantPost:
                    anyOf:
                      - type: object
                        properties:
                          summary:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Stored post summary, or null when none was
                              persisted.
                          linkedInUrl:
                            type: string
                            format: uri
                            description: LinkedIn URL of the post the reply was written on.
                          publishedAt:
                            type: string
                            description: When the post was published on LinkedIn.
                            examples:
                              - '2025-06-30T14:02:07.456Z'
                              - '2025-07-03T08:30:00.000Z'
                        required:
                          - summary
                          - linkedInUrl
                          - publishedAt
                      - type: 'null'
                    description: >-
                      Post the reply text was written on, or null when it was
                      not written on a post.
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                            description: >-
                              Stable public error code suitable for branching.
                              It is not a raw provider or backend status.
                          message:
                            type: string
                            description: >-
                              Safe explanation of what failed and what the
                              caller should do next.
                          retryable:
                            type: boolean
                            description: >-
                              Whether retrying may succeed after the stated
                              condition is resolved.
                          occurredAt:
                            anyOf:
                              - type: string
                                description: Date and time in ISO 8601 format
                                examples:
                                  - '2025-06-30T14:02:07.456Z'
                                  - '2025-07-03T08:30:00.000Z'
                              - type: 'null'
                            description: >-
                              When this failure was recorded, or null when no
                              reliable timestamp exists.
                        required:
                          - code
                          - message
                          - retryable
                          - occurredAt
                      - type: 'null'
                    description: >-
                      Current send/workflow failure, or null when no failure is
                      active.
                  createdAt:
                    type: string
                    description: Date and time in ISO 8601 format
                    examples:
                      - '2025-06-30T14:02:07.456Z'
                      - '2025-07-03T08:30:00.000Z'
                  updatedAt:
                    type: string
                    description: Date and time in ISO 8601 format
                    examples:
                      - '2025-06-30T14:02:07.456Z'
                      - '2025-07-03T08:30:00.000Z'
                  sentAt:
                    anyOf:
                      - type: string
                        description: Date and time in ISO 8601 format
                        examples:
                          - '2025-06-30T14:02:07.456Z'
                          - '2025-07-03T08:30:00.000Z'
                      - type: 'null'
                    description: LinkedIn send time, or null before successful delivery.
                required:
                  - dmId
                  - connectionId
                  - text
                  - source
                  - state
                  - allowedActions
                  - reason
                  - followUpNumber
                  - relevantPost
                  - error
                  - createdAt
                  - updatedAt
                  - sentAt
              error:
                description: >-
                  Why this element was not applied. Absent when the element
                  succeeded; the other elements are unaffected.
                type: object
                properties:
                  code:
                    type: string
                    description: >-
                      Status name of the failure, e.g. `NOT_FOUND`,
                      `PERMISSION_DENIED`, `INVALID_ARGUMENT`, `INTERNAL`.
                  message:
                    type: string
                    description: Human-readable reason this element was not applied.
                required:
                  - code
                  - message
            required:
              - index
          description: >-
            One result per requested conversation, in request order: the
            generated reply, or the reason it was not generated
        message:
          type: string
          description: Success message
          examples:
            - Operation completed successfully
      required:
        - status
        - data
        - message
    ClientApiErrorResponseDto:
      type: object
      properties:
        status:
          type: string
          description: Response status
          example: error
          enum:
            - error
        data:
          type: object
          description: Response data
          example: null
          nullable: true
        message:
          type: string
          description: Error message
          example: An error occurred while processing the request
      required:
        - status
        - data
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key for authentication

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.