> ## 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.

# Create Contacts

> Servicio para crear un nuevo contacto en el workspace. Si se utiliza platformId con el codigo de WhatsApp (2), se debe enviar obligatoriamente el campo internalWhatsappNumber.

Codigos de los canales (platformId):
- 1: Webchat
- 2: WhatsApp
- 3: Messenger
- 4: Instagram
- 5: Telegram
- 6: Portal
- 7: Code



## OpenAPI

````yaml POST /api/contact
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/contact:
    post:
      tags:
        - contact
      summary: Crear Contacto
      description: >-
        Servicio para crear un nuevo contacto en el workspace. Si se utiliza
        platformId con el codigo de WhatsApp (2), se debe enviar
        obligatoriamente el campo internalWhatsappNumber.


        Codigos de los canales (platformId):

        - 1: Webchat

        - 2: WhatsApp

        - 3: Messenger

        - 4: Instagram

        - 5: Telegram

        - 6: Portal

        - 7: Code
      operationId: createContact
      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
                name:
                  type: string
                  description: Nombre del contacto
                lastname:
                  type: string
                  description: Apellido del contacto
                email:
                  type:
                    - string
                    - 'null'
                  description: Correo electronico del contacto
                platformId:
                  type: integer
                  description: >-
                    ID del canal (1=Webchat, 2=WhatsApp, 3=Messenger,
                    4=Instagram, 5=Telegram, 6=Portal, 7=Code)
                internalWhatsappNumber:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Numero de WhatsApp del contacto (ej: 57123456789).
                    Obligatorio cuando platformId=2
                stageId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    ID de la etapa del contacto. Obtener los codigos del
                    servicio Get Workspace
                isoCountryCode:
                  type:
                    - string
                    - 'null'
                  description: 'Indicador de bandera del pais (ej: PE, US, ES, CO)'
                tags:
                  type: array
                  items:
                    type: string
                  description: IDs de etiquetas a asignar
                customFields:
                  type: array
                  items:
                    $ref: '#/components/schemas/CustomField'
                  description: >-
                    Campos personalizados, se crea en la plataforma en
                    Configuracion -> Variables
              required:
                - workspaceId
                - name
                - platformId
      responses:
        '200':
          description: Contacto creado 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:
                      id:
                        type: string
                        description: ID del contacto creado
                      contact:
                        $ref: '#/components/schemas/Contact'
                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:
    CustomField:
      type: object
      description: Campo personalizado definido por el usuario
      properties:
        code:
          type: string
          description: Codigo del campo personalizado (Variable)
        value:
          type: string
          description: Valor de la variable personalizada
    Contact:
      type: object
      description: Informacion completa de un contacto en el workspace
      properties:
        id:
          type: string
          description: Identificador unico del contacto
        creationDate:
          type: string
          format: date-time
          description: Fecha de creacion del contacto
        assignedAgentId:
          type:
            - string
            - 'null'
          description: ID del agente asignado al contacto
        assignedAgentName:
          type:
            - string
            - 'null'
          description: Nombre del agente asignado
        segmentationId:
          type:
            - string
            - 'null'
          description: ID de segmentacion del contacto
        lastMessage:
          type:
            - string
            - 'null'
          description: Ultimo mensaje del contacto
        lastMessageDate:
          type:
            - string
            - 'null'
          format: date-time
          description: Fecha del ultimo mensaje
        platformSenderId:
          type:
            - string
            - 'null'
          description: ID del remitente en la plataforma
        platformSenderName:
          type:
            - string
            - 'null'
          description: Nombre del remitente en la plataforma
        platformSenderPhone:
          type:
            - string
            - 'null'
          description: Telefono del remitente en la plataforma
        platformSenderEmail:
          type:
            - string
            - 'null'
          description: Email del remitente en la plataforma
        isRead:
          type: boolean
          description: Indica si el contacto ha sido leido
        isBotEnabled:
          type: boolean
          description: Indica si el bot esta habilitado para este contacto
        isManuallyAdded:
          type: boolean
          description: Indica si el contacto fue agregado manualmente
        avatarColor:
          type:
            - string
            - 'null'
          description: Color del avatar del contacto
        orderInCards:
          type: integer
          description: Orden del contacto en la vista de tarjetas
        orderInCardsLastUpdated:
          type:
            - string
            - 'null'
          format: date-time
          description: Fecha de ultima actualizacion del orden
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: Etiquetas asignadas al contacto
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
          description: Campos personalizados del contacto
        files:
          type: array
          items:
            type: string
          description: Archivos adjuntos del contacto
        isSolved:
          type: boolean
          description: Indica si la conversacion esta resuelta
        workspaceId:
          type: string
          description: ID del workspace al que pertenece
        name:
          type: string
          description: Nombre del contacto
        lastname:
          type: string
          description: Apellido del contacto
        email:
          type:
            - string
            - 'null'
          description: Correo electronico del contacto
        platformId:
          type: integer
          description: >-
            ID de la plataforma (1=Webchat, 2=Whatsapp, 3=Messenger,
            4=Instagram, 5=Telegram, 6=Portal, 7=Code)
        stageId:
          type:
            - string
            - 'null'
          description: ID de la etapa del contacto
        internalWhatsappNumber:
          type:
            - string
            - 'null'
          description: Numero interno de WhatsApp del contacto
        blocked:
          type: boolean
          description: Indica si el contacto esta bloqueado
    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
    Tag:
      type: object
      description: Etiqueta asignada a un contacto u oportunidad
      properties:
        id:
          type: string
          description: Identificador unico de la etiqueta
        name:
          type: string
          description: Nombre de la etiqueta
        color:
          type:
            - string
            - 'null'
          description: Color de la etiqueta en formato hexadecimal
        assignmentDate:
          type:
            - string
            - 'null'
          description: Fecha de asignacion de la etiqueta
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Token de autenticacion Bearer. Obtenga el token usando el endpoint
        /api/user/login

````