Saltar al contenido
DispensAI

CAL-003

Autoapertura de ticket por evaluación baja

Garantizar que una evaluación con promedio inferior a 4 genere automáticamente un ticket de queja trazable, sin depender de que el socio lo solicite.

1. Objetivo

Establecer que toda evaluación de producto con promedio inferior a 4, en una escala de 1 a 7, abre automáticamente un ticket de queja trazable, preservando el ciclo de calidad sin requerir acción adicional del socio.

2. Alcance

Cubre la detección automática de evaluaciones bajas y la apertura del ticket resultante, desde que el socio envía la evaluación hasta que el ticket queda registrado y disponible para que Soporte lo gestione.

No cubre:

  • la apertura manual de tickets → [[wiki/entities/dispensai/protocolos/CAL-002]];
  • la investigación del ticket → [[wiki/entities/dispensai/protocolos/CAL-004]];
  • la respuesta y el cierre → [[wiki/entities/dispensai/protocolos/CAL-005]];
  • la derivación a no conformidad → CAL-006.

3. Definiciones

  • Evaluación baja: evaluación de producto cuyo promedio de dimensiones calificadas es inferior a 4 en la escala 1-7.
  • Autoapertura: apertura de ticket iniciada por el sistema, sin intervención explícita del socio.
  • auto_generated: atributo del ticket que identifica su origen como automático, distinguiéndolo de los tickets presentados manualmente.
  • Umbral: valor 4 (exclusive). Un promedio de 3,99 activa la autoapertura; 4,00 no lo hace.

4. Roles y responsables

RolResponsabilidad
Socio / evaluadorEnvía la evaluación del producto con sus dimensiones.
SistemaCalcula el promedio, detecta si está bajo el umbral y abre el ticket.
SoporteRecibe el ticket automático y lo gestiona desde CAL-004.
CalidadMonitorea la tasa de tickets automáticos y su distribución por producto.

5. Disparador de inicio

El socio envía una evaluación de producto post-dispensación. El disparador específico es el resultado del cálculo de promedio en submitProductEvaluation: si averageRating < 4, se activa la autoapertura, siempre que el socio no haya solicitado explícitamente abrir un ticket en el mismo envío.

Si el socio marcó que desea abrir un ticket (createTicket = true), el flujo de autoapertura se omite y el ticket se abre por CAL-002 con la evaluación como antecedente adjunto.

6. Requisitos previos

  • El socio tiene una dispensación registrada y un producto evaluable.
  • El formulario de evaluación está activo en el perfil del socio.
  • La función createComplaintFromEvaluation está disponible en el módulo de conformidades.
  • El registro de eventos ISO está operativo para la tabla evaluations y service_complaints.

7. Entradas

  • Identificador de evaluación.
  • Promedio calculado de las dimensiones evaluadas.
  • Comentarios ingresados por el socio (opcionales).
  • Identificador de dispensación y de producto vinculados a la evaluación.

8. Procedimiento paso a paso

  1. El socio completa y envía su evaluación del producto.
  2. El sistema calcula el promedio de las dimensiones calificadas (averageRating).
  3. Si averageRating < 4 y el socio no solicitó abrir ticket manualmente, el sistema emite el evento ISO evaluation_low_rating sobre la tabla evaluations.
  4. El sistema llama a createComplaintFromEvaluation con los datos de la evaluación, la dispensación y el producto.
  5. La función crea un ticket en service_complaints con estado open, auto_generated: true, el complaint_number generado, la priority derivada y referencias a la evaluación y la dispensación.
  6. El sistema emite el evento ISO evaluation_complaint sobre la tabla service_complaints, vinculando el ticket a la evaluación de origen.
  7. El ticket queda disponible para gestión en el panel de administración. Desde aquí continúa [[wiki/entities/dispensai/protocolos/CAL-004]].

9. Puntos de control

#ControlMomento
C1Promedio calculado correctamente sobre las dimensiones evaluadasPaso 2
C2Umbral < 4 verificado antes de actuarPaso 3
C3Sin duplicación: no abre ticket si el socio ya solicitó unoPaso 3
C4Evento ISO evaluation_low_rating emitidoPaso 3
C5Ticket creado en service_complaints con auto_generated: truePaso 5
C6Evento ISO evaluation_complaint emitido con referencias cruzadasPaso 6

10. Criterios de decisión

SituaciónResultado
averageRating < 4 y createTicket = falseSistema abre el ticket automáticamente
averageRating >= 4No se abre ticket automático
createTicket = true, cualquier promedioEl socio abrió el ticket explícitamente; no actúa la autoapertura
Fallo en createComplaintFromEvaluationLa evaluación se guarda; el ticket no se crea; el incidente queda sin gestión de calidad

11. Excepciones y escalamiento

  • Fallo en la creación del ticket. La acción captura el error y continúa sin propagarlo. La evaluación queda registrada pero el ticket no existe. Soporte no tiene visibilidad automática. Ver brecha 2 en §17.
  • Evaluación con promedio exactamente 4. No activa la autoapertura. Si existe malestar que no queda capturado, el socio puede abrir un ticket manualmente por CAL-002.
  • Producto sin stock o sin dispensación activa. El flujo de evaluación requiere una dispensación de origen; si no existe, la evaluación no procede.

12. Registros generados

  • Fila en evaluations con todas las dimensiones calificadas y el promedio.
  • Evento ISO evaluation_low_rating.
  • Ticket en service_complaints con auto_generated: true, complaint_number, referencias a evaluación, dispensación y producto.
  • Evento ISO evaluation_complaint.

13. Indicadores

IndicadorFórmulaMetaFuente
Tasa de autoaperturaTickets automáticos ÷ evaluaciones recibidasMonitoreo de tendenciaevaluations + service_complaints
Evaluaciones bajas sobre totalEvaluaciones con avg < 4 ÷ totalMonitoreo; meta organizacionalevaluations
Tiempo apertura automáticaTimestamp ticket − timestamp evaluación< 1 minutoservice_complaints + evaluations
Tickets automáticos sin asignarConteo de auto_generated con assigned_to vacío0 en > 24 hservice_complaints

14. Riesgos y controles

RiesgoControlTipo
Evaluación baja sin ticketC2 y C5 — umbral y creación verificadaPreventivo
Ticket duplicado (manual + automático)C3 — bloqueo si createTicket = truePreventivo
Ticket creado sin notificación a SoporteVer brecha 2 en §17—
Evento ISO perdido silenciosamenteVer brecha 1 en §17—

15. Normativa y referencias

  • ISO 9001:2015 §9.1, Seguimiento, medición, análisis y evaluación: la evaluación de la percepción del socio es un dato de desempeño que debe monitorearse. La norma emplea el término «cliente»; en esta organización esa figura es el socio, y no existe relación de cliente ni de compraventa.
  • ISO 26000:2010 §6.7.6, Resolución de conflictos y reclamaciones: canal accesible y respuesta trazable para toda reclamación, incluyendo las detectadas proactivamente.
  • [[wiki/entities/dispensai/protocolos/CAL-002]] — apertura de ticket o queja.
  • [[wiki/entities/dispensai/protocolos/CAL-004]] — investigación del ticket generado.

16. Anexos y formularios vinculados

  • Formulario de evaluación de producto (en perfil del socio).
  • Catálogo de categorías y prioridades del ticket.

17. Implementación en el sistema

Este protocolo está implementado. El mecanismo central es submitProductEvaluation en dispensai/app/actions/evaluations.ts, que llama a createComplaintFromEvaluation de dispensai/app/actions/iso-conformities.ts cuando averageRating < 4.

Elemento del protocoloDónde vive
Paso 2 — cálculo del promediosubmitProductEvaluation, cálculo de averageRating
Paso 3 — verificación del umbralCondición if (averageRating < 4 && !createTicket)
Paso 3 — evento low_ratinglogISOSystemEvent("evaluation_low_rating", "evaluations", ...)
Paso 5 — creación del ticketcreateComplaintFromEvaluation(evaluationId, { userId, orderId, productId, averageRating, comments })
Paso 6 — evento evaluation_complaintlogISOSystemEvent("evaluation_complaint", "service_complaints", ...)
Tabla de evaluacionesdb:evaluations, con RLS para SELECT propio
Tabla de ticketsdb:service_complaints

Brechas conocidas:

  1. Los eventos ISO de autoapertura son best-effort. Tanto evaluation_low_rating como evaluation_complaint se emiten dentro de bloques try/catch que silencian el error. Si iso_system_events falla, la evaluación y el ticket quedan registrados pero sin la cadena de trazabilidad que los vincula. La traza de auditoría es incompleta.
  2. Fallo silencioso en la creación del ticket. Si createComplaintFromEvaluation lanza un error, la acción lo captura y continúa sin propagar. No existe alerta ni registro de la creación fallida. Un incidente con evaluación baja puede quedar sin ticket y sin que nadie lo sepa.
  3. La autoapertura no notifica a Soporte. El bloque de creación automática del ticket (evaluations.ts líneas 250–286) no contiene llamada a ninguna función de notificación. A diferencia de la apertura manual de CAL-002, el ticket generado automáticamente no desencadena alerta activa al equipo de Soporte. Un incidente de calidad puede pasar desapercibido hasta que alguien revise el listado de tickets.

Brecha observada en auditoría 2026-08-31

  • Ruta no encontrada exacta: /dashboard/perfil/tickets — puede ser variante (singular/plural, /admin vs /dashboard) o ruta renombrada. Acción correctora: actualizar el frontmatter con la ruta real que usa el sistema.

18. Historial de versiones

VersiónFechaCambioAutor
1.02026-08-28Versión inicial, derivada de la navegación del flujo de evaluacionesCalidad
1.12026-08-29Cierre de INFERIDO: brecha 3 confirmada — el bloque evaluations.ts:250-286 no contiene llamada de notificación; la ausencia es ahora una brecha confirmada, no una duda. Estado ascendido a Vigente.Harness dispensai-protocolos
1.0+audit-2026-08-312026-08-31Detectados gaps en auditoría: /dashboard/perfil/tickets. §17 actualizada para documentar la brecha con evidencia de código. Estado documental sin cambio.Auditoría automática

Documentos asociados

  • Registro de evaluación
  • Ticket generado automáticamente

Registros y evidencia

  • Evaluación en tabla evaluations
  • Evento ISO evaluation_low_rating
  • Evento ISO evaluation_complaint
  • Ticket en service_complaints con auto_generated true

Indicadores

  • % de evaluaciones bajas que generan ticket
  • Tiempo entre evaluación y apertura de ticket
  • Tickets automáticos sobre total de tickets abiertos

Normativa y referencias

  • ISO 9001:2015 §9.1
  • ISO 26000:2010 6.7.6

Dónde deja rastro en el sistema

Rutas
  • /dashboard/perfil/tickets
Tablas
  • evaluations
  • service_complaints
Eventos
  • evaluation_low_rating
  • evaluation_complaint