Notificaciones y alertas
S-PLAN avisa por tres canales distintos, con reglas de lectura muy diferentes. Confundirlos lleva al problema clásico: publicar un aviso importante que desaparece para todos porque una sola persona lo marcó como leído.
Los tres canales de un vistazo
| Canal | Dónde vive | Marca de leído | Úsalo para |
|---|---|---|---|
| Notificación global | notificaciones/s-plan/global/{id} |
Compartida el primero que la lee la oculta para todos | Eventos del sistema dirigidos al equipo de Planeación. |
| Notificación personal | notificaciones/s-plan/personal/{correoSaneado}/{id} |
Individual | Mensajes de la conversación de una evidencia. |
| Alerta global (toast) | S-PLAN/alertas_globales/{id} |
Por navegador | Avisos masivos: plazos, cierres de ciclo, mantenimientos. |
Notificaciones globales
Las genera el sistema. Hoy el evento principal es la carga de evidencias:
notificaciones/s-plan/global/{pushId} = {
type: "evidencia_subida",
title: "Nueva evidencia cargada",
body: "responsable@unitropico.edu.co subió 1 archivo(s)",
ciclo: "2026_1",
metaId: "E1M5",
metaNombre: "[E1M5] Implementar las políticas institucionales…",
accionId: "A-024",
accionNombre:"3. Realizar monitoreo, seguimiento y evaluación…",
correo: "…",
responsableId: "Z45UVT",
read: false,
ts: 1769270793979
}
Se consultan desde la campana del encabezado y desde /s-plan/notificaciones. El panel muestra las no leídas y permite marcarlas una a una o todas de golpe.
read es compartida. Vive en la notificación, no en
el usuario: cuando alguien la marca leída, deja de aparecer para todo el equipo. Es aceptable para un flujo de trabajo
interno —el primero que atiende el aviso lo cierra— pero es exactamente lo que no debe usarse para comunicar
algo a toda la comunidad. Para eso están las alertas globales.Notificaciones personales
Se generan cuando alguien escribe en la conversación de una evidencia. Se crea una copia por destinatario, bajo su correo saneado (los puntos se reemplazan por guiones bajos):
notificaciones/s-plan/personal/{correoSaneado}/{msgKey} = {
type: "chat",
title: "Nuevo mensaje en evidencia",
body: "Nombre de quien escribe: primeros 140 caracteres…",
ciclo, metaId, accionId, evidId,
ruta: "S-PLAN/evidencias/{ciclo}/{meta}/{accion}/{evidId}/observaciones",
fromUid, fromNombre,
read: false, readAt: null, ts
}
Al ser una copia por persona, cada quien gestiona su propia bandeja. El remitente nunca se autonotifica.
Alertas globales (toast)
Es el canal para hablarle a toda la comunidad de S-PLAN. Aparecen como aviso flotante en todas las páginas vivas de la aplicación e incluso sin sesión iniciada, porque su lectura es anónima.
S-PLAN/alertas_globales/{id} = {
activo: true,
tipo: "warning", // info | warning | danger | success
titulo: "Cierre segundo cuatrimestre: cargue de evidencias",
mensaje: "Se informa que el próximo 21 de agosto vence el plazo…",
fecha_limite: "2026-08-21",
cta_texto: "Cargar evidencias",
cta_url: "/s-plan/cargar2.html",
desde: 1785507305266, // ventana de visibilidad (opcional)
hasta: 1787374799000,
creado: 1785507305266
}
Cómo se descartan
Botón “Entendido”
Guarda el id en localStorage
(splan_alertas_ocultas): permanente en ese equipo. No vuelve a mostrarse.
Botón “✕”
Guarda el id en sessionStorage
(splan_alertas_ocultas_sesion): solo esa pestaña. Reaparece en la siguiente visita.
- Se muestran como máximo dos alertas a la vez, ordenadas por fecha de creación.
- Publicar un id nuevo vuelve a mostrar el aviso a todo el mundo, incluso a quien ya descartó el anterior. Es la forma correcta de "reactivar" una campaña: crear otra alerta, no reactivar la vieja.
- Poner
activo: falsela retira de inmediato. - Para probar sin borrar el navegador:
window.__splanAlertasReset()desde la consola.
Encuesta de satisfacción
Las pantallas principales muestran de vez en cuando un toast que pide calificar la experiencia. Las respuestas
quedan en S-PLAN/toast_satisfaccion/{pushId}. Es un canal de retroalimentación del producto, no de
seguimiento del plan, y no interviene en ningún cálculo.
Dónde encaja el resto de la suite
El encabezado compartido de PlanItOne muestra también las notificaciones de otras aplicaciones bajo el nodo raíz
notificaciones. Las de S-PLAN son las que llevan la app s-plan; las páginas de este portal
usan el mismo componente.