Pular para o conteúdo principal

Busca e Filtros

AuditorIA indexa cada llamada por decenas de criterios. Esta guía cubre las tres vías de búsqueda (rápida, por tarjeta y historial completo) y cómo combinarlas para encontrar exactamente la llamada que necesitás.

Búsqueda rápida por tarjeta

Desde el Dashboard, las tarjetas de acceso rápido lanzan búsquedas pre-filtradas:

TarjetaFiltro aplicado
Buscar por campañacampaign_id específico
Buscar por operadoroperator_id o nombre
Buscar por fechaRango de fechas con date-picker
Buscar por direcciónDirección telefónica o geografía
Ver audios problemáticosNegatividad o discurso de odio > umbral

Al entrar a una tarjeta, te pedirá el criterio concreto. Ejemplo de Buscar por campaña:

Diálogo de búsqueda por campaña pidiendo ID de campaña

Ingresá el ID y clickeá Confirmar. El sistema arma la query con los índices compuestos (campaign_id, date) para respuestas rápidas aún sobre millones de registros.


Listado de resultados

Los resultados se muestran en una tabla densa con paginación server-side.

Resultados de búsqueda con tabla de tickets, estado de transcripción y acciones

Columnas

ColumnaQué muestra
Checkbox para selección masiva
TicketID del ticket interno (ej. 16722762)
CampañaID numérico de campaña
Usuariooperator_id del agente
FechaFecha de la llamada
HoraHora local
Nombre del archivoNombre original del .mp3
EstadoBadge: Listo para procesar, Transcribir audio, Audio no encontrada

Estados del ticket

EstadoSignificado
Listo para procesarAudio disponible, tarea no creada aún
Transcribir audioHover → CTA para lanzar transcripción manual
Audio no encontradaEl archivo no está en MinIO (borrado, nunca subido, rotado)

Controles de paginación

  • Grabaciones por página: 10, 25, 50 o 100.
  • Navegación: < > + input de número de página.
  • Contador: "0 de 1816 filas seleccionadas" + "Página 179 de 182" en la esquina inferior.
informação

Performance

El backend usa range queries (date >= :start AND date < :end) sobre índices compuestos — el filtro por fecha es O(log n) aún en tablas con decenas de millones de filas. Ver nota de arquitectura.


Historial completo y filtros combinados

Desde la barra lateral → Dashboard > Historial accedés a la vista avanzada con todos los filtros disponibles.

Filtros disponibles

FiltroTipoDetalle
EstadoMulti-selectpending, processing, completed, error, approved, rejected
Rango de fechasDate pickerInicio / fin, presets (hoy, 7d, 30d, custom)
CampañaMulti-selectRespeta permisos de usuario
OperadorAutocompletePor nombre o operator_id
MotorSelectwhisperx / openai / deepgram
DirecciónRadioentrante / saliente / cualquiera
DuraciónRange slider0s a 2h
PuntajeRange0 a 100
SentimientoMulti-selectpositive / neutral / negative
Etiquetas (tags)ChipsFiltro por tags generados por GPT
Texto libreInputBúsqueda full-text en la transcripción

Combinar filtros

Ejemplo: tareas completadas de la campaña 162, del operador 1897, de los últimos 30 días, con sentimiento negativo, ordenadas por puntaje descendente.

dica

Persistencia

Los filtros se guardan en la URL (?status=completed&campaign=162&...) para poder compartir la vista por enlace.


Búsqueda por texto completo

El campo Búsqueda por texto busca dentro del contenido transcrito.

Operadores soportados

OperadorEjemploComportamiento
AND implícitocancelar servicioAmbas palabras en el mismo segmento
ORrefund OR devoluciónCualquiera de las dos
"...""número de cliente"Frase exacta
-ventas -spamExcluye el término
~factura~Fuzzy search (tolera typos)
informação

Motor de búsqueda

Los textos se indexan en PostgreSQL usando tsvector + GIN indexes para búsqueda en sub-segundo hasta ~10M de segmentos.


Ordenamiento

Clic en el encabezado de la columna para alternar asc/desc. Se soporta orden compuesto sosteniendo Shift al clickear.

ColumnaOrdenUso típico
FechaDESC por defaultVer lo más reciente primero
PuntajeASCDetectar auditorías fallidas
DuraciónDESCIdentificar llamadas anormalmente largas
OperadorASC alfabéticoAgrupar por agente

Selección masiva y acciones batch

  1. Usá el checkbox del encabezado para Seleccionar todo en la página.
  2. O marcá tareas individuales.
  3. Aparece una barra de acciones flotante:
AcciónComportamiento
Aprobar todasMarca como aprobadas las seleccionadas
ReenviarReprocesa las seleccionadas (mismo o diferente engine)
ExportarDescarga CSV con las filas seleccionadas
Asignar campañaReasocia las tareas a otra campaña
ArchivarMueve al archivo histórico
aviso

Límites

  • Batch máximo: 500 tareas por acción (config. del tenant).
  • Reenviar en batch reencola en Redis y puede saturar workers: hacelo fuera de horario pico.

Exportar

Desde el listado filtrado:

  1. Aplicá los filtros deseados.
  2. Clic en Exportar.
  3. Elegí formato:
    • CSV (Excel-ready, con BOM UTF-8).
    • XLSX (nativo de Excel, con estilos).
    • JSON (objeto por tarea con toda la metadata).
  4. El archivo se descarga con el nombre auditoria-export-YYYY-MM-DD-HHmm.ext.
informação

El export respeta los filtros activos. Si seleccionás filas, se exportan solo las seleccionadas; si no, se exportan todas las que cumplan los filtros.


Performance

  • Índices compuestos clave: (operator_id, date), (campaign_id, date) en call_logs.
  • Range queries para fechas: date >= :start AND date < :end (no DATE(col) = :val, que no usa índices).
  • Paginación server-side: LIMIT/OFFSET con WHERE acotado, no trae millones de filas al cliente.
  • Full-text search en PostgreSQL con tsvector, refrescado en INSERT/UPDATE de transcripciones.

Troubleshooting

ProblemaCausaSolución
"0 resultados" con filtros razonablesRango de fechas en zona horaria incorrectaVerificar TZ en perfil (es-AR = GMT-3)
Paginación devuelve siempre la misma páginaCache del navegador agresivoHard refresh (Ctrl + Shift + R)
Export > 100k filas tarda muchoBackend lo procesa en backgroundEsperar a notificacao quando estiver pronto
Full-text no encuentra términos obviosTranscripción aún no indexada (async)Reintentar en 1-2 min

Próximos pasos