Upnify Documentación API
CRM · /analitica/eventos

Analítica

Sucesos comerciales observados

GET/analitica/eventos

Consulta sucesos CRM persistidos, por contacto, entidad, tipo y periodo. Requiere un lote o un intervalo de hasta 366 días. No reconstruye cambios desde estados actuales, fechas agregadas o semejanzas de nombres.

Parámetros

NombreTipoValidaciónDescripción
paramsvarchar
paginavarcharRequeridoEntero entre 1 y 2147483647. Página de resultados; no admite descarga ilimitada.
cantidadRegistrosvarcharRequeridoEntero de 1 a 200. Cantidad máxima de filas de la página.
tkContactosvarcharHasta 100 tokens separados por coma, máximo 128 caracteres cada uno y 8192 en total. Los duplicados no multiplican resultados.
fechaIniciovarcharInicio incluido, ISO 8601 con offset; requiere fechaFin. Se requiere un intervalo de hasta 366 días o tkContactos.
fechaFinvarcharFin excluido, ISO 8601 con offset, posterior al inicio y hasta 366 días después. Requiere fechaInicio.
fechaBasevarcharRequeridoValor habilitado: evento, aplicado a la fecha guardada en el suceso.
ordenvarcharRequeridoascendente o descendente por creación, con desempate estable por identidad.
fuentevarcharRequeridotodas o suceso; la fuente habilitada es el registro de sucesos CRM.
tipoEventovarcharcreacion, reasignacion, cambioFase, conversion, descarte, reactivacion, nota, seguimiento, edicion, eliminacion, compartido, noCompartido, etiquetado, fusion, completado, cancelado, comunicacion o desconocido.
entidadvarcharRequeridotodas, contacto, oportunidad, venta, cita o tarea.
tkEntidadvarcharToken de una entidad concreta. Requiere entidad distinta de todas y mantiene los filtros de contacto/periodo. Una entidad no visible o inexistente devuelve 404.

Respuesta

NombreTipoDescripción
idEventoStringIdentidad estable y única del suceso dentro de la cuenta.
fuenteStringsuceso.
idRegistroFuenteStringIdentidad opaca del registro fuente.
tkEventoStringToken público persistido del suceso; puede ser null.
tipoFuenteIntegerCódigo numérico original del suceso; puede ser null.
tipoEventoStringTipo normalizado según el catálogo comprobado; desconocido cuando no hay correspondencia acreditada.
entidadStringEntidad principal observada: contacto, oportunidad, venta, cita o tarea.
tkProspectoStringContacto asociado cuando sólo existe uno en el conjunto consultado; null si hay varios.
contactosRelacionadosArray<Object>Contactos autorizados enlazados al mismo suceso y al lote; cada objeto contiene tkProspecto. No multiplica filas.
tkOportunidadStringOportunidad relacionada y perteneciente al contacto, o null.
tkVentaStringVenta relacionada y autorizada; puede ser null.
tkCitaStringCita relacionada y autorizada; puede ser null.
tkTareaStringTarea relacionada y autorizada; puede ser null.
tkActorStringnull si el registro no acredita al actor. No se sustituye por el responsable actual.
tipoActorStringdesconocido cuando la fuente no permite acreditar al actor.
tkUsuarioRegistroStringUsuario asociado al registro; puede ser responsable y no demuestra autoría.
tkUsuarioTokenOrigenStringUsuario de token de origen conservado por la fuente; null si está ausente. No se interpreta como responsable anterior ni actor comprobado.
valorAnteriorStringnull: la fuente no conserva un valor anterior acreditado.
valorNuevoStringtkUsuario destino persistido en una reasignación; null si no está guardado o no aplica.
campoModificadoStringtkUsuario para reasignación; null para otros tipos sin valores guardados.
descripcionStringDescripción permitida, hasta 512 caracteres; null para comunicaciones o tipos no clasificados.
contenidoTruncadoBooleanIndica que el texto fuente supera el máximo de 512 caracteres.
fechaEventoStringInstante propio de la actividad con zona explícita; null si no se puede determinar.
fechaRegistroStringnull: no existe una fecha independiente de inserción acreditada.
fechaActualizacionStringFecha de modificación de esta fuente cuando existe; de otro modo null.
fechaOriginalStringFecha original del evento, incluso cuando no se puede convertir; puede ser null.
baseTemporalStringevento o desconocido según la presencia de fecha fuente.
coberturaObjectEstado, fuentes consultadas, capacidadesFaltantes e integridadHistorica.
advertenciasArray<Object>Lista de objetos con codigo, mensaje y fuente que explican límites de cobertura.
consistenciaStringSiempre sinInstantanea; los cambios concurrentes pueden alterar la navegación.
fechaGeneracionStringInstante de generación de la respuesta, con zona explícita.
Row-CountIntegerTotal del conjunto autorizado y filtrado, antes de paginar.

Solicitud

Sucesos comerciales observados de un contacto

curl --request GET --url 'https://api.upnify.com/v4/analitica/eventos?tkContactos=P-EJEMPLO&cantidadRegistros=3' --header 'token: 00000000-0000-4000-8000-000000000001'

Respuesta

HTTP 200; Row-Count: 4

JSON
[
  [
    {
      "idEvento": "suceso:5",
      "fuente": "suceso",
      "idRegistroFuente": "suceso:5",
      "tkEvento": "SUC-EJEMPLO",
      "tipoFuente": 9,
      "tipoEvento": "creacion",
      "entidad": "venta",
      "tkProspecto": "P-EJEMPLO",
      "contactosRelacionados": [
        {
          "tkProspecto": "P-EJEMPLO"
        }
      ],
      "tkOportunidad": "O-EJEMPLO",
      "tkVenta": "V-EJEMPLO",
      "tkCita": null,
      "tkTarea": null,
      "tkActor": null,
      "tipoActor": "desconocido",
      "tkUsuarioRegistro": "U-EJEMPLO",
      "tkUsuarioTokenOrigen": null,
      "valorAnterior": null,
      "valorNuevo": null,
      "campoModificado": null,
      "descripcion": "Venta sintetica",
      "contenidoTruncado": false,
      "fechaEvento": "2026-09-12T16:00:00Z",
      "fechaRegistro": null,
      "fechaActualizacion": "2026-09-22T02:45:31.617Z",
      "fechaOriginal": "2026-09-12T10:00:00",
      "baseTemporal": "evento"
    },
    {
      "idEvento": "suceso:2",
      "fuente": "suceso",
      "idRegistroFuente": "suceso:2",
      "tkEvento": "SUC-EJEMPLO",
      "tipoFuente": 5,
      "tipoEvento": "reasignacion",
      "entidad": "contacto",
      "tkProspecto": "P-EJEMPLO",
      "contactosRelacionados": [
        {
          "tkProspecto": "P-EJEMPLO"
        }
      ],
      "tkOportunidad": null,
      "tkVenta": null,
      "tkCita": null,
      "tkTarea": null,
      "tkActor": null,
      "tipoActor": "desconocido",
      "tkUsuarioRegistro": "U-EJEMPLO",
      "tkUsuarioTokenOrigen": null,
      "valorAnterior": null,
      "valorNuevo": "U-EJEMPLO",
      "campoModificado": "tkUsuario",
      "descripcion": "Reasignacion sintetica",
      "contenidoTruncado": false,
      "fechaEvento": "2026-09-10T16:00:00Z",
      "fechaRegistro": null,
      "fechaActualizacion": "2026-09-22T02:45:31.617Z",
      "fechaOriginal": "2026-09-10T10:00:00",
      "baseTemporal": "evento"
    },
    {
      "idEvento": "suceso:3",
      "fuente": "suceso",
      "idRegistroFuente": "suceso:3",
      "tkEvento": "SUC-EJEMPLO",
      "tipoFuente": 23,
      "tipoEvento": "cambioFase",
      "entidad": "contacto",
      "tkProspecto": "P-EJEMPLO",
      "contactosRelacionados": [
        {
          "tkProspecto": "P-EJEMPLO"
        }
      ],
      "tkOportunidad": null,
      "tkVenta": null,
      "tkCita": null,
      "tkTarea": null,
      "tkActor": null,
      "tipoActor": "desconocido",
      "tkUsuarioRegistro": "U-EJEMPLO",
      "tkUsuarioTokenOrigen": null,
      "valorAnterior": null,
      "valorNuevo": null,
      "campoModificado": null,
      "descripcion": "Cambio de fase sintetico",
      "contenidoTruncado": false,
      "fechaEvento": "2026-09-10T16:00:00Z",
      "fechaRegistro": null,
      "fechaActualizacion": "2026-09-22T02:45:31.617Z",
      "fechaOriginal": "2026-09-10T10:00:00",
      "baseTemporal": "evento"
    }
  ],
  [
    {
      "cobertura": {
        "estado": "parcial",
        "fuentes": [
          "suceso"
        ],
        "capacidadesFaltantes": [
          "historialCompleto",
          "valoresAnterioresNoPersistidos",
          "actorNoAcreditado",
          "aliasContactosAbsorbidos",
          "sucesosSinRelacionAutorizable",
          "sucesosDeOtrosModulos"
        ],
        "integridadHistorica": "desconocida"
      },
      "advertencias": [
        {
          "codigo": "HISTORIA_PARCIAL",
          "mensaje": "Solo sucesos CRM persistidos y relacionados con contactos autorizados; se excluyen resúmenes, exportaciones, sesiones y sucesos de otros módulos. No se reconstruyen fases agregadas ni aliases de contactos absorbidos.",
          "fuente": "suceso"
        },
        {
          "codigo": "ACTOR_NO_ACREDITADO",
          "mensaje": "El usuario del registro puede ser el responsable. El usuario de token se conserva como procedencia, sin afirmar actor o usuario anterior.",
          "fuente": "suceso"
        }
      ],
      "consistencia": "sinInstantanea",
      "fechaGeneracion": "2026-09-21T18:00:00Z"
    }
  ]
]