Notificaciones en tiempo real en CRM: opciones y cuándo usar cada una
WebSockets, FCM, email: patrones de implementación y personalización por usuario. Arquitectura técnica para notificaciones enterprise con ejemplos reales.
WebSockets, FCM, email: patrones de implementación y personalización por usuario. Arquitectura técnica para notificaciones enterprise con ejemplos reales.
Consultoria técnica para notificaciones enterprise en VitaCRM
En el ecosistema CRM moderno, las notificaciones en tiempo real no son un lujo, son una necesidad operativa. Cada lead que entra, cada cambio de estado en el pipeline, cada interacción del cliente debe ser comunicada instantáneamente al equipo correcto.
Pero ¿cuándo usar WebSockets? ¿Cuándo FCM? ¿Cuándo email? En este artículo técnico analizamos cada patrón, sus casos de uso y cómo implementarlos correctamente en un CRM enterprise.
Tipo | Latencia | Caso de Uso | Complejidad |
---|---|---|---|
WebSockets
|
<100ms | Pipeline updates, chat, colaboración | Alta |
FCM Push
|
<5s | Móvil, alertas críticas | Media |
Email
|
30s-5min | Reportes, documentación | Baja |
WebSockets son la columna vertebral de las notificaciones instantáneas. Permiten comunicación bidireccional persistente entre cliente y servidor, ideal para actualizaciones de estado en tiempo real en el CRM.
const ws = new WebSocket('wss://api.vitacrm.com/ws'); ws.onopen = () => { // Autenticar y suscribirse a canales ws.send(JSON.stringify({ type: 'auth', token: userToken, channels: ['pipeline_updates', 'team_activity'] })); }; ws.onmessage = (event) => { const notification = JSON.parse(event.data); switch(notification.type) { case 'lead_assigned': showInAppNotification(notification); updatePipelineView(); break; case 'deal_moved': animateKanbanCard(notification.dealId); break; } };
Cambios de estado, reasignaciones, nuevos leads
Comentarios, mentions, actividad en tiempo real
KPIs, métricas, contadores actualizados
Health checks, procesos background
FCM es la solución de Google para push notifications multiplataforma. Esencial para mantener a los equipos móviles conectados con el CRM, incluso cuando la app no está activa.
const admin = require('firebase-admin'); async function sendCRMNotification(userId, notificationData) { const userTokens = await getUserFCMTokens(userId); const message = { notification: { title: notificationData.title, body: notificationData.body, icon: '/icons/crm-icon.png' }, data: { type: notificationData.type, dealId: notificationData.dealId, clickAction: notificationData.action }, tokens: userTokens }; try { const response = await admin.messaging().sendMulticast(message); // Cleanup invalid tokens if (response.failureCount > 0) { await cleanupInvalidTokens(response.responses, userTokens); } return response; } catch (error) { console.error('FCM Error:', error); } }
SDR recibe leads, AE recibe cambios de pipeline, Manager recibe alertas de forecast
Respeta zona horaria, no envía fuera de horario laboral, pausa en fines de semana
Alta: deals > $10k, Media: leads calificados, Baja: updates de sistema
Aunque no es tiempo real, el email sigue siendo fundamental para notificaciones documentales: reportes automáticos, resúmenes diarios, alertas de SLA y comunicación formal con clientes.
Genera eventos: lead_created, deal_updated, task_assigned. Usa event sourcing pattern.
Buffer de eventos, garantiza entrega, maneja picos de carga, patrón pub/sub.
Procesa eventos, aplica reglas de negocio, filtra por usuario, maneja plantillas.
WebSocket Server, FCM Gateway, SMTP Service. Cada canal con su SLA específico.
En VitaCRM procesamos más de 2M de notificaciones diarias para 5000+ empresas activas. La arquitectura híbrida WebSocket+FCM+Email permite que cada usuario reciba exactamente las notificaciones que necesita, cuando las necesita.
Setup de event sourcing, message queue, event schemas básicos
Server WebSocket, autenticación, channels, cliente básico
Setup FCM, token management, mobile app integration
Dashboard de configuración, métricas de entrega, A/B testing
Recibe arquitecturas, patterns y casos de uso técnicos para CRM