Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Microsoft Power Platform proporciona una manera de escalar aplicaciones empresariales a la vez que se integra con servicios en la nube de nivel empresarial para operaciones de gran volumen. El sistema de notificaciones escalable usa esta funcionalidad para enviar avisos por correo electrónico y SMS para citas almacenadas en Microsoft Dataverse. Entre las características clave se incluyen:
- Las notificaciones se desencadenaron automáticamente una semana, un día y una hora antes de la cita.
- Capacidad de actualizar o cancelar notificaciones cuando se modifican o cancelan las citas.
- Power Apps actúa como interfaz de usuario para que los usuarios administren citas de forma eficaz.
- Admite miles de notificaciones al día mientras permanece confiable y eficaz.
El sistema usa Azure Service Bus para la programación de gran volumen, Azure Functions para el procesamiento y la entrega, y Dataverse para el seguimiento persistente de citas y notificaciones. Las notificaciones se envían a través de SendGrid para el correo electrónico y Twilio o Azure Communication Services para SMS.
Esta arquitectura garantiza la escalabilidad, la confiabilidad y el mantenimiento, superando las limitaciones de confiar únicamente en Power Automate para orquestar grandes volúmenes de notificaciones.
Sugerencia
En este artículo se proporciona un escenario de ejemplo y una arquitectura de ejemplo generalizada para ilustrar cómo enviar avisos de SMS y correo electrónico para las citas almacenadas en Dataverse. El ejemplo de arquitectura se puede modificar para muchos escenarios y sectores diferentes.
Diagrama de arquitectura
Flujo de trabajo
El flujo de trabajo del sistema envía notificaciones de forma confiable en los momentos correctos y admite actualizaciones y cancelaciones:
Creación de citas: los usuarios crean citas mediante la aplicación de Power Apps en canvas. La aplicación escribe los datos de cita directamente en Dataverse, lo que garantiza que solo los usuarios autorizados puedan acceder a los datos en función de los roles de seguridad.
Desencadenamiento de eventos: cuando se crea, actualiza o cancela una cita, Dataverse desencadena un proceso del lado servidor, como un complemento, un webhook o un flujo ligero de Power Automate. Este evento inicia la lógica de programación.
Programación de notificaciones: la función de Azure Scheduler calcula los tiempos de notificación de una semana, un día y una hora antes de la cita. A continuación, crea los registros de notificación correspondientes en Dataverse y programa mensajes en Azure Service Bus, almacenando números de secuencia para futuras actualizaciones o cancelaciones.
Actualizaciones de citas: si se modifica una cita, la función de planificador cancela las notificaciones programadas anteriormente mediante números de secuencia de Service Bus. Actualiza los registros de notificación en Dataverse y vuelve a programar las notificaciones en función de los nuevos detalles de la cita.
Cancelación de citas: cuando se cancela una cita, la función Scheduler quita todos los mensajes pendientes de Azure Service Bus y actualiza los registros de notificación correspondientes en Dataverse como cancelado.
Entrega de notificaciones: La función de Azure delivery procesa los mensajes programados desde Azure Service Bus. Envía notificaciones por correo electrónico a través de SendGrid y SMS a través de Twilio o Azure Communication Services. Después del envío, la función actualiza el registro de notificación con el estado, los reintentos y cualquier información de error.
Supervisión y observabilidad: Application Insights y Azure Monitor realizan un seguimiento de las ejecuciones de funciones, el estado de la cola, el éxito de la entrega y los errores. Las colas de mensajes fallidos en Service Bus capturan mensajes que no se pueden entregar para su análisis posterior.
Components
Power Apps (aplicación de lienzo): La aplicación de lienzo de Power Apps sirve como la interfaz principal de usuario para administrar citas. Permite a los usuarios crear, actualizar o cancelar citas en una interfaz intuitiva y de poco código. La aplicación Canvas interactúa directamente con Dataverse para leer y escribir registros de citas y notificaciones. También proporciona comentarios en tiempo real al usuario sobre la creación exitosa, las actualizaciones o la cancelación de citas. La interfaz de usuario está diseñada para validar la entrada de datos, controlar conflictos como citas superpuestas y proporcionar zonas horarias localizadas para las notificaciones.
-
Tabla de citas: Dataverse actúa como sistema de registro para toda la información de citas. Cada entrada de cita incluye detalles como el paciente o el usuario, la hora de la cita, el tipo de servicio y el estado. La tabla Appointment está diseñada para desencadenar eventos en operaciones de creación, actualización o eliminación. Scheduler Azure Function escucha estos eventos para calcular y programar notificaciones. Dataverse proporciona seguridad integrada a través del control de acceso basado en rol, los permisos de nivel de campo y la auditoría, lo que garantiza que la información confidencial de la cita solo sea accesible para los usuarios adecuados. Además, su integración con Power Platform garantiza el acceso de baja latencia y la interacción perfecta con otros componentes.
Tabla de notificaciones: la tabla Notification almacena los metadatos de cada notificación programada, el seguimiento del canal (SMS o correo electrónico), el tiempo de entrega programado, el estado (Programado, Enviado, Erróneo o Cancelado), el número de intentos y el número de secuencia de Service Bus asociado. El sistema proporciona seguimiento en tiempo real, informes y control de errores para todas las notificaciones manteniendo estos datos en Dataverse. La tabla permite a los administradores auditar el historial de entrega, supervisar los intentos erróneos y tomar medidas correctivas si es necesario. También admite actualizaciones automáticas desencadenadas por cambios de cita, lo que garantiza que las notificaciones sigan siendo precisas.
-
Programador: la función Scheduler calcula los tiempos de notificación en función de los detalles de la cita. Determina los recordatorios de una semana, un día y una hora antes de la cita y crea los registros correspondientes en Dataverse. También programa mensajes en Azure Service Bus, almacenando los números de secuencia para permitir la cancelación futura o la reprogramación. Esta función puede gestionar grandes volúmenes de citas sin degradación del rendimiento y garantiza la idempotencia para que no programe notificaciones duplicadas. Su diseño sin servidor le permite escalar automáticamente en función de la carga de eventos y garantiza la eficacia operativa.
Entrega: la función delivery procesa los mensajes de Azure Service Bus cuando llega su tiempo de entrega programado. Determina el canal correcto para cada notificación, como el correo electrónico a través de SendGrid o SMS a través de Twilio/Azure Communication Services, y envía el mensaje en consecuencia. Después de la entrega, actualiza el registro de notificación en Dataverse con el estado y vuelve a intentar los datos si se produce un error. La función también implementa mecanismos de control de errores, registro y reintento, lo que garantiza que entrega mensajes de forma confiable si hay límites de frecuencia de proveedor o errores transitorios. Se escala automáticamente con el número de mensajes de Service Bus para controlar los picos en el volumen de notificaciones.
Azure Service Bus: Azure Service Bus es la red troncal del sistema de programación de notificaciones. Proporciona colas de mensajes duraderas, de alto rendimiento y con sincronización temporal, lo que garantiza la entrega de mensajes exactamente cuando sea necesario. Los números de secuencia permiten cancelar o volver a programar mensajes si hay un cambio de cita, manteniendo la coherencia. Service Bus también admite colas de mensajes de letra muerta para capturar mensajes que no se entregan después de varios reintentos, proporcionando a los administradores la capacidad de investigar y corregir errores. Su capacidad para desacoplar la programación de la entrega garantiza que el sistema siga respondiendo y escalable.
Proveedores de correo electrónico y SMS: los servicios de comunicación externos controlan la entrega real de notificaciones. SendGrid se usa para enviar notificaciones por correo electrónico, proporcionando un seguimiento sólido, análisis y mecanismos de reintento. Twilio y Azure Communication Services proporcionan notificaciones SMS, lo que admite la mensajería de gran volumen con confiabilidad. La función de entrega interactúa con estos proveedores mediante claves de API seguras almacenadas en Azure Key Vault e implementa estrategias de reintento para controlar errores transitorios o problemas de limitación de velocidad. Al subcontratar la entrega a proveedores especializados, el sistema garantiza una alta confiabilidad y reduce la sobrecarga operativa.
Azure Key Vault: puede almacenar de forma segura todas las credenciales confidenciales y las claves de API en Azure Key Vault. Azure Functions accede a secretos a través de identidades administradas, lo que elimina la necesidad de almacenar datos confidenciales en archivos de código o configuración. Key Vault garantiza que cifra las credenciales en reposo, audita el acceso y aplica automáticamente las directivas de rotación para mantener el cumplimiento de seguridad.
Herramientas de supervisión y observabilidad: el sistema usa Application Insights y Azure Monitor para proporcionar visibilidad completa del estado y el rendimiento de la solución. Application Insights realiza un seguimiento de las ejecuciones de funciones, las longitudes de cola, el estado de entrega y los errores, mientras que Azure Monitor proporciona alertas de comportamiento anómalo, trabajos pendientes de mensajes o errores de servicio. Puede usar registros y telemetría para la solución de problemas, el análisis operativo y el planeamiento de la capacidad, lo que garantiza que los administradores tengan la información necesaria para mantener una alta confiabilidad y rendimiento operativo.
Detalles del escenario
Esta solución está diseñada para organizaciones que necesitan enviar recordatorios puntuales para citas programadas, como clínicas sanitarias, centros de vacunación o empresas basadas en servicios. Los usuarios interactúan a través de Power Apps para especificar los detalles de la cita, que se almacenan en Dataverse y se procesan inmediatamente para programar notificaciones. El sistema calcula automáticamente las horas de recordatorio, como una semana, un día y una hora antes de la cita, y garantiza que entrega esos recordatorios a través del canal adecuado.
El sistema puede controlar miles de notificaciones diarias sin degradación del rendimiento, habilitadas por la separación entre la administración de citas, la programación y la entrega de mensajes. Garantiza que los recordatorios sigan siendo precisos incluso cuando las citas se desplazan o cancelan mediante la reprogramación o eliminación dinámica de mensajes de Service Bus. Cada paso del proceso se registra y realiza un seguimiento. Este enfoque garantiza que tanto los administradores como el personal de soporte técnico tengan visibilidad sobre el comportamiento del sistema y el estado de cada notificación enviada.
Consideraciones
Estas consideraciones implementan los pilares de Power Platform Well-Architected, un conjunto de principios rectores que mejoran la calidad de una carga de trabajo. Obtenga más información en Buena arquitectura de Microsoft Power Platform.
Security
El sistema integra la seguridad a lo largo de todo el sistema usando Microsoft Entra ID para identidad y roles de Dataverse para restringir el acceso a citas y notificaciones. Los usuarios de Power Apps se autentican mediante el identificador de Entra de Microsoft, lo que garantiza que todas las interacciones con Dataverse estén autorizadas y registradas. Azure Functions usa identidades administradas para interactuar de forma segura con Dataverse, Service Bus y Key Vault sin almacenar credenciales en archivos de código o configuración.
Almacene credenciales confidenciales, como las claves SendGrid y Twilio, solo en Azure Key Vault y acceda a ellas a través de identidades administradas. Puede proteger aún más la comunicación entre los servicios de Azure mediante puntos de conexión privados y redes virtuales, lo que reduce la exposición a la red pública de Internet. Todos los intercambios de mensajes entre los componentes del sistema cumplen los estándares de comunicación cifrados para proteger los datos en reposo y en tránsito.
Excelencia operativa
Puede lograr la excelencia operativa a través de la supervisión continua, la observabilidad y las alertas automatizadas. Application Insights recopila telemetría detallada de Azure Functions, incluidos los tiempos de ejecución, los errores, los reintentos y las métricas de rendimiento. Azure Monitor realiza un seguimiento del estado de las colas de Azure Service Bus, identificando posibles cuellos de botella o trabajos pendientes. Las colas de mensajes muertos proporcionan un mecanismo para capturar y resolver problemas de mensajes que no se pueden procesar después de varios intentos.
Los administradores pueden configurar alertas para notificarles errores relacionados con el procesamiento de mensajes, las interrupciones del proveedor o el crecimiento anómalo de la cola. Dataverse mantiene una pista de auditoría dentro de la tabla Notificación, lo que permite a los administradores realizar un seguimiento del ciclo de vida de cada notificación. Dado que Azure Functions no tiene estado y se escala automáticamente, el sistema puede responder a aumentos repentinos en el volumen de mensajes sin intervención manual, lo que garantiza un rendimiento y un tiempo de actividad coherentes.
Eficiencia del rendimiento
La arquitectura está optimizada para lograr un alto rendimiento y escalabilidad. Azure Service Bus permite un control eficaz de las notificaciones programadas sin la sobrecarga que introducirían los retrasos basados en Power Automate. La separación de la programación y la entrega en funciones independientes permite que cada componente se escale de forma independiente en función de la demanda. La función de entrega se beneficia del escalado automático, lo que le permite procesar picos en los mensajes salientes sin afectar a los sistemas orientados al usuario.
Además, el uso de identidades administradas y estrategias de almacenamiento en caché para la autenticación del proveedor reduce la latencia durante la entrega de mensajes. El sistema minimiza la sobrecarga de almacenamiento innecesaria al mantener solo metadatos esenciales en Dataverse y admitir estrategias de archivado para las notificaciones anteriores. Mediante la combinación de funcionalidades de Power Platform con la infraestructura de mensajería escalable de Azure, el sistema garantiza una entrega rápida, eficaz y rentable de notificaciones a escala empresarial.
Colaborador
Microsoft mantiene este artículo. Los colaboradores siguientes escribieron este artículo.
Autores principales:
- Summit Bajracharya, Arquitecto de soluciones