Skip to content

Diccionario de datos ​

En esta guía encontrarás el diccionario de datos de las principales tablas utilizadas en las Bases de Datos de uContact. Este recurso te permitirá comprender la estructura, los tipos de datos y el propósito de cada columna, facilitando así la integración de desarrollos personalizados o la consulta de información relevante del sistema.

ccrepo.whatsapp_messages ​

Esta habla se utiliza para almacenar todos los mensajes de WhatsApp gestionados a través de uContact, ya sean entrantes o salientes, manuales o enviados mediante Hubs Salientes.

Nombre del campoTipo de datoDescripción
idbigintEs el identificador único y autoincremental para cada registro en la tabla. Es la clave primaria.
id_whatsappvarchar(200)Es el ID único del mensaje proporcionado por el proveedor de WhatsApp (ej. Gupshup, Meta). Este ID es fundamental para el seguimiento. Puede estar vacío en algunos registros iniciales de salida.
timedatetimeEs la fecha y hora en que el mensaje fue procesado por uContact. Siempre estará en zona horaria UTC-0. Ejemplo: 2025-05-28 15:25:59
directionvarchar(8)Indica la dirección del mensaje. Valores Posibles:
- outbound: Mensaje enviado desde uContact al cliente.
- inbound: Mensaje recibido del cliente.
calleridvarchar(100)Es el número de teléfono del contacto de WhatsApp en formato internacional sin el caracter “+”
messagetextEs el contenido del mensaje. Para mensajes de texto libre, es el texto tal cual. Para plantillas (HSM), el formato depende del proveedor: puede ser un objeto JSON con los datos de la plantilla, o un string con los valores separados por “;” (nombre de la plantilla, idioma, tipo y parámetros).
campaignvarchar(200)Es el nombre de la campaña de uContact desde donde se recibió o se envió el mensaje.
agentvarchar(45)Es el nombre de usuario del usuario que envió el mensaje en caso de mensajes salientes, para mensajes entrantes, es el usuario que tenia la interacción al momento de recibir el mensaje. Para mensajes enviados desde Hubs Salientes este campo es vacío.
resultvarchar(900)Es el estado de entrega o resultado del procesamiento del mensaje. Valores Posibles:
- sent: Enviado.
- delivered: Entregado al destinatario.
- error: Mensaje falló al ser entregado.
- read: Mensaje leído por el cliente.
- RECEIVED: Mensaje entrante recibido del cliente.
- deleted: Mensaje eliminado por el proveedor.
guidvarchar(64)Es el guid de la interacción de uContact asociada al mensaje.
attachmentsjsonAlmacena información sobre los archivos adjuntos en el mensaje (imágenes, documentos, etc.) en formato JSON. Cada archivo representa la ruta de almacenamiento del archivo en la instancia. Ejemplo: ["20250606/imagen.jpg"]
quotedidvarchar(200)Si el mensaje es una respuesta, este campo contiene el id_whatsapp del mensaje original que se está citando. Es vacío si no es una respuesta.
typevarchar(20)Tipo de mensaje de WhatsApp (enum interno WhatsappMessageType, p.ej. texto, plantilla, multimedia).
datajsonInformación adicional asociada al mensaje que no tiene una columna propia. Por ejemplo, la descripción del error cuando el envío falla.

ccrepo.interactions ​

Esta tabla almacena la información estadística y contextual de cada interacción gestionada por uContact (llamadas, mensajes, correos, etc.), en todos los canales. Cada registro representa una única interacción identificada por su guid.

Nombre del campoTipo de datoDescripción
idbigintIdentificador interno autoincremental. Es la clave primaria.
guidvarchar(80)Identificador único de la interacción (no es la clave primaria de la tabla).
start_datedatetimeFecha y hora en que comenzó la interacción. Almacenada en zona horaria UTC-0.
end_datedatetimeFecha y hora en que finalizó la interacción. Almacenada en zona horaria UTC-0.
campaignvarchar(45)Nombre de la campaña de uContact a la que pertenece la interacción.
channelvarchar(80)Canal por el que se desarrolló la interacción (telephony, webchat, whatsapp, email, sms, instagram, messenger).
disposition_idvarchar(64)Identificador de la tipificación (disposición) asignada a la interacción.
agentvarchar(255)Nombre de usuario del agente que atendió la interacción.
datajsonObjeto JSON con el estado y los metadatos completos de la interacción. Su estructura interna —incluidas las variables personalizadas— se describe más abajo.
dialerListvarchar(100)Nombre de la lista de marcador desde la que se originó la interacción, cuando fue lanzada por un Hub Saliente. null en caso contrario.
dialerIdintIdentificador numérico del marcador (dialer) del Hub Saliente que originó la interacción.
dispositionsIdsvarchar(256)Lista de IDs de tipificación separados por coma, cuando la interacción tuvo múltiples tipificaciones.
contactIdvarchar(200)Identificador del contacto asociado a la interacción.
clientIdvarchar(200)Identificador del cliente (número de teléfono para SMS/WhatsApp/telefonía, correo para Email/Webchat).
connectorIdvarchar(200)Identificador del conector del canal (número origen, DID, etc.) utilizado por la interacción.
finishedtinyintIndica si la interacción ya finalizó.

Estructura del campo data ​

El campo data almacena un objeto JSON con dos tipos de información:

  1. Campos nativos de la interacción en la raíz del objeto — valores propios del canal y de la interacción en sí (dirección, duraciones, tiempos de respuesta, asunto, etc.). Son gestionados por el sistema y deben tratarse como solo lectura.
  2. Un objeto data anidado que agrupa las variables personalizadas de la interacción. Cada variable se ubica en una sección según dónde fue generada, de modo que las variables personalizadas nunca se mezclan con los campos nativos.

Las secciones dentro de data.data son:

SecciónDescripción
automationVariables personalizadas definidas y seteadas durante la ejecución de un flujo de bot o de un flujo IVR, a través de la actividad Set data.
outboundhubLos parámetros personalizados del contacto cargados en la lista.
aiagentVariables personalizadas generadas por el AI Agent durante la interacción.

Ejemplo del campo data:

json
{
  "guid": "a1b2c3d4-...",
  "clientid": "59899123456",
  "clientname": "John Doe",
  "channel": "whatsapp",
  "campaign": "Sales",
  "direction": "inbound",
  "holdtime": 12,
  "duration": 184,
  "subject": "...",
  "data": {
    "automation":  { "varA": "valor A", "varB": "valor B" },
    "outboundhub": { "policyNumber": "12345", "agentName": "Jane" },
    "aiagent":     { "intent": "billing", "sentiment": "neutral" }
  }
}

Acceder a las variables personalizadas desde un formulario custom

Cuando un formulario custom lee la interacción con getInteraction(), la propiedad data se expone como interaction.data, por lo que las variables personalizadas quedan disponibles directamente bajo su sección:

js
interaction.data.automation.varA
interaction.data.outboundhub.policyNumber
interaction.data.aiagent.intent

El bot/IVR genera las variables → un formulario custom las lee mediante getInteraction().data. Consulta las Variables de la actividad Bot start para ver cómo se producen esas variables → se persisten bajo data.data.automation en la interacción.

uContact by net2phone