Notifications in-app en temps réel

WebSocket pour les événements asynchrones : PDF prêts, imports terminés, mises à jour sur devis et commandes.

Votre compte reçoit des notifications en temps réel : lorsqu'un PDF est prêt, lorsqu'un import est terminé, lorsqu'il y a une mise à jour sur un devis ou une commande. Le tout via WebSocket.

WebSocket bridge et broadcast par tenant

Veendo maintient une connexion WebSocket ouverte entre le navigateur du client et le serveur (via Vercel ou une infra dédiée). Lorsqu'un événement se produit (nouvelle commande, devis approuvé, PDF généré), le backend envoie une notification instantanée au tenant via broadcast sur ce canal.

Pas de polling, pas de délai : dès que l'événement se produit, tous les utilisateurs du tenant ayant le navigateur ouvert reçoivent la notification immédiatement.

  • Connexion WebSocket persistante pour le push en temps réel
  • Broadcast par tenant — tous les utilisateurs connectés reçoivent
  • Zéro délai — dès que l'événement se produit, la notification arrive
  • Graceful degradation si WebSocket n'est pas disponible

In-app notification manager

Le service veendo-task gère la création et l'envoi des notifications in-app. Chaque événement (order:created, quote:status-updated, document:signature-request, etc.) passe par le notification manager qui résout le tenant concerné, le type de notification et le payload.

Les notifications sont persistées dans MongoDB et envoyées simultanément via WebSocket. Si le client n'est pas en ligne, il retrouve la notification lorsqu'il revient en ligne.

  • Prise en charge de 8 topic codes : system, orders, quotes, documents, support, billing, identity, default
  • Notifications persistantes — disponibles même après refresh
  • Filtres par readBy et dismissedBy pour suivre l'interaction utilisateur
  • Scope : tenant, user, agent — chaque notification sait à qui elle est destinée

Types d'événements pris en charge

En in-app, vous pouvez recevoir des notifications sur :

- Commandes : customer-new-order, customer-order-status-updated, customer-shipped-order, customer-cancel-order - Devis : customer-quote-sent, quote-status-updated, quote-communication - Documents : document-signature-request (pour la signature numérique) - Support : support-ticket-replied - Admin : vous voyez aussi les mêmes commandes/devis côté administration

  • Order : created, status-updated, shipped, cancelled
  • Quote : sent, status-updated, communication
  • Document : signature-request pour la e-signature
  • Support : ticket-replied pour le système de tickets interne
  • Subscription : tenant-created, plan-changed, trial-starting, etc.

Préférences et mise en silence

Les notifications in-app sont toujours activées par défaut. Il n'y a pas d'interface UI pour les désactiver (contrairement aux e-mails), mais les données de read/dismiss sont tracées — le système sait si vous les avez lues ou ignorées.

Vous pouvez développer une logique personnalisée (via API) pour mettre en silence certaines catégories si nécessaire.

  • Activées par défaut — ne nécessitent pas d'opt-in
  • Données readBy et dismissedBy tracées automatiquement
  • Aucune limite de rétention — les notifications restent disponibles indéfiniment
  • Synchronisation entre appareils : lues sur desktop, vues sur mobile