Arquitectura de informacion cliente L1 - martin-hendricks/MISO-PROYECTO-FINAL-SOLVENTA GitHub Wiki
Misma IA en Android y web. Cuatro destinos persistentes; Nueva cotización es un CTA, no un quinto destino. Una Cotizacion existe para originar una Poliza nueva: al aceptarla se crea como Poliza y pasa a vivir en Pólizas. Tanto Cotizacion como Poliza se clasifican por ramo; los datos de riesgo del formulario cambian con el ramo (HU-3: producto + datos mínimos del riesgo). No se reutiliza el formulario de dispositivo en vida, viaje ni crédito.
Fuentes: Backlog UI cliente L1 · Design System / Screens · Web Customer Experience / Screens · Mobile Navigation Map · Validación usabilidad (Karen Guerrero, 18 Sep 2026) · PDF §2.2 / §5.1–5.2
flowchart LR
Cliente["Cliente"] --> Ramo["Ramo"]
Ramo --> Cotizacion["Cotizacion"]
Cotizacion --> DatosRiesgo["DatosRiesgo<br/>esquema de ese ramo"]
DatosRiesgo -->|"se crea para una Poliza nueva"| Oferta["Oferta firme"]
Oferta -->|"Aceptar"| Emision["Emision"]
Emision -->|"exito: se crea como Poliza"| Poliza["Poliza"]
Emision -->|"rechazo"| SinPoliza["No hay Poliza"]
Poliza --> Billetera["Destino Polizas"]
Poliza -->|"cubre"| Siniestro["Siniestro"]
Poliza -->|"ciclo de vida, lectura"| Aviso["Aviso vencimiento / renovacion"]
style Cotizacion fill:#E8F4F4,stroke:#005050
style DatosRiesgo fill:#E8F4F4,stroke:#005050
style Poliza fill:#D4F7D4,stroke:#2E7D32
style SinPoliza fill:#FDECEA,stroke:#C62828
| Objeto | Dónde vive en la IA | Qué no es |
|---|---|---|
Ramo |
Clasifica Cotizacion y Poliza. Portafolio PDF §2.2: viaje, dispositivos, microseguros de vida, clima/vuelos (seguro paramétrico en el caso) y protección de pagos ligada a crédito. |
No es un quinto destino. L1 no muestra un catálogo de seis productos (HU-1 / HU-92). |
Cotizacion |
Flujo anidado de Inicio. Envelope común (HU-3 / HU-6): ramo + DatosRiesgo → oferta (prima, moneda, venceEn). CTA descubrible desde Inicio y desde lista-polizas vacía (primera cotización). |
No es destino raíz ni tab. No hay lista «Mis cotizaciones». El formulario no es único para todos los ramos. |
DatosRiesgo |
Cuerpo de nueva-cotizacion (o del flujo hipotecario). Esquema por ramo. |
No es «valor del dispositivo» genérico. Vida, viaje o crédito no reutilizan campos de dispositivo. |
Poliza |
Destino Pólizas (lista-polizas → detalle-poliza). Tras emitir, poliza-emitida entrega a ese destino. Conserva el ramo y el riesgo cotizado. En cada vista (éxito, Inicio, lista, detalle) se lee ramo + estado y un resumen del tipo. Lista/detalle muestran recomendaciones de siniestro de ese ramo. Sin red, las mismas vistas leen cobertura y credencial en caché (HU-51) y muestran el banner de sincronización al volver (HU-52). |
No se origina vacía: nace de una cotización aceptada. No es otra ruta «billetera offline». |
| Siniestro | Destino Siniestros. Requiere póliza vigente. El aviso usa campos y recomendaciones del ramo de esa póliza (mismo destino, otro DatosRiesgo). El pago automático (clima/vuelos) lee el umbral (HU-33); no vuelve a cotizar ni se llama «paramétrico» en canal. |
El cliente no decide el caso (eso es operador, fuera de L1). |
| Perfil / consentimiento | Destino Perfil (sheets Android / diálogos web). Alta de habeas data es pre-login. Consentimiento de perfilamiento (HU-53) es insumo de protección de pagos / vida hipotecario, no de dispositivo. Cada grant lleva enlace o vista al texto legal (ley colombiana en canal). | No origina cotización de dispositivo ni hipotecario desde el hub. |
| Evidencia | Paso de aviso-siniestro en evidencia-siniestro. Android: foto, video y recibo/daño (HU-38), con geo JIT. Web: archivo adjunto; la geolocalización del navegador es opcional. |
No es un destino. No pide cámara ni GPS en el splash. |
| Verificación biométrica | Solo Android. Prueba de vida (selfie, HU-48) es un paso del alta, después del registro y antes del consentimiento. El regreso usa el prompt del sistema (huella o rostro, HU-49) sobre login; si falla, el fallback es correo y contraseña (HU-50). |
No sustituye el alta con datos ni el login con contraseña. Web no pide biometría. |
| Aviso push | Solo Android. Permiso JIT (no en splash, no hay campana). La bandeja del sistema avisa pago automático, vencimiento, renovación y estado del siniestro. El toque abre la vista que ya existe: parametrico, aviso-vencimiento, aviso-renovacion o detalle-siniestro. |
No es un destino «Notificaciones». En web el mismo hecho se lee en la pantalla in-app. |
| Prestador | Anidado de Siniestros: mapa-prestadores (catálogo stub en mapa, ordenado por distancia, HU-39 / HU-40) y asistencia-sitio (pedido con la ubicación del cliente, HU-41). |
No es un quinto destino ni un rastreo en segundo plano. Web no tiene mapa. |
| Soporte digitalizado | Paso del trámite en Android: escaner-documentos captura con recorte (HU-42) y se adjunta al aviso o a la póliza (HU-43). |
No es un destino ni un escáner de escritorio. Web sigue con el archivo adjunto. |
Regla de producto: la cotización in-app llama el mismo núcleo que el socio/asesor (HU-3 → HU-6 → HU-7). El cliente acepta (HU-20 / HU-114); el núcleo emite o rechaza. Si emite, el objeto que el cliente consulta después es la póliza, no la cotización.
Etiqueta de objeto (validación 18 Sep 2026): toda card o pantalla de Cotizacion, Oferta, Poliza o Siniestro muestra ramo + estado (y el riesgo cotizado cuando ya existe). Un éxito «Póliza emitida» sin tipo deja al usuario perdido. Web se entendió mejor que Android solo porque nombraba el producto; L1 no adopta SOAT/Hogar — el portafolio es PDF §2.2.
Términos de canal: jerga de seguros en Colombia (póliza, ramo, prima, siniestro, habeas data). Ayuda in-situ (“¿qué es esto?”) en la vista; no un quinto destino. i18n de otros mercados es posterior.
nueva-cotizacion es un solo lugar en el sitemap. Lo que cambia es el contenido: el ramo elegido selecciona el esquema de DatosRiesgo y muestra una descripción corta de ese ramo. Pedir Valor del dispositivo en un microseguro de vida es un error de modelo, no un detalle de UI.
Prima vs valor asegurado. La prima es el precio del seguro que devuelve el motor (HU-4 / HU-6: prima, moneda, venceEn). No es el valor del bien. En Protección de dispositivos sí se calcula a partir de (entre otros factores) el valor del equipo: un Pixel de $2.400.000 no se cotiza igual que uno de $800.000. En vida la prima sale de la suma asegurada y la edad; en viaje, del destino y la duración; en clima/vuelos, del evento y el umbral; en pagos/hipotecario, de la cuota o el crédito. El usuario debe ver esa diferencia en el formulario, no un campo de dispositivo reciclado.
Insumos comunes a cualquier Cotizacion (HU-3, HU-6): producto/ramo, DatosRiesgo de ese ramo, y la oferta devuelta (prima, moneda, venceEn). Lo que no es común son los campos de riesgo.
| Ramo (PDF §2.2) | Objeto de riesgo | Qué pide la Cotizacion
|
Qué no pide | Dónde en L1 |
|---|---|---|---|---|
| Protección de dispositivos | El aparato cubierto (Robo, Pantalla, Hurto calificado) | Descripción del ramo + valor del dispositivo (COP), marca/modelo, ¿más de 12 meses? (HU-92 / HU-104). Sin IMEI, mapa ni Open Finance en el form. Prima derivada del valor del equipo. | Destino de viaje, saldo de crédito, umbral climático | Variante Dispositivo de nueva-cotizacion. |
| Seguros de viaje | El viaje / tiquete (PDF §1: embeber al comprar un tiquete) | Descripción del ramo + destino y duración (mínimo para tarificar un trayecto). | Valor / marca de un dispositivo | Variante Viaje de nueva-cotizacion (mismo nodo, otro DatosRiesgo). |
| Microseguros de vida | La persona asegurada | Descripción del ramo + suma asegurada y edad. Identidad ya capturada en el alta (HU-45). El riesgo es de vida, no de un bien. | Valor del dispositivo, marca/modelo, antigüedad del equipo | Variante Vida de nueva-cotizacion. |
| Clima y vuelos | El evento cubierto (retraso de vuelo o clima, PDF §5.1 #4). En el caso se llama seguro paramétrico; en canal el cliente ve Pago automático. | Descripción del ramo + tipo de evento, referencia (vuelo o zona) y umbral (HU-33). El cliente no «reporta» el siniestro: el evento dispara el pago. | Valor de un dispositivo; formulario de aviso asistido; la palabra paramétrico en título | Variante Clima y vuelos de nueva-cotizacion para cotizar; el resultado del disparo sigue en parametrico (título Pago automático). |
| Protección de pagos ligada a crédito | El crédito (consumo o vida hipotecario, PDF §2.4) | Descripción del ramo + cuota/plazo (consumo) o valor/plazo del crédito (hipotecario). Originación hipotecaria: consentimiento de perfilamiento (HU-53) como paso del mismo flujo. | Valor / marca / antigüedad de un dispositivo; tratar el consentimiento como destino paralelo | Variantes Pagos / Hipotecario de nueva-cotizacion. Hipotecario continúa en consentimiento-hipotecario → oferta-hipotecario → emisión. Nunca desde Perfil. |
L1 cotiza en un solo lugar (nueva-cotizacion, HU-1 / HU-92): no hay un tab por ramo. El selector de tipo cambia el formulario, la descripción y los factores de la prima. Extender el catálogo (más campos o ramos) es HA-25, no un quinto destino.
El aviso de siniestro es el mismo destino para todos los ramos; los campos (y las recomendaciones) siguen el ramo de la póliza vigente. Esas recomendaciones también se leen en lista/detalle de póliza, no solo al reportar. En dispositivo, Android pide foto, video y recibo/daño con geo JIT (PDF §5.2); web adjunta archivo. Vehículo o vida, cuando existan en catálogo, no reutilizan el formulario de pantalla rota.
Capacidades del dispositivo (PDF §5.2). Son del canal móvil y viven anidadas en los cuatro destinos. No abren un quinto tab. Web no las copia: la gestión completa sigue en escritorio, y el aviso equivalente es la pantalla in-app.
Splash es solo Android. Web arranca en login / idioma-region. login-error y los estados denegados de evidencia son variantes de pantalla, no rutas.
Shell A: stepper visible y numerado en orden real. En Android: idioma → registro → prueba de vida → consentimiento. En web el alta no tiene prueba de vida: idioma → registro → consentimiento. El onboarding presenta funcionalidad y beneficios de la app, en tono de seguro, no de marketing genérico. Splash no pide permisos (PDF §5.2: cámara, geo y notificaciones son JIT). Login reitera beneficios y, en Android, ofrece huella o rostro con fallback a contraseña; no sustituye el stepper.
Inicio (Shell B): resumen agrupado por objeto — oferta vigente · póliza · siniestro en curso · hipotecario si hay originación — no una lista plana de CTAs. Cada bloque lleva contexto (ramo + estado + siguiente paso). Nueva cotización sigue siendo CTA (no tab): descubrible en Inicio y en Pólizas vacías (primera vez). nueva-cotizacion es un solo nodo: el formulario es el DatosRiesgo del ramo elegido, con descripción del tipo. Vida hipotecario sigue con consentimiento como paso de ese flujo, no una card paralela. Sin red, Pólizas sigue siendo el mismo destino: la lista y el detalle leen la caché y avisan cuando sincronizan.
Un flujo vs un tab: alta, cotización→emisión→pago, hipotecario, aviso de siniestro, mapa de prestadores y escaneo avanzan por pasos bajo el destino padre. Cambiar de tab es atajo explícito, no otra card del mismo peso. El hilo cotizar → aceptar → emitir → pagar → renovación (lectura HU-64/HU-65; configurar automática es post-mvp) debe verse en las vistas de emisión y de póliza. El push no es un paso: el permiso es un overlay JIT y la bandeja abre una vista que ya está en el sitemap.
flowchart TB
subgraph Pre["Shell A · Pre-login · nav oculta"]
Splash["splash-solventa<br/>solo Android"]
Idioma["idioma-region<br/>paso 1"]
Alta["onboarding / registro<br/>paso 2"]
Vida["prueba-de-vida<br/>paso 3 · solo Android"]
Login["login<br/>biometria o contrasena"]
ConsentAlta["consentimiento-datos<br/>habeas data"]
Splash --> Idioma
Idioma --> Alta
Idioma --> Login
Alta -->|"Ya tengo cuenta"| Login
Login -->|"Crear cuenta"| Alta
Alta -->|"Android"| Vida --> ConsentAlta
Alta -->|"web"| ConsentAlta
Login --> Inicio
ConsentAlta --> Inicio
end
subgraph App["Post-login · 4 destinos"]
Inicio["Inicio<br/>resumen por objeto"]
Polizas["Polizas"]
Siniestros["Siniestros"]
Perfil["Perfil"]
end
subgraph InicioNest["Anidadas de Inicio · Shell C"]
NuevaCot["nueva-cotizacion<br/>DatosRiesgo del ramo"]
VerOferta["ver-oferta<br/>Cotizacion vigente"]
HipConsent["consentimiento-hipotecario<br/>paso del flujo"]
HipOferta["oferta-hipotecario"]
Rechazo["suscripcion-rechazada"]
end
subgraph Emit["Shell D / E · nav oculta"]
Emision["emision-progreso"]
Emitida["poliza-emitida<br/>ramo + numero"]
end
subgraph PolNest["Anidadas de Polizas · Shell C"]
ListaPol["lista-polizas<br/>online u offline"]
DetallePol["detalle-poliza<br/>cobertura y credencial"]
Venc["aviso-vencimiento"]
Renov["aviso-renovacion"]
end
subgraph SinNest["Anidadas de Siniestros · Shell C"]
ListaSin["lista-siniestros"]
AvisoSin["aviso-siniestro<br/>campos del ramo"]
Evidencia["evidencia-siniestro<br/>foto, video, recibo"]
Scan["escaner-documentos"]
Confirm["confirmacion-siniestro"]
DetalleSin["detalle-siniestro"]
Param["Pago automatico"]
Mapa["mapa-prestadores"]
Asist["asistencia-sitio"]
end
subgraph PerfNest["Overlays de Perfil · Close, no push"]
Sheets["idioma · consentimientos<br/>permisos JIT incl. push · cerrar sesion"]
end
Inicio -->|"CTA Nueva cotizacion"| NuevaCot
Inicio -->|"oferta vigente / Aceptar"| VerOferta
NuevaCot -->|"Cotizar"| VerOferta
VerOferta -->|"Aceptar Cotizacion"| Emision
HipOferta -->|"Aceptar oferta"| Emision
Inicio --> HipConsent --> HipOferta
Emision -->|"exito: Cotizacion se crea como Poliza"| Emitida
Emision -->|"rechazo"| Rechazo
Emitida -->|"Ver mi poliza"| DetallePol
Emitida -->|"Ir al inicio"| Inicio
Rechazo -->|"Volver al inicio"| Inicio
Polizas --- ListaPol
ListaPol --> DetallePol
ListaPol -.->|"primera vez / lista vacia"| NuevaCot
DetallePol --> Venc
DetallePol --> Renov
Siniestros --- ListaSin
ListaSin -->|"FAB Reportar"| AvisoSin
AvisoSin --> Evidencia --> Confirm --> ListaSin
AvisoSin --> Scan --> Confirm
ListaSin -->|"Ver avance"| DetalleSin
ListaSin --> Param
ListaSin --> Mapa --> Asist
Perfil --- Sheets
Inicio -.->|"atajo si hay poliza"| DetallePol
Inicio -.->|"atajo si hay caso"| DetalleSin
style NuevaCot fill:#E8F4F4,stroke:#005050
style VerOferta fill:#E8F4F4,stroke:#005050
style Emitida fill:#D4F7D4,stroke:#2E7D32
style DetallePol fill:#D4F7D4,stroke:#2E7D32
style ListaPol fill:#D4F7D4,stroke:#2E7D32
Cuatro destinos en NavigationBar (Android) o TopNav / hamburger 390 (web). El CTA Nueva cotización no se subraya como destino; sí debe verse en Inicio y en Pólizas si la lista está vacía. PDF §5.2: web y móvil no son la misma interfaz en dos tamaños. El contenido de negocio (ramo, objetos, estados) sí es el mismo. Cámara, biometría, push, mapa, billetera offline y escáner son del dispositivo: no se duplican en web. Copy de canal: ley colombiana; ayuda in-situ, no otro destino.
| Shell | Qué cubre | Nav |
|---|---|---|
| A | Splash, idioma, onboarding/registro, prueba de vida (solo Android), login (biometría o contraseña en Android; correo y contraseña en web), consentimiento de alta. Stepper en orden real. Onboarding = beneficios/funcionalidad; consentimiento con texto legal enlazado. Sin permisos en splash. | Oculta |
| B | Inicio (resumen por objeto), lista-pólizas (online u offline), lista-siniestros, hub-perfil | Visible, este destino |
| C | Cotización, oferta, detalle, avisos, reportar, evidencia, escáner, mapa de prestadores, asistencia, pago automático, hipotecario, rechazo | Visible, tab/destino padre |
| D / E |
emision-progreso, poliza-emitida
|
Oculta; no se cambia de tab a mitad de emisión |
| Anidada | Padre |
|---|---|
nueva-cotizacion, ver-oferta, hipotecario (consentimiento = paso + documento legal), suscripcion-rechazada
|
Inicio (el CTA también puede abrirse desde Pólizas vacías; el padre del flujo sigue siendo Inicio) |
detalle-poliza (resumen de ramo + recs de siniestro; sin red, cobertura y credencial), aviso-vencimiento, aviso-renovacion (lectura; el paso de renovación debe verse). El banner de sincronización es un estado de estas vistas, no una ruta |
Pólizas |
aviso-siniestro (campos según ramo de la póliza), evidencia (foto, video, recibo), escaner-documentos, confirmacion-siniestro, detalle-siniestro, mapa-prestadores, asistencia-sitio, pago automático (parametrico), permisos JIT (cámara, ubicación, notificaciones) |
Siniestros |
prueba-de-vida |
Shell A, entre registro y consentimiento. Solo Android |
| Prompt biométrico y fallback a contraseña | Estados de login, no rutas nuevas |
| Bandeja del sistema | No es ruta. Abre parametrico, aviso-vencimiento, aviso-renovacion o detalle-siniestro
|
| Sheets / diálogos de idioma, consentimientos y permisos | Perfil (Close; no empujan onboarding ni hipotecario) |
No hay quinto destino ni campana in-app. El permiso de notificaciones es un overlay JIT y la bandeja del sistema abre una vista que ya existe; no hay un centro de notificaciones (G-05).
Mapa de prestadores, billetera offline, escáner y biometría (G-07–G-10) sí entran en esta IA, anidados en los destinos de la sección 3. No son pantallas del canal web.
Siguen fuera: el portal de socios (HU-80), los tableros y SLAs (HU-69) y el portal asesor/operador. Son otro producto. Un glosario de la vista es ayuda in-situ, no un destino. Configurar renovación automática (HU-66 / HU-67) es post-mvp; esta IA muestra el paso en lectura (HU-64 / HU-65).
SOAT / Hogar en el prototipo web no son ramos de esta IA (PDF §2.2).
Sesión sobre prototipos Figma Android y web. Detalle: Resultado de validación usabilidad de usuario.
El sitemap de cuatro destinos se sostuvo. Lo que falló es el contenido de las vistas:
| Hallazgo | Regla de IA |
|---|---|
| No sabe qué póliza se emitió ni si Inicio es el home | Toda vista de objeto lleva ramo + estado; Inicio agrupa por objeto con contexto |
| No encontró Nueva cotización; Inicio tiene demasiados CTAs | Inicio = resumen agrupado; CTA de cotizar visible, no tab; también en Pólizas vacías |
| Numeración de onboarding incorrecta; no muestra beneficios | Shell A con stepper en orden real; onboarding = funcionalidad/beneficios |
| Lista de pólizas sin descripción del tipo |
lista-polizas / detalle: resumen del ramo
|
| Según el tipo, no se sabe qué hacer en un siniestro | Recomendaciones e insumos del ramo en póliza y en aviso-siniestro
|
| Consentimientos sin texto legal | Enlace o vista al documento; términos de ley colombiana |
| Jerga de seguros; pide asistencia en la vista | Ayuda in-situ; no quinto destino. Copy de aplicación de seguros, no marketing genérico |
| Cards y tabs se mezclan; no se ve si es el mismo flujo | Un flujo = pasos + padre; el cambio de tab es atajo explícito |
| No se leen cotización → firme → póliza → pago ni renovación automática | Hilo visible en emisión y póliza; configurar renovación es post-mvp, el paso sí se muestra |
| «Pago paramétrico» no es lenguaje de usuario | Canal: Pago automático (parametrico solo como slug) |
| Consentimiento Vida Crediticia parece otro producto | Hipotecario = un flujo; el grant es un paso |
| Web se entendió porque nombraba SOAT / vencimiento | Paridad de etiquetas, no copiar SOAT/Hogar al L1 |