Cómo se relacionan las pantallas, los actores, las integraciones, la base de datos y los workflows automáticos.
Actualizado el 4 de agosto de 2026
Las audiencias que tocan la plataforma —organizadas por departamento— y sus pantallas principales.
El recorrido completo del cliente. La ficha puede nacer de varias fuentes; el ejemplo detalla la solicitud al cliente, la ruta más habitual.
Sidebar agrupado por departamento (con búsqueda global ⌘K). Cada pantalla es accesible desde cualquier otra y se filtra por permisos del usuario.
Índice completo de pantallas (47). Todas las páginas del portal con su fichero y su función. Las de «Cliente / público» se acceden por enlace con token; el resto viven tras el login.
| Pantalla | Fichero | Para qué |
|---|---|---|
| 📊 Informes | ||
| Distribución implementadores | distribucion.html | Carga y disponibilidad del equipo de implementación. |
| Proyectos (dashboard) | informe-implementacion.html | KPIs de implementación con filtros por implementador y plan. |
| Mapa de calor de tickets | informe-tickets.html | Volumen de tickets por franja horaria. |
| Heatmap · Agente IA | informe-tickets-ia.html | Mismo mapa de calor para el agente de IA. |
| Resumen semanal | resumen-semanal.html | Resumen IA de las incidencias de la semana. |
| Resumen mensual | resumen-mensual.html | Informe mensual profundo de incidencias. |
| Churn técnico | churn-tecnico.html | Señales técnicas de fuga de clientes. |
| 💼 Ventas | ||
| Configurador de oferta | configurador.html | Arma la oferta (planes, módulos, order bumps) y la envía al cliente. |
| Ofertas generadas | ofertas.html | Listado de ofertas y su estado (enviada / ganada); ampliar caducidad. |
| Fichas de cliente | lista.html | Fichas con pestañas Fichas / Rellenado cliente / Solicitudes. |
| Escalados de clientes | escalados.html | Ampliaciones y upsell de contrato. |
| 🔧 Implementación | ||
| Sin asignar | sinasignar.html | Fichas personalizadas pendientes de asignar implementador. |
| Proyectos | proyectos.html | Gestor de proyectos: pestañas, secciones por módulo, cronograma Asana. |
| Panel Sesiones | panel-sesiones.html | Agenda de sesiones + registro Show/No-Show y auto-resumen. |
| ❤️ Customer Success | ||
| Cascada CS | clientes.html | Kanban del ciclo de vida del cliente. |
| Bajas | bajas.html | Gestión de bajas de clientes. |
| Promociones | promociones.html | Promos grupales y ocupación de huecos (importador Asana). |
| HighLevel · Contactos | cs-highlevel.html | Contactos del CRM HighLevel. |
| HighLevel · Clientes ganados | highlevel-clientes.html | Oportunidades ganadas en HighLevel. |
| Clientes Yurest sin CRM | huerfanos-prod.html | Clientes en producción sin ficha en el CRM. |
| 📒 Contabilidad | ||
| Grabar en A3 | contabilidad.html | Mandato SEPA + toggle de alta en A3. |
| Clientes A3 | clientes-a3.html | Clientes ya grabados en A3. |
| Pagos de proformas | proformas.html | Seguimiento de cobros de proformas de hardware. |
| 🎧 Soporte | ||
| Estado clientes Yurest | estado-clientes-yurest.html | Telemetría de uso del producto por cliente. |
| Integraciones | integraciones.html | Panel de tareas de integración (Asana) y TPV no integrados. |
| Doc. integraciones | documentacion-integraciones.html | Manual de integraciones (público). |
| Hardware envíos | hardware.html | Envíos de hardware (SEUR) y generación de proformas. |
| Stock | stock.html | Inventario de hardware. |
| 💡 Producto | ||
| Triaje | triaje.html | Clasificación de tareas por módulo con sugerencias IA. |
| Presupuestos | presupuestos.html | Presupuestos y documento/PDF que ve el cliente. |
| Bolsa de horas | bolsa-horas.html | Control financiero de horas (consumo FIFO). |
| Documento interno IA | documento-interno-ia.html | Base de conocimiento de sprints generada por IA. |
| Updates | updates.html | Newsletter de novedades a clientes desde Asana. |
| 🛡️ Administración | ||
| Usuarios y permisos | admin.html | Roles, permisos por usuario y auditoría. |
| Logs de actividad | logs.html | Trazabilidad de acciones del portal. |
| 👤 Cliente / público (enlace con token) | ||
| Ficha de alta (cliente) | solicitud.html | El cliente rellena empresa, JP, firmante, TPV y firma SEPA. |
| Tu oferta (cliente) | oferta.html | El cliente ve la oferta, edita plan/módulos y paga (Redsys). |
| Formulario de alta | ficha-cliente.html | El consultor completa todos los detalles de la ficha. |
| Firmar mandato SEPA | firmar-sepa.html | Re-firma del mandato SEPA por parte del cliente. |
| ⚙️ Sistema / utilidades | ||
| Portal (inicio) | index.html | Home con accesos por departamento y buscador global. |
| Acceso | login.html | Login; emite el token de sesión firmado. |
| Página no encontrada | 404.html | Error 404. |
| Matcheo entre sistemas | matcheo-sistemas.html | Cruce de IDs Yurest / HighLevel / Zendesk por cliente. |
| Cascada CS (alias) | cs-kanban.html | Entrada alternativa al kanban de Customer Success. |
| Proforma (mockup) | proforma-mockup.html | Mockup visual del documento de proforma. |
| Doc. integraciones (standalone) | documentacion-integraciones-standalone.html | Versión independiente del manual de integraciones. |
| Doc. integraciones (Zendesk) | documentacion-integraciones-zendesk.html | Manual de integraciones embebible en Zendesk. |
El backend n8n orquesta media docena de servicios externos. Todo pasa por workflows; el frontend nunca habla directamente con ellos.
| Servicio | Para qué | Dirección |
|---|---|---|
| Asana | Proyectos de implementación (secciones por módulo/cliente), tareas, cronograma y tickets de Zendesk enlazados. | lectura + escritura |
| HighLevel (CRM) | Contactos, negocios y oportunidades. Al ganar la ficha sincroniza contacto / business / Custom Object Local. | lectura + escritura |
| Zendesk | Tickets de soporte por TPV; se enlazan a Asana por el campo «ID Zendesk». | lectura + escritura |
| Google Drive | Carpeta por cliente con la documentación de la ficha; grabaciones de sesiones compartidas. | escritura |
| Redsys (TPV BBVA) | Pasarela de pago para aceptar ofertas (cobro = importe final × 1,21). | request / response |
| SEUR | Envíos de hardware (SEUR PIC); proformas con coste de envío por zona. | escritura |
| Gmail (Soporte) | Todos los emails salientes (solicitudes, ofertas, avisos) desde la cuenta de Soporte. | escritura |
Cómo está montada la plataforma hoy, tras la migración a infraestructura propia.
| Pieza | Detalle |
|---|---|
| Frontend | HTML/JS estático servido por Cloudflare Pages desde un repo privado (build scripts/build-site.sh). URLs limpias, sin .html. |
| Backend | ~130 workflows en n8n propio (n8n.yurest.dev). Toda la lógica y las integraciones viven aquí. |
| Base de datos | PostgreSQL autogestionado (BD yurest), sustituto de Supabase. Los workflows leen y escriben directamente. |
| Autenticación | El login emite un token de sesión firmado (HMAC); cada webhook de staff lo valida en línea. Sin auth básica compartida. |
| Permisos | Roles con permisos predefinidos + deltas por usuario; el sidebar y las páginas se filtran por permiso. Trazabilidad en logs.html. |
La instancia tiene ~130 workflows. Estos son los que sostienen el flujo principal; el resto cubre integraciones, informes y automatismos programados.
| Workflow | Trigger | Qué hace |
|---|---|---|
Auth / roles | POST login · roles | Valida credenciales y emite el token de sesión HMAC; resuelve permisos (rol + deltas por usuario). |
Configurador / ofertas | POST oferta-enviar · GET ofertas | Genera la oferta, la envía al cliente y gestiona estados (enviada/ganada) y caducidad. |
Pago Redsys | POST pago/iniciar · retorno TPV | Firma la petición Redsys, procesa el retorno y dispara el enlace a la ficha tras el cobro. |
Fichas de alta | POST guardarFicha · GET altas | Listado y CRUD de fichas. UPDATE solo de campos enviados (no destructivo). |
Solicitudes | POST crearSolicitud · GET listaSolicitudes | Crea la solicitud con access_token y devuelve la lista filtrada por estado. |
Responder solicitud | POST responderSolicitud | Cliente envía → INSERT ficha + carpeta Drive + emails (cliente/consultor) + tarea Asana si TPV no integrado. |
Importador Sheet | POST importar-sheet | Convierte una URL de Google Sheets en una ficha pre-rellenada. |
Proyectos | POST/PUT proyectos + tareas | Crea el proyecto desde la ficha (master Asana según módulos), secciones y tareas. |
Panel de sesiones | webhooks panel/* | Agenda sesiones, valida disponibilidad de calendario y registra Show/No-Show en Asana. |
Grabado A3 | POST grabadoA3 | Toggle del flag grabado_a3 con diagnóstico de filas afectadas. |
Sync HighLevel | webhook al ganar ficha | Upsert de contacto / business / oportunidad ganada + Custom Object Local en el CRM. |
Tablas y relaciones que sostienen todo el flujo. Soft-delete vía deleted_at en todas.
Alcance: diagrama esencial. fichas_alta tiene ~120 columnas reales
(financiero fin_*, highlevel_*, health_*, exento_iva,
fraccionamiento_*, TPV, dirección de entrega…); arriba solo las representativas. Tablas
secundarias no diagramadas: usuarios, cs_estado_historial,
prod_clientes_snapshot/estado, hardware_pedidos, escalados,
seur_*. La fuente de verdad es database/schema.sql + las migraciones en
database/migrations/.
Nota semántica: en fichas_alta el estado completada significa
"rellenada por el cliente" y rellenado significa "completada por el consultor". Triggers SQL
actualizan automáticamente fecha_rellenado, fecha_completado y grabado_a3_at
al cambiar el campo correspondiente.
| Acción | Quién | Dónde | Qué pasa |
|---|---|---|---|
| Solicitar ficha | Consultor | lista.html · botón "Solicitar ficha" | Crea solicitud + envía email al cliente con URL ?t=<token>. |
| Rellenar solicitud | Cliente | solicitud.html (link del email) | Datos empresa + JP + firmante + TPV (integrado/no) + IBAN + firma SEPA. |
| Completar ficha | Consultor | Pestaña "Rellenado cliente" → botón | Abre index.html con los datos prellenados; al guardar pasa a estado rellenado. |
| Editar ficha | Consultor / Yurest | Pestaña "Fichas" · botón Editar | UPDATE solo de campos enviados — no destructivo. |
| Eliminar ficha/solicitud | Consultor / Yurest | Pestañas correspondientes · botón Eliminar | Soft-delete con confirmación + toast de diagnóstico. |
| Grabar en A3 | Contabilidad | contabilidad.html · toggle por fila | UPDATE flag grabado_a3; trigger setea grabado_a3_at. |
| Ver mandato SEPA | Contabilidad | contabilidad.html · botón "📄 Ver mandato" | Modal con datos legales completos + firma + descarga PDF (popup, una sola hoja A4). |
| TPV no integrado | Cliente | solicitud.html · checkbox cabecera TPV | Al enviar: tarea automática en Asana (proyecto Integraciones) + email a soporte/Yurest/Roocket. |
"Completada" = rellenada por cliente · "Rellenado" = cerrada por consultor. La nomenclatura es legacy pero los triggers SQL ya alinean fechas con esta semántica.