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