Propuesta técnica y funcional

Modernización sistema tickets netelip

Clasificación inteligente con IA + Respuestas automáticas

Febrero 2026 · Documento confidencial
Resumen ejecutivo en 1 página

El problema

El sistema actual de tickets genera:

  • 40-50% tickets mal clasificados → rebotes entre equipos
  • 20-30% leads comerciales perdidos (mal enrutados a técnico/admin)
  • Cliente frustrado (3 pasos, 40+ categorías para elegir)
  • 50 horas/mes desperdiciadas en tickets incorrectos

La solución

Sistema inteligente inspirado en HubSpot:

  • Cliente escribe en texto libre (1 paso, 0 categorías)
  • IA clasifica automáticamente con reglas netelip
  • IA sugiere respuestas desde base conocimiento
  • Agente revisa y envía

Arquitectura en 3 capas

  1. Servidor netelip (privado): Datos clientes, tickets, lógica negocio
  2. Qdrant Cloud (público): Solo documentación/FAQs
  3. APIs IA (terceros): OpenAI clasificación, Claude respuestas

Metodología

Construcción fase por fase con Go/No-Go cada 4 semanas. Sin riesgo: Si no funciona, no perdemos dinero.

Decisión requerida: Aprobar arranque Fase 1 (frontend) esta semana
Índice ejecutivo

PARTE 1: EL PROBLEMA

  • Sistema actual obsoleto
  • Impacto en negocio cuantificado
  • Benchmarking HubSpot

PARTE 2: LA SOLUCIÓN

  • Arquitectura completa 3 capas
  • Problemas resueltos paso a paso
  • Ejemplos reales clasificación

PARTE 3: IMPLEMENTACIÓN

  • 5 fases incrementales
  • Cronograma 16 semanas
  • Hitos y validaciones

PARTE 4: RECURSOS

  • Alcance trabajo Mili vs Equipo netelip
  • Propuesta económica

ANEXOS

  • Reglas clasificación detalladas
  • Prompts IA completos
  • Estructura base datos
  • Glosario técnico
Parte 1 — El problema

Sistema actual: 3 pasos, 40+ categorías

Cliente debe:
1. Elegir tipo (Consulta/Petición/Incidencia)
2. Elegir área (Admin/Comercial/Técnico)
3. Buscar entre 12-16 subcategorías

Resultado:

  • Cliente confundido (no entiende taxonomía interna)
  • 40-50% tickets mal clasificados
  • Rebotes entre departamentos
  • Tiempo resolución x2

Impacto cuantificado

Pérdida leads comerciales (CRÍTICO)
REGLA ORO NETELIP: Clientes <90 días → SIEMPRE a su SDR

Sistema actual NO garantiza esto:
├─ Cliente nuevo (20 días) pregunta sobre SIP Trunking
├─ Piensa: "¿Es comercial o técnico?"
├─ Decide: "Es sobre SIP Trunking, debe ser técnico"
├─ Selecciona: "Consulta Técnica: SIP Trunking"
├─ Ticket va a → Soporte Técnico (4-6 horas después)
├─ Técnico revisa: "Esto es una consulta de ventas"
├─ Reenvía a → Comercial España
├─ Llega a SDR → 8 horas después
└─ RESULTADO: Lead frío, oportunidad perdida

Estimación: 20-30% leads nuevos mal enrutados 
= 4-9 ventas/mes perdidas
Sobrecarga equipos incorrectos
Soporte Técnico recibe:
├─ 50% Consultas técnicas reales ✓
├─ 30% Consultas comerciales ✗ (no es su trabajo)
└─ 20% Admin ✗ (no es su trabajo)

Tiempo desperdiciado: 50 horas/mes × €30/h = €1,500/mes
Experiencia cliente pésima
  • Proceso complejo (5 minutos crear ticket)
  • Respuesta del equipo equivocado
  • Tiempo resolución >8 horas
  • Frustración y mala imagen

Benchmarking: Cómo lo hace HubSpot

Lo que ve el cliente
┌────────────────────────────────┐
│ ¿En qué podemos ayudarte?      │
│ [Escribe tu consulta...]       │
│ [Enviar]                       │
└────────────────────────────────┘

Eso es TODO. 1 paso, 0 categorías.

Lo que hace HubSpot por detrás:

  1. IA lee contenido + contexto cliente
  2. Clasifica departamento automáticamente
  3. Busca en base conocimiento (RAG)
  4. Sugiere respuesta al agente
  5. Agente revisa y envía

Resultado HubSpot:

  • >85% satisfacción
  • <2 min primera respuesta
  • 60-70% tickets sin escalado
  • 0% mal enrutados

Tecnología usada:

  • OpenAI GPT-3.5/4 + modelos propios
  • RAG (base vectorial docs)
  • Estrategia multimodelo (más barato para cada tarea)
Esto es lo que vamos a replicar en netelip
Parte 2 — La solución

Arquitectura completa en 3 capas

┌─────────────────────────────────────────┐
│ CAPA 1: SERVIDOR NETELIP (Privado)     │
│ ├─ PostgreSQL (clientes, tickets)      │
│ ├─ N8N (workflows, reglas negocio)     │
│ └─ Datos sensibles NUNCA salen         │
└──────────────┬──────────────────────────┘
               │ APIs HTTPS
      ┌────────┴────────┐
      ↓                 ↓
┌──────────────┐  ┌─────────────────────┐
│ CAPA 2:      │  │ CAPA 3:             │
│ QDRANT CLOUD │  │ APIs IA             │
│ (Público)    │  │ ├─ OpenAI (clasif.) │
│ └─ Solo FAQs │  │ └─ Claude (respues.)│
│    y docs    │  │                     │
└──────────────┘  └─────────────────────┘

Principio de separación

Servidor netelip: Todo lo sensible

Emails, teléfonos, contratos, datos bancarios → NUNCA sale del servidor

Qdrant Cloud: Solo conocimiento público

FAQs, guías, docs API → 0 datos clientes específicos

APIs IA: Solo contexto necesario

"Cliente España, 25 días alta, pregunta sobre desvíos"

NO se envía: emails, nombres completos, teléfonos

Solución fase por fase

Fase 1: Frontend simplificado (Semanas 1-2)

Problema: Cliente confundido con 40+ categorías

ANTES: 3 pasos, 40+ opciones, 5 minutos
DESPUÉS: 1 paso, 0 categorías, 1 minuto

┌────────────────────────────────────┐
│ ¿En qué podemos ayudarte?          │
│ Título: ___________________        │
│ Descripción: ______________        │
│ [Adjuntar archivos]                │
│ [Enviar]                           │
└────────────────────────────────────┘

Responsable: Mili (diseño UX) + Equipo netelip (integración)

Go/No-Go: ¿Frontend mejora experiencia?

Fase 2: Clasificación automática (Semanas 3-6)

Problema: 40-50% tickets mal clasificados

Solución: IA + Reglas de Negocio netelip

Workflow N8N:

Ticket entra
  ↓
Enriquecer datos cliente (PostgreSQL)
  ↓
Clasificar con IA (GPT-4o-mini)
├─ Analiza: contenido + contexto
├─ Aplica: Reglas netelip
└─ Decide: Departamento + Prioridad
  ↓
Validar confianza
├─ >90% → Asignar automático
├─ 70-90% → Sugerir
└─ <70% → Revisión manual
  ↓
Notificar agente + cliente

Reglas de negocio clave:

REGLA 1 (Máxima prioridad)
SI días_desde_alta <= 90:
  departamento = Comercial [España|LATAM]
  asignado_a = SDR_de_cartera
  
SIEMPRE, sin excepción del contenido.

→ 0% leads comerciales perdidos

REGLA 2: Clientes >90 días → Por contenido

  • Keywords: factura, pago → Administración
  • Keywords: error, no funciona → Soporte
  • Keywords: urgente, crítico → Prioridad URGENTE

Ejemplo clasificación:

Input:
Título: "Información portabilidad"
Cliente: 25 días desde alta, España, 0 servicios

Output IA (98% confianza):
{
  departamento: "Comercial España",
  equipo: "SDR España",
  prioridad: "Alta",
  razonamiento: "Cliente <90 días. Regla 1 aplicada."
}

Resultado: Ticket llega a SDR en <1 minuto

Responsable: Mili (workflows N8N + prompts)

Go/No-Go: ¿Precisión >= 90% en 100 tickets test?

Fase 3: Base conocimiento RAG (Semanas 7-10)

Problema: Respuestas inconsistentes, cada agente a su manera

Solución: Base vectorial con toda la documentación netelip

Contenido a indexar:

Qdrant Cloud:
├─ 200+ FAQs
├─ Guías técnicas completas
├─ Docs API
├─ Casos resueltos (anonimizados)
└─ Políticas empresa

0 datos sensibles clientes

Cómo funciona RAG:

Pregunta: "¿Cómo configuro desvíos?"
  ↓
Generar embedding (OpenAI)
  ↓
Buscar en Qdrant → Top 5 docs relevantes
  ↓
Docs encontrados:
├─ FAQ: Configuración desvíos
├─ Guía: Paso a paso desvíos
└─ Caso: Cliente sin opción desvíos
  ↓
Estos docs se usan en Fase 4 para generar respuesta

Responsable: Mili (setup Qdrant, indexación) + Equipo netelip (recopilar docs)

Go/No-Go: ¿Búsqueda RAG relevante >90%?

Fase 4: Respuestas automáticas (Semanas 11-14)

Problema: Equipo sobrecargado, 10-15 min por ticket

Solución: IA genera respuesta usando docs de Qdrant

Workflow completo:

Ticket clasificado
  ↓
Buscar docs relevantes (Qdrant)
  ↓
Generar respuesta (Claude Sonnet 4.5)
├─ System: "Eres soporte netelip"
├─ Contexto: [Docs de Qdrant]
├─ Cliente: España, nuevo/antiguo
└─ Pregunta: [Contenido ticket]
  ↓
Respuesta IA con confianza %
  ↓
Agente revisa en panel:
├─ ✓ Enviar (si correcta)
├─ ✎ Editar (ajuste menor)
└─ ✗ Rechazar (escribir propia)

Objetivo: >70% respuestas usables (enviar o editar leve)

Beneficio: Tiempo agente: 10-15 min → 2-3 min

Estrategia anti-alucinaciones:

  1. Base conocimiento exhaustiva (200+ FAQs)
  2. Prompt: "SOLO info de base conocimiento"
  3. Si no sabe → Dice explícitamente
  4. Revisión 100% primeros 2 meses
  5. Umbral confianza >85%

Responsable: Mili (workflow RAG + prompts)

Go/No-Go: ¿IA ahorra tiempo real?

Fase 5: Producción completa (Semanas 15-16)

Objetivo: Sistema 100% operativo

Entregables:

  • Dashboard métricas tiempo real
  • Sistema feedback loop
  • Documentación completa
  • Training equipo
  • Lanzamiento producción
Parte 3 — Implementación

Hitos y decisiones Go/No-Go

Semana Hito Criterio Go/No-Go
2 Frontend funcionando Cliente crea ticket <1 min
6 Clasificación validada Precisión >90% en 100 tickets
10 Base conocimiento completa 200+ docs, búsqueda relevante
14 Respuestas IA validadas >70% usables, ahorro tiempo
16 Producción completa Todos criterios cumplidos

Dashboard métricas tiempo real

┌──────────────────────────────────────────┐
│  SISTEMA TICKETS IA - HOY                │
├──────────────────────────────────────────┤
│  Tickets procesados: 47                  │
│  Precisión IA: 96%                       │
│  Respuestas IA usadas: 32 (68%)          │
│  Tiempo respuesta promedio: 45 min      │
│                                          │
│  DISTRIBUCIÓN:                           │
│  ├─ Comercial España: 18 (38%)          │
│  ├─ Comercial LATAM: 7 (15%)            │
│  ├─ Administración: 13 (28%)            │
│  └─ Soporte Técnico: 9 (19%)            │
│                                          │
│  ALERTAS:                                │
│  └─ 2 tickets urgentes pendientes       │
└──────────────────────────────────────────┘

Principales riesgos y mitigaciones

Riesgo 1: Precisión clasificación <90%

Mitigación: Testing 100+ tickets, ajustes iterativos, umbral ajustable

Plan B: Más revisión humana

Riesgo 2: Respuestas IA baja calidad

Mitigación: Base conocimiento exhaustiva, revisión 100% inicial, >85% confianza

Plan B: Solo sugerir, nunca enviar automático

Riesgo 3: Equipo rechaza cambio

Mitigación: Involucrar desde día 1, mostrar beneficios, training, piloto 30%

Plan B: Rollout más gradual

Riesgo 4: ROI no se cumple

Mitigación: Go/No-Go cada fase, métricas claras, inversión incremental

Plan B: Abortar sin pérdida económica

Estrategia de rollout seguro

Semana 1-6: Solo uso interno equipo netelip
Semana 7-10: Piloto 30% tráfico real
Semana 11-14: Escalar a 60-70%
Semana 15-16: 100% producción

Siempre con opción rollback a sistema anterior
Parte 4 — Recursos y alcance

Alcance del trabajo

Lo que Mili HACE ✓
  • Arquitectura completa del sistema
  • N8N workflows (orquestación)
  • Prompts IA (clasificación + respuestas)
  • Setup Qdrant Cloud
  • Indexación base conocimiento
  • Testing y validación cada fase
  • Diseño UX frontend
  • Training equipo
  • Documentación completa
Lo que Mili NO HACE ✗
  • Infraestructura servidores netelip
  • Desarrollo backend endpoints netelip
  • Integración frontend en panel existente
  • Tablas PostgreSQL (CREATE TABLE)
  • Gestión usuarios y permisos
  • Seguridad y firewall servidor
  • APIs propietarias netelip
  • Soporte 24/7 producción

Modelo de colaboración

MILI PROVEE:
├─ Diseño completo arquitectura
├─ Workflows N8N listos para usar
├─ Prompts IA optimizados
├─ Documentación técnica
└─ Asesoría implementación

EQUIPO NETELIP IMPLEMENTA:
├─ Backend endpoints
├─ Frontend integrado
├─ Base datos PostgreSQL
├─ Deploy y producción
└─ Mantenimiento operativo
Qué necesito de ti, Benjamín

Para arrancar durante el fin de semana

  • Aprobación conceptual: "Mili, adelante con el proyecto"
  • Revisión exhaustiva del sistema de tickets tanto frontend como backend por tu parte Benjamín
  • Que revisemos juntos los temas técnicos y el stack:
    • Servidor Docker netelip
    • Base datos clientes (lectura)
    • Montar RAG público y más adelante vuestro RAG privado
    • API keys OpenAI
    • API keys Claude

Por el momento solo necesito esto, porque tengo que tener las bases de conocimientos perfectas para montar el RAG, el cerebro de netelip. Una vez que tenga todo perfecto, va solo.

Mi parte en costes estimados
MI PARTE: €10,000 pero se quedaría en €5,000 mínimo

Es un estimado. Claude y mis compañeros de profesión me dan este precio por mi trabajo. ¡LO HABLAMOS Y DEFINIMOS TU Y YO!

Una cosa que quiero que quede clara: Yo tengo un timing para terminar proyecto y dejarlo funcionando, pero no dependo de las horas laborales ni la productividad de equipos. Yo cobro cuando termine y si el equipo de netelip no termina, no lo hace, no es mi problema.

Podemos poner hitos por tareas terminadas de mi parte para no eternizar el proyecto en tiempo ni costes, pero yo no trabajo con equipo de netelip, trabajo con mi equipo, porque si me atranco en algún punto o no sé terminar algo, tengo a mis colaboradores que se han comprometido a hacérmelo por intercambio de trabajos.

Incluye:

  • Arquitectura completa
  • Workflows N8N funcionando
  • Prompts IA optimizados
  • Setup base conocimiento
  • Training y documentación
  • Sistema funcionando
Anexos

Documentación técnica completa

Anexo A: Reglas de clasificación detalladas

REGLA 1: Protección leads comerciales (PRIORIDAD ABSOLUTA)
if cliente.dias_desde_alta <= 90:
    if cliente.pais == "España":
        departamento = "Comercial España"
        equipo = "SDR España"
        asignado_a = get_sdr_cartera(cliente)
    elif cliente.pais in ["México", "Colombia", "Chile", ...]:
        departamento = "Comercial LATAM"
        equipo = "SDR LATAM"
        asignado_a = get_sdr_cartera(cliente)
    
    tipo = "Asesoramiento comercial"
    prioridad = "Alta" if not cliente.servicios else "Media"
    
    return clasificacion

# ESTA REGLA NO TIENE EXCEPCIONES
# Aplica SIEMPRE, independiente del contenido del ticket
REGLA 2: Clasificación por contenido (Solo >90 días)
if cliente.dias_desde_alta > 90:
    
    # Administración
    if any(keyword in ticket.contenido.lower() for keyword in 
           ["factura", "pago", "datos bancarios", "iban", "titular"]):
        departamento = "Administración"
        equipo = "Gestión Administrativa"
        prioridad = "Media"
    
    # Soporte Técnico
    elif any(keyword in ticket.contenido.lower() for keyword in
             ["no funciona", "error", "problema", "configurar", 
              "llamadas", "audio"]):
        departamento = "Soporte Técnico"
        equipo = "L1 Soporte"
        
        # Subcategoría automática
        if "audio" in ticket.contenido.lower():
            categoria = "Problemas audio"
        elif "ivr" in ticket.contenido.lower():
            categoria = "Configuración IVR"
        elif "api" in ticket.contenido.lower():
            categoria = "API Voice"
        
        # Prioridad por urgencia
        if any(urgente in ticket.contenido.lower() for urgente in
               ["urgente", "crítico", "no puedo trabajar"]):
            prioridad = "URGENTE"
        else:
            prioridad = "Alta"
REGLA 3: Casos especiales
# Temas sensibles → Siempre revisión humana
temas_sensibles = ["cancelar", "baja", "queja", "reclamación", 
                   "rgpd", "protección datos", "abogado", "legal"]

if any(tema in ticket.contenido.lower() for tema in temas_sensibles):
    requiere_revision_humana = True
    no_respuesta_automatica = True
    notificar_supervisor = True

Anexo B: Prompt clasificación IA

Eres el clasificador de tickets de netelip, empresa española de telefonía IP 
que opera en España y LATAM.

DATOS TICKET:
- Título: {ticket.titulo}
- Descripción: {ticket.descripcion}

CONTEXTO CLIENTE:
- Cliente ID: {cliente.id}
- Email: {cliente.email}
- Fecha alta: {cliente.fecha_alta}
- Días desde alta: {cliente.dias_desde_alta}
- País: {cliente.pais}
- Servicios contratados: {cliente.servicios}

REGLAS CLASIFICACIÓN NETELIP:

REGLA 1 (PRIORIDAD ABSOLUTA):
SI días_desde_alta <= 90:
  departamento = "Comercial [España|LATAM según país]"
  equipo = "SDR [España|LATAM]"
  tipo = "Asesoramiento comercial"
  prioridad = "Alta"
  
  ESTA REGLA APLICA SIEMPRE, SIN EXCEPCIÓN DEL CONTENIDO.
  Razón: Cliente en onboarding, su SDR gestiona TODO.

REGLA 2 (Solo si días_desde_alta > 90):
Clasificar por contenido del ticket:

- Administración:
  Keywords: factura, pago, datos bancarios, IBAN, titular
  Equipo: Gestión Administrativa
  Prioridad: Media

- Soporte Técnico:
  Keywords: no funciona, error, problema, configurar, 
           llamadas, audio, desvíos, IVR, API
  Equipo: L1 Soporte
  Prioridad: Alta (URGENTE si dice "urgente", "crítico")

REGLA 3 (Casos especiales):
Si menciona: cancelar, queja, reclamación, RGPD
  requiere_revision_humana = true

RESPONDE EN JSON:
{
  "departamento": string,
  "equipo": string,
  "tipo": string,
  "categoria": string,
  "prioridad": string,
  "confianza": number (0-100),
  "razonamiento": string,
  "palabras_clave_detectadas": array,
  "requiere_revision_humana": boolean
}

Anexo C: Estructura base datos

CREATE TABLE tickets_ia (
  ticket_id SERIAL PRIMARY KEY,
  cliente_id INT NOT NULL,
  
  -- Contenido ticket
  titulo VARCHAR(200) NOT NULL,
  descripcion TEXT NOT NULL,
  archivos_adjuntos JSON,
  
  -- Clasificación IA
  departamento VARCHAR(50),
  equipo VARCHAR(50),
  tipo VARCHAR(50),
  categoria VARCHAR(100),
  prioridad VARCHAR(20),
  
  -- Metadatos IA
  confianza_ia DECIMAL(3,2),
  razonamiento_ia TEXT,
  palabras_clave JSON,
  requiere_revision_humana BOOLEAN DEFAULT false,
  
  -- Respuesta IA
  respuesta_sugerida_ia TEXT,
  confianza_respuesta_ia DECIMAL(3,2),
  documentos_usados_rag JSON,
  
  -- Asignación
  asignado_a VARCHAR(100),
  estado VARCHAR(20) DEFAULT 'pendiente',
  
  -- Acción agente
  accion_agente VARCHAR(20), -- 'enviado', 'editado', 'rechazado'
  respuesta_final TEXT,
  respondido_por VARCHAR(100),
  respondido_at TIMESTAMP,
  
  -- Timestamps
  created_at TIMESTAMP DEFAULT NOW(),
  updated_at TIMESTAMP DEFAULT NOW(),
  
  -- Foreign key
  FOREIGN KEY (cliente_id) REFERENCES clientes(cliente_id)
);

CREATE INDEX idx_tickets_estado ON tickets_ia(estado);
CREATE INDEX idx_tickets_prioridad ON tickets_ia(prioridad);
CREATE INDEX idx_tickets_asignado ON tickets_ia(asignado_a);
CREATE INDEX idx_tickets_created ON tickets_ia(created_at);

Glosario técnico

RAG (Retrieval Augmented Generation): Sistema que combina búsqueda en base de datos con generación de texto por IA. Busca documentos relevantes y los usa como contexto para generar respuestas precisas.

Qdrant: Base de datos vectorial open source para búsqueda semántica. Almacena documentos como vectores numéricos y encuentra similares instantáneamente.

Embedding: Representación numérica de texto (vector de 768-1536 dimensiones). Textos similares tienen embeddings cercanos matemáticamente.

N8N: Plataforma de automatización workflow (alternativa open source a Zapier). Conecta sistemas mediante workflows visuales.

Prompt: Instrucciones que se dan a un modelo de IA para que genere la respuesta deseada. Un buen prompt es crítico para resultados de calidad.

Confianza IA: Porcentaje 0-100% que indica qué tan segura está la IA de su clasificación o respuesta. Usamos umbral >85-90% para automatización.

Go/No-Go: Decisión al final de cada fase: continuar o abortar proyecto.

Documento generado: Febrero 2026 · Versión 1.0 · Confidencial: Solo uso interno netelip