fix(soporte): el filtro se estaba comiendo correos nuevos, y nadie se enteraba
Una respuesta a un hilo existente saltea el clasificador; un correo nuevo no. Por eso el sistema parecía funcionar solo con las respuestas: los correos nuevos que el modelo consideraba "no soporte" desaparecían sin ticket, sin acuse al cliente y sin más rastro que un renglón de log que nadie mira. Dos cambios: - El filtro solo opina sobre desconocidos. Si el remitente es un cliente o un usuario del portal, siempre se abre el ticket. Para eso la resolución del remitente pasa a correr antes del filtro. A un cliente registrado no se le descarta el correo por lo que diga un modelo. - Lo descartado se ve. "Revisar buzón ahora" informa cuántos dejó afuera el filtro, con asunto, remitente y motivo. Guardado en memoria: es diagnóstico de hace un rato, no algo que valga una tabla. Además, si la respuesta automática está apagada, el log lo dice al crear el ticket — era la otra explicación posible de "no me contestó" y no se distinguía. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1b599606f7
commit
4674413257
@@ -6,6 +6,7 @@ import (
|
||||
"log"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/sujit-baniya/fiber-boilerplate/app"
|
||||
@@ -336,8 +337,13 @@ func RevisarBuzonAhora(c *fiber.Ctx) error {
|
||||
if encontrados == 0 {
|
||||
return c.JSON(fiber.Map{"ok": true, "message": "Conectó bien, pero no hay correos sin leer en el buzón"})
|
||||
}
|
||||
return c.JSON(fiber.Map{"ok": true, "message": fmt.Sprintf(
|
||||
"%d correo(s) sin leer, %d convertido(s) en ticket. El resto ya estaba registrado.", encontrados, procesados)})
|
||||
msg := fmt.Sprintf("%d correo(s) sin leer, %d convertido(s) en ticket. El resto ya estaba registrado.", encontrados, procesados)
|
||||
// Si el filtro descartó algo hay que decirlo acá: un correo de un cliente
|
||||
// que se comió la IA es exactamente lo que nadie va a ir a buscar al log.
|
||||
if descartes := services.UltimosCorreosDescartados(); len(descartes) > 0 {
|
||||
msg += fmt.Sprintf(" El filtro descartó %d: %s", len(descartes), strings.Join(descartes, " | "))
|
||||
}
|
||||
return c.JSON(fiber.Map{"ok": true, "message": msg})
|
||||
}
|
||||
|
||||
// BorradorRespuestaTicket propone una respuesta usando la base de conocimiento.
|
||||
|
||||
Reference in New Issue
Block a user