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

> ## Agent Instructions
> Bridge exposes three integration surfaces: the REST Integrations API for pushing data into Bridge, webhooks for receiving events from Bridge, and the public Custom Connections endpoint that a tenant's landing page posts to.
> The Integrations API host is https://api-connect-us.bridge.new and every request to it must be authenticated with the x-api-key header. Bridge does not use bearer tokens or OAuth.
> The Custom Connections endpoint is different and the Integrations API rules do not apply to it: it has its own host, it takes no x-api-key and no authentication header of any kind, and it is called from a visitor's browser. It is identified by a workspace id and a capture key together with a reCAPTCHA token. Never tell a reader to authenticate it with an API key, and never tell them to keep its capture key out of frontend code - it is designed to live in the page.
> REST error catalog keys use BRIDGE_<DOMAIN>_<NNNN>, for example BRIDGE_CONVERSATION_0001. Some reviewed legacy handlers return a recognized code plus a symbolic suffix separated by |; preserve the complete received value and use the compatible catalog lookup on /error-codes. Custom Connections uses separate BRIDGE.CAMPAIGN_LEADS.<NAME> identifiers on its own error reference. Never invent an error code or confuse the two integration surfaces.
> This documentation covers the Integrations API, webhooks and Custom Connections only. It does not describe the Bridge web application or its internal APIs.
> Before generating an API request, read the relevant OpenAPI specification or the individual endpoint Markdown page. llms-full.txt collects guides and endpoint descriptions; it does not embed every request and response schema. The REST and Custom Connections contracts are separate.
> Preserve the published host, method, path, operationId, authentication, headers, parameter and field names, types, formats, required and nullable fields, enums, defaults, limits, and response codes. Do not invent identifiers, fields, retry rules, or delivery guarantees. When published sources conflict, identify the conflicting passages and ask Bridge support to confirm the current behavior before relying on it.
> Custom Connections is the current name of the landing-page feature previously documented as Lead Capture. The existing /lead-capture documentation URLs, captureKey field, campaign-leads endpoint, and BRIDGE.CAMPAIGN_LEADS error identifiers are unchanged. This is a naming change, not a change to authentication or the API contract.
> For a complete workflow, start with the task guides: /guides/first-conversation, /guides/send-attachments, /guides/send-template, /guides/agent-outbound, /guides/pagination, /guides/identifiers and /guides/responses. Read the endpoint contract as well as the recipe. Outbound requires an existing Contact, but does not require creating a separate Conversation first.
> forceSend=true permits reuse of an existing active conversation; it does not create a fresh one by ignoring it and it is not idempotency. Recovery of a released recoverable conversation can occur even with false. The LeadScout and Agents outbound routes have different line-selection and controller checks; use /guides/agent-outbound.
> For webhook HMAC, follow /webhooks/verifying-signatures exactly: the Python JSON serialization with sorted keys is signed; X-Bridge-Timestamp is not included in that signature. Do not claim a signed timestamp, raw-body signing, exactly-once delivery or a global event order. Use /webhooks/receive-events for durable acceptance and duplicates.
> A 201 message response, 202 handoff or 202 Custom Connections response is not a provider delivery receipt. Do not invent a polling endpoint from messageId, trackingId or requestId. REST validation parsing must tolerate the compatibility difference explained in /error-codes.
> The documentation is available in English (existing root URLs), Spanish (/es/) and Brazilian Portuguese (/pt-br/). Prefer the reader's language when a localized page exists, but preserve the API's exact field names, enums, routes, authentication and examples. Translations describe the same API; they do not introduce regional API hosts or behaviors.
> For coding-assistant setup, use /connect-your-agent, /es/connect-your-agent or /pt-br/connect-your-agent. The Bridge documentation MCP server reads published documentation and has a separate optional feedback tool. Connecting it does not connect the coding assistant to a customer workspace or authorize live business requests.
> For direct HTTP access without MCP, start at https://docs.bridge.new/llms.txt. It lists every published page in English, Spanish and Brazilian Portuguese. Choose /llms-en.json, /llms-es.json or /llms-pt-br.json for a language-specific index, and /llms-full-en.json, /llms-full-es.json or /llms-full-pt-br.json for collected content. /llms-full.txt contains the combined collection. Fetch the original OpenAPI specification for exact schemas.
> For HTTP page reads, follow the .md URLs from the index or request Accept: text/markdown at the canonical page URL. The MCP virtual filesystem uses .mdx page paths instead; .mdx is not the public HTTP export extension. With Search MCP, set language to en, es or pt-BR explicitly; its default is en.
> For integration capabilities and source-selection rules, read https://docs.bridge.new/skill.md. Documentation access does not authorize business API actions; use the actual user request, workspace, credentials and target identifiers for any live integration.

# Crear conversación con identificación flexible de usuarios

> Crea una conversación con identificación flexible de usuarios.

Los usuarios externos pueden identificarse por ID, correo electrónico o teléfono. Los usuarios internos solo se asignan cuando se indican explícitamente; de lo contrario, las conversaciones se asignan por turnos mediante un equipo o quedan abiertas para cualquier usuario interno disponible.

Cuando no hay una línea libre y los Contacts tienen una conversación liberada con exactamente los participantes solicitados, se recupera y devuelve esa conversación, conservando su `id` e historial. No se le aplican el `name` ni el `status` de la solicitud.



## OpenAPI

````yaml /es/api-reference/openapi.yaml post /bridge/api/v1/workspaces/{workspaceId}/conversations
openapi: 3.1.0
info:
  title: Bridge API
  summary: Especificación de la API de Bridge para gestionar el sistema de chat.
  description: >-
    Especificación de la API REST de integraciones de Bridge para gestionar
    contactos, conversaciones, mensajes, archivos, atributos personalizados,
    canales de proveedores, plantillas, usuarios internos y Agents.


    Los webhooks se documentan por separado en
    https://docs.bridge.new/es/webhooks; este OpenAPI contiene únicamente
    endpoints REST.


    **Arquitectura multiempresa**: las operaciones sobre recursos se limitan a
    un workspace específico mediante workspaceId. La comprobación de estado no
    incluye un workspace en su ruta.
  termsOfService: https://www.sainapsis.com/legal/terms-of-service
  contact:
    name: Bridge Support
    url: https://app.bridge.new/
    email: support@sainapsis.com
  license:
    name: MIT License
    url: https://spdx.org/licenses/MIT.html
  version: 1.0.0
servers:
  - url: https://api-connect-us.bridge.new
    description: Servidor de producción
security: []
paths:
  /bridge/api/v1/workspaces/{workspaceId}/conversations:
    post:
      tags:
        - Conversations API
      summary: Crear conversación con identificación flexible de usuarios
      description: >-
        Crea una conversación con identificación flexible de usuarios.


        Los usuarios externos pueden identificarse por ID, correo electrónico o
        teléfono. Los usuarios internos solo se asignan cuando se indican
        explícitamente; de lo contrario, las conversaciones se asignan por
        turnos mediante un equipo o quedan abiertas para cualquier usuario
        interno disponible.


        Cuando no hay una línea libre y los Contacts tienen una conversación
        liberada con exactamente los participantes solicitados, se recupera y
        devuelve esa conversación, conservando su `id` e historial. No se le
        aplican el `name` ni el `status` de la solicitud.
      operationId: >-
        create_conversation_bridge_api_v1_workspaces__workspaceId__conversations_post
      parameters:
        - name: workspaceId
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: Identificador único del workspace (UUID v4).
            examples:
              - b6cf1c4a-2b1e-4e63-8f3e-0f9d1a2a1234
            title: Workspaceid
          description: Identificador único del workspace (UUID v4).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConversationRequest'
              description: Cuerpo de la solicitud para crear una conversación.
      responses:
        '201':
          description: Respuesta satisfactoria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationResponse'
        '400':
          description: Solicitud incorrecta
          content:
            application/json:
              examples:
                MIN_PARTICIPANTS_REQUIRED:
                  value:
                    title: Min Participants Required
                    status: 400
                    code: BRIDGE_CONVERSATION_0210
                ONBOARDING_TEMPLATE_NOT_IN_WORKSPACE:
                  value:
                    title: Onboarding Template Not In Workspace
                    status: 400
                    code: BRIDGE_CONVERSATION_0602
                ONBOARDING_TEMPLATE_NOT_APPROVED:
                  value:
                    title: Onboarding Template Not Approved
                    status: 400
                    code: BRIDGE_CONVERSATION_0603
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: Acceso prohibido
          content:
            application/json:
              examples:
                FORBIDDEN:
                  value:
                    title: Forbidden
                    status: 403
                    code: BRIDGE_CORE_0301
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: No encontrado
          content:
            application/json:
              examples:
                WORKSPACE_NOT_FOUND:
                  value:
                    title: Workspace Not Found
                    status: 404
                    code: BRIDGE_WORKSPACE_0001
                EXTERNAL_USER_NOT_FOUND:
                  value:
                    title: External User Not Found
                    status: 404
                    code: BRIDGE_EXTERNAL_0001
                INTERNAL_USER_NOT_FOUND:
                  value:
                    title: Internal User Not Found
                    status: 404
                    code: BRIDGE_INTERNAL_0001
                ONBOARDING_TEMPLATE_NOT_FOUND:
                  value:
                    title: Onboarding Template Not Found
                    status: 404
                    code: BRIDGE_CONVERSATION_0601
              schema:
                $ref: '#/components/schemas/Problem'
        '409':
          description: Conflicto
          content:
            application/json:
              examples:
                CONVERSATION_WITH_SAME_PARTICIPANTS_ALREADY_EXISTS:
                  value:
                    title: Conversation With Same Participants Already Exists
                    status: 409
                    code: BRIDGE_CONVERSATION_0003
                EXTERNAL_USER_NOT_IN_WORKSPACE:
                  value:
                    title: External User Not In Workspace
                    status: 409
                    code: BRIDGE_EXTERNAL_0004
                INTERNAL_USERS_NOT_IN_WORKSPACE:
                  value:
                    title: Internal Users Not In Workspace
                    status: 409
                    code: BRIDGE_INTERNAL_0002
                PROVIDER_CHANNEL_NOT_FOUND:
                  value:
                    title: Provider Channel Not Found
                    status: 409
                    code: BRIDGE_PROVIDER_CHANNEL_0001
                EXTERNAL_USER_ALREADY_USE_THIS_CHANNEL:
                  value:
                    title: External User Already Use This Channel
                    status: 409
                    code: BRIDGE_CONVERSATION_0105
              schema:
                $ref: '#/components/schemas/Problem'
        '422':
          description: Contenido no procesable
          content:
            application/json:
              examples:
                ONBOARDING_TEMPLATE_MISSING_PARAMETERS:
                  value:
                    title: Onboarding Template Missing Parameters
                    status: 422
                    code: BRIDGE_CONVERSATION_0604
                ONBOARDING_TEMPLATE_UNKNOWN_PARAMETERS:
                  value:
                    title: Onboarding Template Unknown Parameters
                    status: 422
                    code: BRIDGE_CONVERSATION_0605
                ONBOARDING_TEMPLATE_PARAMETERS_NOT_SUPPORTED:
                  value:
                    title: Onboarding Template Parameters Not Supported
                    status: 422
                    code: BRIDGE_CONVERSATION_0606
                ONBOARDING_TEMPLATE_INVALID_PARAMETER_VALUES:
                  value:
                    title: Onboarding Template Invalid Parameter Values
                    status: 422
                    code: BRIDGE_CONVERSATION_0607
                ONBOARDING_CONFIGURED_TEMPLATE_REQUIRES_CALLER_INPUT:
                  value:
                    title: Onboarding Configured Template Requires Caller Input
                    status: 422
                    code: BRIDGE_CONVERSATION_0608
              schema:
                $ref: '#/components/schemas/Problem'
        '429':
          description: Demasiadas solicitudes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                WORKSPACE_BUDGET_EXHAUSTED:
                  value:
                    title: Too Many Requests
                    status: 429
                    code: BRIDGE_RATE_LIMIT_0001
      security:
        - x-api-key: []
components:
  schemas:
    CreateConversationRequest:
      properties:
        participants:
          $ref: '#/components/schemas/CreateParticipantsOnConversationRequest'
          title: Participants
          description: Participantes que se agregarán a la conversación.
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Nombre o título opcional de la conversación.
          examples:
            - Bridge Support Team
            - null
        status:
          $ref: '#/components/schemas/ConversationStatus'
          title: Status
          description: >-
            Estado inicial de la conversación: 'active' para conversaciones
            visibles y 'ghost' para conversaciones invisibles hasta la primera
            interacción.
          default: ACTIVE
          examples:
            - ACTIVE
        teamId:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Team Identifier
          description: >-
            UUID del equipo para la asignación por turnos (opcional y mutuamente
            excluyente con internalParticipants).
          examples:
            - 9fd1468d-e5ca-4ba3-98d1-13017e6f3808
        onboardingTemplates:
          items:
            $ref: '#/components/schemas/OnboardingTemplateRequest'
          type: array
          title: Onboarding Templates
          description: >-
            Plantillas ordenadas con las que abrir la conversación. Reemplazan
            la secuencia de inicio configurada en el workspace para esta
            conversación, en su totalidad o solo su primera plantilla, según la
            configuración del workspace; en el segundo caso, el resto de la
            secuencia configurada se envía después de las tuyas. La posición
            determina el orden. Omite este campo para conservar el valor
            predeterminado del workspace. Cada plantilla debe existir,
            pertenecer a tu workspace o al ámbito de la plataforma y, para
            plantillas de proveedor de WhatsApp, estar aprobada por Meta para la
            WhatsApp Business Account de la línea por la que se contacta a cada
            participante; de lo contrario, se rechaza la solicitud y no se crea
            ninguna conversación. Una plantilla cuyas variables necesiten
            valores que solo tú puedas proporcionar los recibe en los
            `parameters` de la entrada. Si una de las plantillas configuradas
            que se envían después de las tuyas necesita valores que solo pueda
            proporcionar quien llama, la solicitud se rechaza con 422
            `BRIDGE_CONVERSATION_0608`, con `extra.templateId` identificando esa
            plantilla y `extra.origin` establecido en `WORKSPACE_CONFIGURATION`.
            Cambiar la solicitud no ayudará: pide a un administrador del
            workspace que cambie la secuencia de inicio.
      additionalProperties: false
      type: object
      required:
        - participants
      title: CreateConversationRequest
      description: Cuerpo de la solicitud para crear una conversación.
    ConversationResponse:
      properties:
        id:
          type: string
          title: Identifier
          description: Identificador único de la conversación (UUID v4).
          examples:
            - b6cf1c4a-2b1e-4e63-8f3e-0f9d1a2a1234
        workspaceId:
          type: string
          title: Workspace Identifier
          description: Identificador único del workspace (UUID v4).
          examples:
            - b6cf1c4a-2b1e-4e63-8f3e-0f9d1a2a1234
        participants:
          $ref: '#/components/schemas/ConversationParticipantsResponse'
          title: Participants
          description: Participantes de la conversación.
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Nombre o título opcional de la conversación.
          examples:
            - Bridge Support Team
        status:
          anyOf:
            - $ref: '#/components/schemas/ConversationStatus'
            - type: 'null'
          title: Status
          description: >-
            Estado actual de la conversación: 'ACTIVE' para conversaciones
            visibles y 'GHOST' para conversaciones invisibles hasta la primera
            interacción.
          examples:
            - ACTIVE
        createdAt:
          type: string
          format: date-time
          title: Created At
          description: Fecha y hora de creación de la conversación.
          examples:
            - '2003-04-10T09:00:00.000Z'
        updatedAt:
          type: string
          format: date-time
          title: Updated At
          description: Fecha y hora de la última actualización de la conversación.
          examples:
            - '2003-04-10T09:00:00.000Z'
      type: object
      required:
        - id
        - workspaceId
        - participants
        - createdAt
        - updatedAt
      title: ConversationResponse
      description: Cuerpo de respuesta para los detalles de una conversación.
    Problem:
      properties:
        title:
          type: string
          title: Title
          description: Resumen breve del tipo de problema.
        status:
          type: integer
          title: Status
          description: >-
            Código de estado HTTP generado por el servidor de origen para esta
            instancia del problema.
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
          description: Explicación específica de esta instancia del problema.
        instance:
          anyOf:
            - type: string
            - type: 'null'
          title: Instance
          description: Referencia URI que identifica esta instancia del problema.
        traceId:
          anyOf:
            - type: string
            - type: 'null'
          title: Traceid
          description: ID de seguimiento para depuración.
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: >-
            Código para identificar el error; consulta la página de códigos de
            error para más detalles.
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Errors
          description: Lista de detalles de errores.
        extra:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Extra
          description: Información adicional sobre el problema.
      type: object
      required:
        - title
        - status
      title: Problem
      description: Objeto que representa el cuerpo de una respuesta Problem.
    CreateParticipantsOnConversationRequest:
      properties:
        externals:
          items:
            $ref: '#/components/schemas/ExternalUserIdentifierRequest'
          type: array
          title: Externals
          description: Lista de identificadores de usuarios externos.
        internals:
          items:
            $ref: '#/components/schemas/InternalUserIdentifierRequest'
          type: array
          title: Internals
          description: >-
            Lista de identificadores de usuarios internos (opcional y mutuamente
            excluyente con teamId).
      type: object
      title: CreateParticipantsOnConversationRequest
      description: Cuerpo de la solicitud de participantes al crear una conversación.
    ConversationStatus:
      type: string
      enum:
        - ACTIVE
        - GHOST
        - RELEASED
        - NOT_ASSIGNED_TO_HUMAN
        - BLOCKED
      title: ConversationStatus
    OnboardingTemplateRequest:
      properties:
        templateId:
          type: string
          title: Template Identifier
          description: Identificador de la plantilla del sistema que se enviará.
          examples:
            - 4061e74e-f6fe-4072-a760-3aec0b64f7a6
        parameters:
          additionalProperties:
            type: string
            maxLength: 1024
          propertyNames:
            maxLength: 128
          type: object
          maxProperties: 50
          title: Template Parameters
          description: >-
            Valores de las variables de esta plantilla, indexados por el `key`
            de la variable devuelto por `GET /templates/{templateId}`. Las
            variables marcadas con `callerMustSupply: true` son obligatorias:
            Bridge no tiene otra fuente para ellas. Las demás son opcionales; un
            valor enviado para una de ellas, como el nombre del Contact,
            reemplaza el valor por Contact y se utiliza para todos los Contacts
            de la conversación. Solo las plantillas de proveedor de WhatsApp
            aceptan parámetros. Si falta un valor obligatorio o está en blanco,
            una clave no corresponde a ninguna variable de la plantilla o la
            plantilla no admite parámetros, la solicitud se rechaza con 422 y no
            se crea ninguna conversación: `BRIDGE_CONVERSATION_0604` enumera las
            variables que faltan en `extra.missingVariables` como `[{key,
            label}]`, `0605` enumera las claves desconocidas en
            `extra.unknownKeys` y `0606` identifica la plantilla en
            `extra.templateId`. Los valores también deben cumplir las reglas de
            WhatsApp: sin saltos de línea ni tabulaciones, no más de cuatro
            espacios consecutivos, el encabezado con tu valor dentro de 60
            caracteres, el enlace de un botón URL con tu valor dentro de 2.000 y
            el texto del cuerpo más tus valores dentro de 1.024. Bridge rechaza
            los valores que puede detectar que incumplen estas reglas con
            `BRIDGE_CONVERSATION_0607`, identificando la plantilla en
            `extra.templateId` y enumerando cada valor inválido en
            `extra.invalidVariables` como `[{key, label, reason}]`. `reason` es
            la primera regla que incumple el valor: `NEWLINE`, `TAB`,
            `CONSECUTIVE_SPACES`, `TOO_LONG` (encabezado o botón URL) o
            `BODY_TOO_LONG` (el cuerpo supera el límite, por lo que se enumeran
            todos los valores del cuerpo que enviaste). Los valores que Bridge
            rellena después, como el nombre del Contact, también cuentan para el
            límite del cuerpo, así que deja espacio para ellos. Como máximo, 50
            parámetros por plantilla, con claves de hasta 128 caracteres y cada
            valor de hasta 1.024.
          examples:
            - delivery_date: 3 de octubre
              order_number: A-10492
      additionalProperties: false
      type: object
      required:
        - templateId
      title: OnboardingTemplateRequest
      description: >-
        Entrada del reemplazo de onboarding; su posición en la lista determina
        el orden.
    ConversationParticipantsResponse:
      properties:
        externals:
          items:
            $ref: '#/components/schemas/ExternalParticipant'
          type: array
          title: Externals
          description: Lista de participantes externos.
        internals:
          items:
            $ref: '#/components/schemas/InternalParticipant'
          type: array
          title: Internals
          description: Lista de participantes internos.
      type: object
      required:
        - externals
        - internals
      title: ConversationParticipantsResponse
      description: Cuerpo de respuesta para los participantes de una conversación.
    ExternalUserIdentifierRequest:
      properties:
        identifier:
          type: string
          title: Identifier
          description: Valor del identificador del usuario.
          examples:
            - john.doe@example.com
            - '+13802098869'
            - 37673840-6259-40f9-bbe5-a7db40f8e3cf
        identifierType:
          type: string
          enum:
            - ID
            - EMAIL
            - PHONE
          title: Identifier Type
          description: Tipo de identificador de usuarios externos (ID, EMAIL o PHONE).
          examples:
            - EMAIL
            - PHONE
            - ID
        messageProviderType:
          anyOf:
            - $ref: '#/components/schemas/MessageProviderType'
            - type: 'null'
          title: Message Provider Type
          description: Tipo de proveedor de mensajería de la conversación.
          examples:
            - WHATSAPP
            - null
        providerChannelId:
          anyOf:
            - type: string
            - type: 'null'
          title: Provider Channel Identifier
          description: >-
            ID del canal del proveedor que usará Bridge para comunicarse con el
            usuario.
        brandId:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand Identifier
          description: >-
            Marca propietaria de la línea corporativa utilizada para contactar
            al usuario. Cuando el workspace tiene al menos una línea con marca,
            la selección automática de líneas se limita a esta marca y la
            solicitud debe incluir brandId o providerChannelId; se rechaza si no
            incluye ninguno. Se ignora cuando el workspace no tiene líneas con
            marca.
      type: object
      required:
        - identifier
        - identifierType
      title: ExternalUserIdentifierRequest
      description: Cuerpo para identificar a un usuario externo en Bridge.
    InternalUserIdentifierRequest:
      properties:
        identifier:
          type: string
          title: Identifier
          description: Valor del identificador del usuario.
          examples:
            - john.doe@example.com
            - '+13802098869'
            - 37673840-6259-40f9-bbe5-a7db40f8e3cf
        identifierType:
          $ref: '#/components/schemas/InternalParticipantIdentifierType'
          title: Identifier Type
          description: Tipo de identificador de usuarios internos (ID o EMAIL).
          examples:
            - EMAIL
            - ID
      type: object
      required:
        - identifier
        - identifierType
      title: InternalUserIdentifierRequest
      description: Cuerpo para identificar a un usuario interno en Bridge.
    ExternalParticipant:
      properties:
        identifier:
          type: string
          title: Identifier
          description: Valor del identificador del participante.
          examples:
            - ef7ee722-5f95-415a-9a98-81eeae178b11
        identifierType:
          type: string
          enum:
            - ID
            - EMAIL
            - PHONE
          title: Identifier Type
          description: Tipo de identificador de participantes externos (ID, EMAIL o PHONE).
          examples:
            - EMAIL
            - PHONE
            - ID
        role:
          $ref: '#/components/schemas/UserType'
          title: Role
          description: Rol del participante en la conversación.
          examples:
            - EXTERNAL
            - INTERNAL
        joinedAt:
          type: string
          format: date-time
          title: Joined At
          description: Fecha y hora en que el participante se unió a la conversación.
          examples:
            - '2004-04-10T09:00:00.000Z'
        lastSeenAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Seen At
          description: Fecha y hora de la última actividad observada del participante.
          examples:
            - null
            - '2004-04-10T09:00:00.000Z'
      type: object
      required:
        - identifier
        - identifierType
        - role
        - joinedAt
      title: Participant
      description: Objeto que representa al participante externo de la conversación.
    InternalParticipant:
      properties:
        identifier:
          type: string
          title: Identifier
          description: Valor del identificador del participante.
          examples:
            - ef7ee722-5f95-415a-9a98-81eeae178b11
        identifierType:
          $ref: '#/components/schemas/InternalParticipantIdentifierType'
          title: Identifier Type
          description: Tipo de identificador de participantes internos (ID o EMAIL).
          examples:
            - EMAIL
            - ID
        role:
          $ref: '#/components/schemas/UserType'
          title: Role
          description: Rol del participante en la conversación.
          examples:
            - EXTERNAL
            - INTERNAL
        joinedAt:
          type: string
          format: date-time
          title: Joined At
          description: Fecha y hora en que el participante se unió a la conversación.
          examples:
            - '2004-04-10T09:00:00.000Z'
        lastSeenAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Seen At
          description: Fecha y hora de la última actividad observada del participante.
          examples:
            - null
            - '2004-04-10T09:00:00.000Z'
      type: object
      required:
        - identifier
        - identifierType
        - role
        - joinedAt
      title: Participant
      description: Objeto que representa al participante interno de la conversación.
    MessageProviderType:
      type: string
      enum:
        - WHATSAPP
        - SMS
        - TELEGRAM
        - INSTAGRAM
        - TWITTER
        - LINE
        - FACEBOOK
        - IMESSAGE
        - WHATSAPP_TEST
        - HEYGIA
      title: MessageProviderType
    InternalParticipantIdentifierType:
      type: string
      enum:
        - ID
        - EMAIL
      title: InternalParticipantIdentifierType
    UserType:
      type: string
      enum:
        - INTERNAL
        - EXTERNAL
        - BOT
      title: UserType
  securitySchemes:
    x-api-key:
      type: apiKey
      description: Copy the API key as provided by the Bridge Console.
      in: header
      name: x-api-key

````

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