Referencia · S-PLAN

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

CanalDónde viveMarca de leídoÚsalo para
Notificación globalnotificaciones/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 personalnotificaciones/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.

La bandera 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.

Regla práctica: ¿el aviso es para el equipo de Planeación y basta con que lo atienda una persona? Notificación global. ¿Es para todos los responsables del plan? Alerta global.

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.