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

# Enviar Conversacion (Plantilla)

> Envia conversaciones de WhatsApp desde tu plataforma a tus clientes de forma masiva o individual utilizando plantillas. Por defecto, si no se envia el tipo, este llegara como API (3). Si se envia tipo API, se pueden agrupar los envios con el campo campaignName.



## OpenAPI

````yaml POST /api/conversation
openapi: 3.1.0
info:
  title: Plazbot
  description: >-
    Documentacion completa de la API de Plazbot. Incluye todos los servicios
    para gestion de contactos, conversaciones, mensajes, oportunidades, tareas,
    plantillas, agentes de IA, usuarios y workspaces.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.plazbot.com
    description: Servidor de produccion de Plazbot
security:
  - bearerAuth: []
tags:
  - name: automation
    description: Servicios de automatizacion y nodos de IA
  - name: agent
    description: Servicios para gestion de Agentes de Inteligencia Artificial
  - name: contact
    description: Servicios para gestion de contactos del workspace
  - name: conversation
    description: Servicios para gestion de conversaciones y campanas
  - name: message
    description: Servicios para envio y gestion de mensajes
  - name: opportunity
    description: Servicios para gestion de oportunidades de negocio
  - name: task
    description: Servicios para gestion de tareas
  - name: template
    description: Servicios para gestion de plantillas de WhatsApp
  - name: user
    description: Servicios para gestion de usuarios y autenticacion
  - name: workspace
    description: Servicios para gestion de workspaces
paths:
  /api/conversation:
    post:
      tags:
        - conversation
      summary: Enviar Conversacion
      description: >-
        Envia conversaciones de WhatsApp desde tu plataforma a tus clientes de
        forma masiva o individual utilizando plantillas. Por defecto, si no se
        envia el tipo, este llegara como API (3). Si se envia tipo API, se
        pueden agrupar los envios con el campo campaignName.
      operationId: sendConversation
      parameters:
        - name: x-workspace-id
          in: header
          description: Identificador del workspace
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                workspaceId:
                  type: string
                  description: Identificador del workspace
                template:
                  type: string
                  description: Nombre de la plantilla a utilizar
                destination:
                  type: string
                  description: 'Numero de WhatsApp del destinatario (ej: 574787443997)'
                reference1:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Valor de referencia 1. Campos adicionales para almacenar
                    informacion relevante sobre el mensaje. Utiles para
                    categorizar, filtrar o buscar mensajes. Tambien se pueden
                    usar en el webhook de la plantilla cuando el cliente hace
                    clic en un boton interactivo.
                reference2:
                  type:
                    - string
                    - 'null'
                  description: Valor de referencia 2
                reference3:
                  type:
                    - string
                    - 'null'
                  description: Valor de referencia 3
                variablesHeader:
                  type: array
                  description: Variables para el encabezado de la plantilla
                  items:
                    type: object
                    properties:
                      variable:
                        type: string
                        description: Nombre de la variable
                      value:
                        type: string
                        description: Valor de la variable
                    required:
                      - variable
                      - value
                variablesBody:
                  type: array
                  description: Variables para el cuerpo de la plantilla
                  items:
                    type: object
                    properties:
                      variable:
                        type: string
                        description: Nombre de la variable
                      value:
                        type: string
                        description: Valor de la variable
                    required:
                      - variable
                      - value
                file:
                  type: array
                  description: Archivos a enviar con la plantilla
                  items:
                    type: object
                    properties:
                      fileUrl:
                        type: string
                        description: URL publica del archivo a enviar
                      fileName:
                        type: string
                        description: Nombre del archivo
                sendType:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Tipo de envio de la conversacion:


                    - 1: Campana

                    - 2: Individual

                    - 3: API


                    Por defecto, si no se envia el tipo, este llegara como API
                    (3).
                campaignName:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Nombre de la campana. Se puede enviar para tipo API y
                    Campana.
                fUseSystemVariables:
                  type: boolean
                  default: false
                  description: >-
                    Reemplaza automaticamente los VALORES de las variables del
                    BODY con los datos del contacto. Importante: no sustituye el
                    envio de variablesBody ni variablesHeader; igual debes
                    enviarlas con la misma cantidad y los mismos nombres que la
                    plantilla (de lo contrario la API rechaza el request).
                    Cuando es true, el sistema busca el contacto por su numero
                    de WhatsApp y, solo para las variables del BODY que tengan
                    configurado un valor de reemplazo (replaceWith) en la
                    plantilla, sobreescribe el valor enviado con: CONTACT_NAME
                    (nombre y apellido), EMAIL, COUNTRY (codigo ISO del pais),
                    AGENT_NAME (agente asignado), CELLPHONE (numero de WhatsApp)
                    o una variable personalizada del contacto por su codigo.
                    Condiciones: el contacto debe existir en la base de datos y
                    la variable debe tener replaceWith configurado; si no, se
                    usa el valor enviado. El reemplazo aplica unicamente al
                    BODY, no al HEADER. Cuando es false (valor por defecto), se
                    usan los valores enviados en variablesBody tal cual.
              required:
                - workspaceId
                - template
                - destination
      responses:
        '200':
          description: Conversacion enviada exitosamente
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Indica si la operacion fue exitosa
                  code:
                    type: integer
                    description: Codigo HTTP de la respuesta
                  errorCode:
                    type:
                      - string
                      - 'null'
                    description: Codigo de error, null si no hay error
                  message:
                    type: string
                    description: Mensaje descriptivo del resultado
                  data:
                    type: object
                    properties:
                      contactId:
                        type: string
                        description: ID del contacto destinatario
                required:
                  - success
                  - code
                  - errorCode
                  - message
                  - data
        '400':
          description: Solicitud incorrecta - Datos invalidos o faltantes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: No autorizado - Token Bearer requerido o invalido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Recurso no encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    ErrorResponse:
      type: object
      description: Respuesta de error estandar de la API
      properties:
        success:
          type: boolean
          description: Siempre false en errores
        code:
          type: integer
          description: Codigo HTTP del error
        errorCode:
          type:
            - string
            - 'null'
          description: Codigo de error especifico
        message:
          type: string
          description: Mensaje descriptivo del error
      required:
        - success
        - code
        - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Token de autenticacion Bearer. Obtenga el token usando el endpoint
        /api/user/login

````