diff --git a/UMIND_CASOS_DE_USO.html b/UMIND_CASOS_DE_USO.html new file mode 100644 index 0000000..03c6921 --- /dev/null +++ b/UMIND_CASOS_DE_USO.html @@ -0,0 +1,278 @@ + + + + + +uMind — Casos de uso + + + + +
+ DOCUMENTO COMERCIAL +

uMind — Casos de uso

+

Asistente de chat con IA, embebible en cualquier sitio web · Agosto 2026

+
+ +

Qué es

+

+ uMind es un asistente de chat con inteligencia artificial que se instala en cualquier sitio web con una sola línea de código + — igual que Google Analytics o un widget de chat tradicional. A diferencia de un chatbot de respuestas fijas, uMind + aprende automáticamente el contenido del sitio del cliente (páginas, servicios, precios, políticas) y + responde preguntas de los visitantes las 24 horas, sin que nadie tenga que programar ni un solo flujo de conversación. +

+

La instalación es literalmente esto:

+
<script src="https://admin.u-site.app/widget/umind.js" data-site="SITE_KEY" defer></script>
+ +

Cómo funciona (explicación simple para el cliente)

+
    +
  1. Le pedimos la URL de su sitio.
  2. +
  3. uMind lo recorre automáticamente y "aprende" el contenido — servicios, productos, preguntas frecuentes, políticas, lo que ya está publicado.
  4. +
  5. Le entregamos el código de instalación (una línea).
  6. +
  7. Desde ese momento, cualquier visitante puede hacerle preguntas al asistente por chat, y responde con base en el contenido real del sitio.
  8. +
  9. Si no sabe algo, no inventa: lo dice honestamente y puede ofrecer que un humano del equipo lo contacte.
  10. +
+ +

Por qué es diferente a un chatbot normal

+ + +

Casos de uso generales

+
+

1. Atención de preguntas frecuentes 24/7

+

Horarios, ubicación, formas de pago, políticas de garantía/devolución, sin que el equipo tenga que responder lo mismo veinte veces al día.

+
+
+

2. Primer filtro de soporte

+

Responde lo que puede resolver solo (el 60-80% de las preguntas repetitivas en la mayoría de negocios) y libera al equipo humano para casos que realmente lo requieren.

+
+
+

3. Guía de productos/servicios

+

Un visitante nuevo pregunta "¿qué planes tienen?" o "¿hacen envíos a X ciudad?" y obtiene respuesta inmediata, sin buscar en menús o PDFs.

+
+
+

4. Reducción de abandono

+

Un visitante indeciso que en otro momento se iría del sitio sin comprar/contactar, ahora tiene a quién preguntarle ahí mismo.

+
+
+

5. Captura de interesados fuera de horario

+

El negocio "cierra" pero el asistente sigue respondiendo y puede recoger el interés del visitante para que el equipo humano lo contacte al día siguiente.

+
+ +

Casos de uso por tipo de negocio

+
+
+

🍽️ Restaurantes / gastronomía

+

Menú, horarios, zona para eventos, reservas, opciones para dietas especiales, ubicación y domicilios.

+
+
+

🩺 Clínicas / consultorios / salud

+

Servicios, especialidades, si atienden una EPS/seguro, cómo agendar cita, requisitos previos. Solo información administrativa ya publicada — sin diagnósticos ni consejos médicos.

+
+
+

🏠 Inmobiliarias

+

Propiedades disponibles por zona/precio, proceso para agendar una visita, requisitos para arrendar/comprar, zonas donde operan.

+
+
+

🏨 Hoteles / alojamiento

+

Disponibilidad general, servicios incluidos, políticas de cancelación, cómo llegar, qué hay cerca.

+
+
+

🛒 E-commerce / tiendas online

+

Políticas de envío y devolución, tallas/variantes, medios de pago, seguimiento de pedido (según lo publicado en el sitio).

+
+
+

⚖️ Servicios profesionales

+

Abogados, contadores, agencias, consultoras: qué servicios prestan, con quién han trabajado, proceso de contratación, tarifas publicadas.

+
+
+

💻 SaaS / productos digitales

+

Incluye los propios productos de U-Site (uLink, uVot, uBox, Habla, UIA): funcionalidades, planes, integraciones, documentación pública — reduce tickets de soporte nivel 1.

+
+
+

🎓 Educación

+

Colegios, institutos, cursos: programas ofrecidos, proceso de admisión/inscripción, costos, fechas importantes, requisitos.

+
+
+ +

Lo que uMind todavía no hace

+
+ Para no prometer de más al vender esto: + +
+ +

Argumentos de venta

+
+ +
+ +

Modelo de negocio sugerido

+

+ (a definir con el equipo comercial) — Un cobro mensual fijo por sitio (incluye hosting del widget y actualizaciones), + con la opción de agregar valor a futuro con paquetes de WhatsApp/voz cuando esas fases del roadmap estén listas. Los costos + operativos por conversación son bajos (fracciones de centavo de dólar por chat de texto), así que el margen sobre una + suscripción mensual es sano incluso en un plan de entrada económico. +

+ + + + + diff --git a/pkg/services/telegram_agent_service.go b/pkg/services/telegram_agent_service.go index d29ec14..dbfde33 100644 --- a/pkg/services/telegram_agent_service.go +++ b/pkg/services/telegram_agent_service.go @@ -342,10 +342,14 @@ func agentTools() []agentTool { }, []string{"ticket_id", "mensaje"})), // ── Tareas ─────────────────────────────────────────────────────────── - tool("listar_tareas", "Lista tareas del Kanban.", + tool("listar_tareas", "Lista tareas del Kanban (resumen: título, estado, prioridad, asignado — sin descripción completa ni historial de comentarios). Para ver el detalle completo de una tarea puntual usa detalle_tarea.", obj(map[string]agentToolParam{ "estado": str("pendiente | en_progreso | completada | cancelada"), }, nil)), + tool("detalle_tarea", "Trae el detalle completo de una tarea puntual: descripción completa y el historial de comentarios/interacciones (quién comentó, qué dijo, cuándo, y archivos adjuntos si los hay). Úsala cuando el usuario pida el cuerpo, la descripción o el historial de una tarea específica — listar_tareas no trae eso.", + obj(map[string]agentToolParam{ + "id": num("ID de la tarea (usa listar_tareas si no lo sabes)"), + }, []string{"id"})), tool("listar_usuarios", "Lista los usuarios internos del sistema (staff), para poder asignarles tareas.", obj(map[string]agentToolParam{"search": str("Búsqueda por nombre")}, nil)), tool("crear_tarea", "Crea una nueva tarea, opcionalmente asignada a alguien desde el inicio.", @@ -1003,6 +1007,21 @@ func runTool(chatID int64, name string, a map[string]interface{}) (interface{}, } return filtered, nil + case "detalle_tarea": + id := uint(getInt("id", 0)) + if id == 0 { + return nil, fmt.Errorf("id requerido") + } + tarea, err := models.GetTareaByID(id) + if err != nil { + return nil, fmt.Errorf("tarea no encontrada: %w", err) + } + comentarios, err := models.GetComentariosByTarea(id) + if err != nil { + return nil, err + } + return map[string]interface{}{"tarea": tarea, "comentarios": comentarios}, nil + case "listar_usuarios": users, _, err := models.AllUsersSistema(50, 0, getStr("search")) if err != nil { @@ -1514,6 +1533,7 @@ COMPORTAMIENTO: Si logras identificar los datos necesarios (del documento o de lo que escribió el usuario), guarda directamente sin pedir confirmación — solo pregunta si de verdad no hay forma de determinar el cliente/proyecto/tarea o falta un dato imprescindible. No uses estas tools si el mensaje no menciona ningún documento adjunto - Para registrar un proyecto nuevo con sus fases (el usuario puede describirlo en texto o mandarlo en un documento), primero usa crear_proyecto y luego llama a crear_fase_proyecto una vez por cada fase que corresponda — no hace falta preguntar confirmación entre cada fase - Para asignar una tarea a alguien, resuelve el nombre con listar_usuarios y usa asignado_id en crear_tarea (si es nueva) o asignar_tarea (si ya existe) — la persona asignada recibe una notificación. Si además el usuario mandó un archivo junto con la instrucción de asignar, después de crear/asignar la tarea usa también adjuntar_documento_tarea para guardar ese archivo en la tarea +- Si preguntan por el detalle, la descripción completa o el historial/comentarios de una tarea específica, usa detalle_tarea (no listar_tareas, que solo da un resumen sin eso) — resuelve el id con listar_tareas primero si hace falta COMANDOS ESPECIALES (el usuario puede escribirlos): - /reset — olvidar el historial de esta conversación