Notificaciones in-app en tiempo real

WebSocket para eventos asíncronos: PDF listos, imports completados, actualizaciones de presupuestos y pedidos.

Tu cuenta recibe notificaciones en tiempo real: cuando un PDF está listo, cuando un import se completa, cuando hay una actualización en un presupuesto o pedido. Todo vía WebSocket.

WebSocket bridge y broadcast por tenant

Veendo mantiene una conexión WebSocket abierta entre el navegador del cliente y el servidor (vía Vercel o infra dedicada). Cuando ocurre un evento (nuevo pedido, presupuesto aprobado, PDF generado), el backend envía una notificación instantánea al tenant mediante broadcast en ese canal.

Sin polling, sin delay: en cuanto ocurre el evento, todos los usuarios del tenant que tienen el navegador abierto reciben la notificación de inmediato.

  • Conexión WebSocket persistente para el push en tiempo real
  • Broadcast por tenant — todos los usuarios logueados reciben
  • Cero delay — en cuanto ocurre el evento, llega la notificación
  • Graceful degradation si WebSocket no está disponible

In-app notification manager

El servicio veendo-task gestiona la creación y el envío de notificaciones in-app. Cada evento (order:created, quote:status-updated, document:signature-request, etc.) pasa por el notification manager que resuelve el tenant interesado, el tipo de notificación y el payload.

Las notificaciones se persisten en MongoDB y se envían simultáneamente vía WebSocket. Si el cliente no está en línea, recupera la notificación cuando vuelve a estar en línea.

  • Compatibilidad con 8 topic codes: system, orders, quotes, documents, support, billing, identity, default
  • Notificaciones persistentes — disponibles incluso tras un refresh
  • Filtros por readBy y dismissedBy para rastrear la interacción del usuario
  • Scope: tenant, user, agent — cada notificación sabe a quién va dirigida

Tipos de eventos compatibles

En in-app puedes recibir notificaciones sobre:

- Pedidos: customer-new-order, customer-order-status-updated, customer-shipped-order, customer-cancel-order - Presupuestos: customer-quote-sent, quote-status-updated, quote-communication - Documentos: document-signature-request (para la firma digital) - Support: support-ticket-replied - Admin: también ves los mismos pedidos/presupuestos del lado administrativo

  • Order: created, status-updated, shipped, cancelled
  • Quote: sent, status-updated, communication
  • Document: signature-request para la e-signature
  • Support: ticket-replied para el sistema de tickets interno
  • Subscription: tenant-created, plan-changed, trial-starting, etc.

Preferencias y silenciado

Las notificaciones in-app están siempre habilitadas por defecto. No hay una interfaz UI para deshabilitarlas (a diferencia de los e-mails), pero los datos de read/dismiss se rastrean — el sistema sabe si las has leído o ignorado.

Puedes desarrollar una lógica personalizada (vía API) para silenciar ciertas categorías si es necesario.

  • Habilitadas por defecto — no requieren opt-in
  • Datos readBy y dismissedBy rastreados automáticamente
  • Sin límite de retención — las notificaciones permanecen disponibles indefinidamente
  • Sincronización entre dispositivos: léelas en desktop, velas en móvil