Skip to content

Interactions API

Esta API permite consultar y obtener datos de interacciones de uContact. A través de sus endpoints, es posible obtener listados paginados de interacciones filtrados por rango de fechas o identificador de cliente, y recuperar el detalle completo de una interacción específica.

Obtener interacciones

Este endpoint retorna una lista paginada con un resumen de las interacciones.

  • Método: GET
  • URL: https://<dominio>.ucontactcloud.com/api/interactions

Descripción general

Retorna una lista paginada de resúmenes de interacciones filtrada por los parámetros proporcionados. Es obligatorio enviar ya sea un rango de fechas (initialdate y finaldate) o un contactId. Los parámetros client, clientId y clientName pueden usarse como filtros adicionales opcionales. Si no se especifican filtros de permisos en el cuerpo de la solicitud, los resultados se filtran según los permisos del usuario que realiza la petición.

Parámetros de consulta

ParámetroTipoDescripciónValores disponiblesEjemplo
initialdateString (requerido*)Inicio del rango de fechas para filtrar interaccionesCualquier fecha en formato yyyy-MM-dd HH:mm:ss, debe ser anterior o igual a finaldate2025-11-01 00:00:00
finaldateString (requerido*)Fin del rango de fechas para filtrar interaccionesCualquier fecha en formato yyyy-MM-dd HH:mm:ss, debe ser anterior o igual a hoy y posterior o igual a initialdate2025-12-15 23:59:59
formatString (opcional)Formato de fecha utilizado para interpretar initialdate y finaldate cuando se envía un formato personalizadoCualquier patrón de fecha válido. Por defecto: yyyy-MM-dd HH:mm:ssyyyy-MM-dd
contactIdString (requerido*)Identificador de contacto usado para filtrar interacciones. Puede usarse en lugar de un rango de fechasCualquier cadena de textotest
clientString (opcional)Filtra interacciones donde clientId o clientName comienza con el valor proporcionadoCualquier cadena de textotest
clientIdString (opcional)Filtra interacciones donde clientId comienza con el valor proporcionadoCualquier cadena de texto123
clientNameString (opcional)Filtra interacciones donde clientName comienza con el valor proporcionado. En algunas interacciones este campo puede estar ausente (por ejemplo, webchat)Cualquier cadena de textoJohn
timezoneString (opcional)Zona horaria utilizada para interpretar el rango de fechas. Por defecto UTC si no se especificaCualquier zona horaria IANA válidaAmerica/Montevideo
channelsString (opcional)Filtro por canal, separados por comasemail, telephony, sms, whatsapp, webchat, instagram, messengertelephony,sms,whatsapp,email
connectedInteractionString (opcional)Filtra interacciones según si tuvieron un agente o noWITH_AGENT, WITHOUT_AGENTWITH_AGENT
subjectString (opcional)Filtra por asunto de la interacción. Solo funciona con interacciones de tipo emailSupport request
interactionTypeString (opcional)Filtra por dirección de la interacciónINBOUND, OUTBOUND, OUTBOUND_HUBINBOUND
guidString (opcional)Filtra por el identificador único de la interacción (UUID)Cualquier UUID válidob9afae52-e3b4-4c96-a568-39e90e78a737
connectorIdString (opcional)Filtra por el identificador del conector utilizado en la interacciónCualquier valor de texto o numérico234324234
indexInteger (requerido)Número de página para la paginación>= 01
rowsInteger (requerido)Cantidad de resultados por página> 025
ordersArray (opcional)Array JSON de objetos con criterios de ordenamiento, con las propiedades field y direction[{"field":"start_date","direction":"asc"}]

*Es obligatorio enviar initialdate y finaldate juntos, o bien contactId.

Cuerpo de la solicitud

El cuerpo de la solicitud es opcional y puede usarse para filtrar resultados por recursos específicos. Si se omite, la API retorna resultados filtrados según los permisos del usuario que realiza la petición. Los filtros users y automations se combinan cuando ambos están presentes.

  • Content-Type: application/json
  • Cuerpo: Un objeto JSON con cualquiera de los siguientes filtros opcionales:
json
{
  "users": ["agent1", "agent2"],
  "campaigns": ["Campaign_1"],
  "dispositions": [1, 4, 6, 7],
  "outboundHubs": ["hub1"],
  "automations": ["automation1"]
}
PropiedadTipoDescripción
usersArray[String] (opcional)Lista de nombres de usuario de agentes para filtrar. Se combina con automations cuando ambos están presentes
campaignsArray[String] (opcional)Lista de nombres de campañas para filtrar
dispositionsArray[Integer] (opcional)Lista de IDs de disposición. Filtra interacciones donde al menos un segmento tiene una de estas disposiciones
outboundHubsArray[String] (opcional)Lista de nombres de hubs de salida para filtrar
automationsArray[String] (opcional)Lista de nombres de automatizaciones para filtrar. Se combina con users cuando ambos están presentes

Respuesta

Retorna un objeto de resultado paginado.

Cuerpo de la respuesta

CampoTipoDescripción
resultArrayArray de objetos con el resumen de cada interacción
indexIntegerÍndice de página actual
rowsIntegerCantidad de filas por página
totalIntegerTotal de interacciones que coinciden con la consulta
serverDateStringFecha del servidor al momento de la respuesta

Cada objeto en result representa una interacción. Contiene la información general de la interacción e incluye un array segments donde cada segmento especifica el agente y la campaña involucrados en ese segmento.

CampoTipoDescripción
guidStringIdentificador único de la interacción
channelStringCanal de comunicación utilizado (ej. telephony, email, whatsapp, sms)
segmentsArrayLista de segmentos que componen la interacción
directionStringDirección de la interacción (inbound o outbound)
timingsObjectInformación de tiempos de la interacción
clientObjectInformación sobre el cliente involucrado
flagsObjectIndicadores booleanos que describen el estado de la interacción
dispositionObject/nullDisposición establecida al finalizar la interacción, null si no fue definida
dialerObject/nullInformación del marcador si la interacción fue creada por un hub de salida, null en caso contrario
connectorIdStringIdentificador del conector utilizado

Objetos en segments:

CampoTipoDescripción
campaignStringNombre de la campaña para este segmento
agentStringNombre de usuario del agente que atendió este segmento

Objeto timings:

CampoTipoDescripción
startDateStringFecha y hora en que comenzó la interacción
endDateStringFecha y hora en que finalizó la interacción
durationIntegerDuración total de la interacción en segundos

Objeto client:

CampoTipoDescripción
idStringIdentificador del cliente
nameStringNombre del cliente
contactIdStringIdentificador de contacto en el CRM vinculado

Objeto flags:

CampoTipoDescripción
holidayBooleanSi la interacción ocurrió en un día festivo
outOfTimeBooleanSi la interacción ocurrió fuera del horario de atención
finishedBooleanSi la interacción ha finalizado

Objeto disposition (cuando no es null):

CampoTipoDescripción
idIntegerIdentificador de la disposición
commentStringComentario dejado por el agente
levelsArray[String]Niveles de disposición seleccionados

Objeto dialer (cuando no es null):

CampoTipoDescripción
idIntegerIdentificador del marcador
nameStringNombre del marcador
listStringNombre de la lista del marcador utilizada

Ejemplo de respuesta

json
{
  "result": [
    {
      "guid": "a3f1c2d4-7e89-4b56-9f01-2e3a4b5c6d7e",
      "channel": "telephony",
      "segments": [
        { "campaign": "inbound_support", "agent": "jsmith" },
        { "campaign": "inbound_support", "agent": "mjohnson" }
      ],
      "direction": "inbound",
      "timings": {
        "startDate": "2025-10-21 09:14:22",
        "endDate": "2025-10-21 09:23:15",
        "duration": 533
      },
      "client": { "id": "15551234567", "name": "Sarah Connor", "contactId": "crm_00483" },
      "flags": {
        "holiday": false,
        "outOfTime": false,
        "finished": true
      },
      "disposition": {
        "id": 12,
        "comment": "Customer requested a callback for next week.",
        "levels": ["Support", "Follow-up"]
      },
      "dialer": null,
      "connectorId": "support_trunk_01"
    }
  ],
  "index": 1,
  "rows": 5,
  "total": 348,
  "serverDate": "2025-10-21 09:30:00"
}

Códigos de estado

CódigoDescripción
200Éxito
400Solicitud incorrecta – parámetros faltantes o inválidos, o solicitud de un recurso sin permiso
500Error interno del servidor – ej. consulta mal formada

Obtener detalle de una interacción

Este endpoint retorna el detalle completo de una interacción específica.

  • Método: GET
  • URL: https://<dominio>.ucontactcloud.com/api/interactions/id/<guid>

Descripción general

Retorna todos los segmentos de una interacción específica identificada por su GUID. Cada segmento representa una etapa del ciclo de vida de la interacción — incluyendo encolado, atención por parte del agente y transferencias — con información detallada de tiempos, cliente, eventos, disposición y transferencias.

Parámetros de ruta

ParámetroTipoDescripción
guidStringEl identificador único de la interacción

Respuesta

Retorna un objeto de resultado que contiene un array de objetos con el detalle de cada segmento.

Cuerpo de la respuesta

CampoTipoDescripción
resultArrayArray de objetos con el detalle de cada segmento
indexIntegerSiempre 0
rowsIntegerSiempre 0
totalIntegerSiempre 0
serverDateStringFecha del servidor al momento de la respuesta

Cada objeto en result representa un segmento y contiene:

CampoTipoDescripción
segmentIdStringIdentificador único del segmento
campaignStringNombre de la campaña asociada a este segmento
channelStringCanal de comunicación (ej. telephony, email, whatsapp, sms)
directionStringDirección de la interacción (inbound o outbound)
connectorIdStringIdentificador del conector utilizado
agentStringNombre de usuario del agente que atendió este segmento
assignedAgentStringNombre de usuario del agente al que fue asignada la interacción
originString/nullOrigen del segmento. Valores posibles: backToQueue, null, campaign, endBot, agent
subjectStringAsunto de la interacción (solo aplica para email)
inIntegerCantidad de mensajes entrantes en este segmento
outIntegerCantidad de mensajes salientes en este segmento
dataObjectInformación adicional sobre la interacción, como metadatos específicos del canal y variables
eventsArrayLista de eventos ocurridos durante el segmento (ej. Parked, Hold)
timingsObjectInformación detallada de tiempos del segmento
clientObjectInformación sobre el cliente involucrado
flagsObjectIndicadores booleanos que describen el estado del segmento
dispositionObject/nullDisposición establecida al finalizar el segmento, null si no fue definida
dialerObject/nullInformación del marcador si la interacción fue creada por un hub de salida, null en caso contrario
transferObject/nullInformación de transferencia si se realizó una transferencia, null en caso contrario
commentsArrayLista de comentarios añadidos al segmento

Objeto timings:

CampoTipoDescripción
startDateStringFecha y hora en que comenzó el segmento
endDateStringFecha y hora en que finalizó el segmento
dateAttendedStringFecha y hora en que la interacción fue atendida por primera vez
dateAttendedAgentStringFecha y hora en que un agente atendió la interacción por primera vez
dateFirstResponseStringFecha y hora de la primera respuesta del agente
durationIntegerDuración total del segmento en segundos
holdtimeIntegerTiempo total que la interacción estuvo en espera en segundos
attentionTimeIntegerTiempo que el agente dedicó activamente a la interacción en segundos
firstResponseTimeIntegerTiempo hasta la primera respuesta en segundos
artIntegerTiempo de respuesta promedio en segundos

Objeto client:

CampoTipoDescripción
idStringIdentificador del cliente
nameStringNombre visible del cliente
userNameStringNombre de usuario del cliente
contactIdStringIdentificador de contacto en el CRM vinculado

Objeto flags:

CampoTipoDescripción
finishedBooleanSi el segmento ha finalizado
abandonBooleanSi la interacción fue abandonada por el cliente
finishedByTimeoutBooleanSi la interacción fue finalizada por tiempo de espera agotado
finishedByClientBooleanSi la interacción fue finalizada por el cliente
attendedByBotBooleanSi la interacción fue atendida por un bot
holidayBooleanSi la interacción ocurrió en un día festivo
outOfTimeBooleanSi la interacción ocurrió fuera del horario de atención

Objeto disposition (cuando no es null):

CampoTipoDescripción
idStringIdentificador de la disposición
commentStringComentario dejado por el agente
levelsArray[String]Niveles de disposición seleccionados

Objeto transfer (cuando no es null):

CampoTipoDescripción
typeStringTipo de transferencia (attended o blind)
destinationTypeStringTipo de destino (campaign, agent, external, etc.)
destinationStringNombre de la campaña o agente de destino
successfulBooleanSi la transferencia se completó exitosamente

Objeto dialer (cuando no es null):

CampoTipoDescripción
idIntegerIdentificador del marcador
nameStringNombre del marcador

Cada objeto en events:

CampoTipoDescripción
eventStringTipo de evento ocurrido (ej. hold)
startTimeStringFecha y hora en que comenzó el evento
endTimeStringFecha y hora en que finalizó el evento

Ejemplo de respuesta

json
{
  "result": [
    {
      "segmentId": "10041",
      "campaign": "inbound_support",
      "channel": "telephony",
      "direction": "inbound",
      "connectorId": "234324234",
      "agent": "Agent1",
      "assignedAgent": "",
      "origin": "",
      "subject": "",
      "in": 0,
      "out": 0,
      "data": {},
      "events": [],
      "timings": {
        "startDate": "2025-10-21 09:14:22",
        "endDate": "2025-10-21 09:15:03",
        "dateAttended": "2025-10-21 09:14:22",
        "dateAttendedAgent": "",
        "dateFirstResponse": "",
        "duration": 41,
        "holdtime": 0,
        "attentionTime": 0,
        "firstResponseTime": 0,
        "art": 0
      },
      "client": {
        "id": "15551234567",
        "name": "Sarah Connor",
        "userName": "",
        "contactId": "crm_00483"
      },
      "flags": {
        "finished": false,
        "abandon": false,
        "finishedByTimeout": false,
        "finishedByClient": false,
        "attendedByBot": false,
        "holiday": false,
        "outOfTime": false
      },
      "disposition": null,
      "dialer": null,
      "transfer": null,
      "comments": []
    },
    {
      "segmentId": "10042",
      "campaign": "inbound_support",
      "channel": "telephony",
      "direction": "inbound",
      "connectorId": "234324234",
      "agent": "Agent1",
      "assignedAgent": "",
      "origin": "campaign",
      "subject": "",
      "in": 0,
      "out": 0,
      "data": {},
      "events": [
        { "event": "hold", "startTime": "2025-10-21 09:18:05", "endTime": "2025-10-21 09:19:12" }
      ],
      "timings": {
        "startDate": "2025-10-21 09:15:03",
        "endDate": "2025-10-21 09:23:15",
        "dateAttended": "2025-10-21 09:15:11",
        "dateAttendedAgent": "2025-10-21 09:15:11",
        "dateFirstResponse": "2025-10-21 09:15:14",
        "duration": 492,
        "holdtime": 67,
        "attentionTime": 425,
        "firstResponseTime": 3,
        "art": 28
      },
      "client": {
        "id": "15551234567",
        "name": "Sarah Connor",
        "userName": "",
        "contactId": "crm_00483"
      },
      "flags": {
        "finished": true,
        "abandon": false,
        "finishedByTimeout": false,
        "finishedByClient": false,
        "attendedByBot": false,
        "holiday": false,
        "outOfTime": false
      },
      "disposition": {
        "id": "12",
        "comment": "Customer requested a callback for next week.",
        "levels": ["Support", "Follow-up"]
      },
      "dialer": null,
      "transfer": {
        "type": "attended",
        "destinationType": "campaign",
        "destination": "billing_support",
        "successful": false
      },
      "comments": []
    }
  ],
  "index": 0,
  "rows": 0,
  "total": 0,
  "serverDate": "2026-03-10 16:38:00"
}

Códigos de estado

CódigoDescripción
200Éxito
400Solicitud incorrecta – parámetros faltantes o inválidos, o solicitud de un recurso sin permiso
404Interacción no encontrada
500Error interno del servidor – ej. consulta mal formada

uContact by net2phone