Implementa un sistema de notificacións escalable con Power Platform

Microsoft Power Platform ofrece unha forma de escalar aplicacións empresariais mentres se integra con servizos na nube de nivel empresarial para operacións de alto volume. O sistema escalable de notificacións utiliza esta capacidade para enviar recordatorios por SMS e correo electrónico para citas almacenadas en Microsoft Dataverse. Entre as funcionalidades principais inclúense:

  • As notificacións activábanse automaticamente unha semana, un día e unha hora antes da cita.
  • Capacidade para actualizar ou cancelar notificacións cando as citas son modificadas ou canceladas.
  • Power Apps serve como interface para que os usuarios xestionen as citas de forma eficiente.
  • Soporta miles de notificacións ao día mantendo a súa fiabilidade e rendemento.

O sistema usa Azure Service Bus para a programación de alto volume, Azure Functions para procesamento e entrega, e Dataverse para o seguimento persistente de citas e notificacións. As notificacións envíanse a través de SendGrid para correo electrónico e Twilio ou Azure Communication Services para SMS.

Esta arquitectura garante escalabilidade, fiabilidade e mantemento, superando as limitacións de depender exclusivamente de Power Automate para orquestrar grandes volumes de notificacións.

Suxestión

Este artigo ofrece un escenario de exemplo e unha arquitectura de exemplo xeral para ilustrar como enviar recordatorios por SMS e correo electrónico para citas almacenadas en Dataverse. O exemplo de arquitectura pódese modificar para moitos escenarios e industrias diferentes.

Diagrama de arquitectura

Diagrama Architecture que mostra a programación de citas Power Apps con Azure services.

Workflow

O fluxo de traballo do sistema envía notificacións de forma fiable nos momentos axeitados e soporta actualizacións e cancelacións:

  1. Creación de citas: Os usuarios crean citas a través da aplicación Power Apps canvas. A aplicación escribe os datos das citas directamente en Dataverse, asegurando que só os usuarios autorizados poidan acceder aos datos segundo os roles de seguridade.

  2. Activación de eventos: Cando se crea, actualiza ou cancela unha cita, Dataverse activa un proceso do lado do servidor, como un plugin, webhook ou fluxo lixeiro de Power Automate. Este evento inicia a lóxica de programación.

  3. Programación de notificacións: A función de Programador Azure calcula os tempos de notificación dunha semana, un día e unha hora antes da cita. Logo crea rexistros de notificación correspondentes en Dataverse e programa mensaxes en Azure Service Bus, almacenando números de secuencia para futuras actualizacións ou cancelacións.

  4. Actualizacións de citas: Se unha cita se modifica, a función de programador cancela as notificacións previamente programadas usando Service Bus números de secuencia. Actualiza os rexistros de notificacións en Dataverse e reprograma as notificacións baseándose nos novos detalles das citas.

  5. Cancelación de citas: Cando unha cita é cancelada, a Función de Programador elimina todas as mensaxes pendentes de Azure Service Bus e actualiza os rexistros correspondentes de notificación en Dataverse como cancelados.

  6. Entrega de notificacións: A función de entrega Azure procesa mensaxes programadas de Azure Service Bus. Envía notificacións por correo electrónico a través de SendGrid e SMS a través de Twilio ou Azure Communication Services. Despois de enviar, a función actualiza o rexistro de notificación con estado, repeticións e calquera información de erro.

  7. Monitorización e observabilidade: Application Insights e Azure Monitor rastrexan as execucións de funcións, a saúde da cola, o éxito da entrega e os fallos. As colas de letras mortas no Service Bus capturan mensaxes non entregables para análises posteriores.

Compoñentes

  • Power Apps (aplicación Canvas): A aplicación Canvas Power Apps serve como interface principal para xestionar citas. Permite aos usuarios crear, actualizar ou cancelar citas nunha interface intuitiva e de baixo código. A aplicación canvas interactúa directamente con Dataverse para ler e escribir rexistros de citas e notificacións. Tamén proporciona retroalimentación en tempo real ao usuario sobre a creación exitosa, actualizacións ou cancelacións de citas. A interface está deseñada para validar a entrada de datos, xestionar conflitos como citas solapadas e proporcionar fusos horarios localizados para notificacións.

  • Dataverse

    • Táboa de citas: Dataverse actúa como sistema de rexistro para toda a información de citas. Cada entrada de cita inclúe detalles como o paciente ou usuario, hora da cita, tipo de servizo e estado. A táboa de citas está deseñada para activar eventos en operacións de crear, actualizar ou eliminar. O Scheduler Azure Function escoita estes eventos para calcular e programar notificacións. Dataverse ofrece seguridade integrada mediante control de acceso baseado en roles, permisos a nivel de campo e auditorías, asegurando que a información sensible das citas só sexa accesible para os usuarios axeitados. Ademais, a súa integración con Power Platform garante un acceso de baixa latencia e unha interacción fluída con outros compoñentes.

    • Táboa de notificacións: A táboa de notificacións almacena metadatos de cada notificación programada, rastrexando o canal (SMS ou correo electrónico), o tempo de entrega programada, o estado (Programado, Enviado, Fallido ou Cancelado), o número de intentos e o número de secuencia Service Bus asociado. O sistema proporciona seguimento, informes e xestión de erros en tempo real para todas as notificacións mantendo estes datos en Dataverse. A táboa permite aos administradores auditar o historial de entregas, monitorizar intentos fallidos e tomar medidas correctivas se é necesario. Tamén soporta actualizacións automáticas que se activan por cambios nas citas, asegurando que as notificacións sigan sendo precisas.

  • Azure Functions

    • Programador: A función de Programador calcula os tempos de notificación baseándose nos detalles das citas. Determina recordatorios para unha semana, un día e unha hora antes da cita e crea rexistros correspondentes en Dataverse. Tamén programa mensaxes en Azure Service Bus, almacenando os números de secuencia para permitir futuras cancelacións ou reprogramacións. Esta función pode xestionar grandes volumes de citas sen degradación do rendemento e garante idempotencia para non programar notificacións duplicadas. O seu deseño sen servidor permítelle escalar automaticamente segundo a carga de eventos e garante a eficiencia operativa.

    • Delivery: A Función de Entrega procesa mensaxes de Azure Service Bus cando chega a súa hora programada de entrega. Determina o canal correcto para cada notificación, como correo electrónico vía SendGrid ou SMS vía Twilio/Azure Communication Services, e envía a mensaxe en consecuencia. Despois da entrega, actualiza o rexistro de notificación en Dataverse co estado e os datos de reintento se ocorre un fallo. A función tamén implementa mecanismos de xestión de erros, rexistro e reintentos, asegurando que entregue mensaxes de forma fiable se hai fallos transitorios ou límites de taxa do provedor. Escala automaticamente co número de mensaxes no Service Bus para xestionar picos no volume de notificacións.

  • Azure Service Bus: Azure Service Bus é a columna vertebral do sistema de programación de notificacións. Proporciona unha cola de mensaxes duradeira, de alto rendemento e con tempo específico, asegurando que entregue as mensaxes exactamente cando sexa necesario. Os números de secuencia permiten cancelar ou reprogramar mensaxes se hai un cambio na cita, mantendo a consistencia. Service Bus tamén soporta colas de letras mortas para capturar mensaxes que non se entregan tras múltiples intentos, proporcionando aos administradores a capacidade de investigar e corrixir erros. A súa capacidade para desvincular a programación da entrega garante que o sistema siga sendo responsivo e escalable.

  • Provedores de correo electrónico e SMS: Os servizos de comunicación externos encarganse da entrega real das notificacións. SendGrid utilízase para enviar notificacións por correo electrónico, proporcionando mecanismos robustos de seguimento, análises e reintentos. Twilio e Azure Communication Services entregan notificacións SMS, soportando mensaxes de alto volume con fiabilidade. A Función de Entrega interactúa con estes provedores usando claves API seguras almacenadas en Azure Key Vault e implementa estratexias de reintentos para xestionar erros transitorios ou problemas de limitación de taxa. Ao externalizar a entrega a provedores especializados, o sistema garante unha alta fiabilidade e reduce a carga operativa.

  • Azure Key Vault: Podes almacenar de forma segura todas as credenciais sensibles e claves API en Azure Key Vault. Azure Functions accede aos segredos a través de identidades xestionadas, que eliminan a necesidade de almacenar datos sensibles en código ou ficheiros de configuración. Key Vault asegura que cifra as credenciais en repouso, audita o acceso e aplica automaticamente políticas de rotación para manter o cumprimento da seguridade.

  • Ferramentas de monitorización e observabilidade: O sistema utiliza Application Insights e Azure Monitor para proporcionar visibilidade completa sobre a saúde e o rendemento da solución. Application Insights rastrexa execucións de funcións, lonxitudes das colas, estado de entrega e fallos, mentres que Azure Monitor proporciona alertas para comportamentos anormais, atrasos de mensaxes ou fallos de servizos. Podes usar rexistros e telemetría para a resolución de problemas, análise operativa e planificación da capacidade, asegurando que os administradores teñan a información necesaria para manter unha alta fiabilidade e rendemento operativo.

Detalles do escenario

Esta solución está deseñada para organizacións que necesitan enviar recordatorios oportunos para citas programadas, como clínicas sanitarias, centros de vacinación ou empresas de servizos. Os usuarios interactúan a través de Power Apps para introducir os detalles das citas, que se almacenan en Dataverse e procesan inmediatamente para programar notificacións. O sistema calcula automaticamente os tempos de recordatorio, como unha semana, un día e unha hora antes da cita, e asegura que os entrega a través do canal correspondente.

O sistema pode xestionar miles de notificacións diarias sen degradación do rendemento, posible pola separación entre xestión de citas, programación e entrega de mensaxes. Garante que os recordatorios sigan sendo precisos mesmo cando as citas se desprazan ou cancelan, reprogramando ou eliminando dinámicamente as mensaxes do Service Bus. Cada paso do proceso rexístrase e faise seguimento. Este enfoque garante que tanto os administradores como o persoal de apoio teñan visibilidade sobre o comportamento do sistema e o estado de cada notificación enviada.

Consideracións

Estas consideracións implementan os piares de *Well-Architected*, un conxunto de principios orientadores que melloran a calidade dunha carga de traballo. Power Platform Aprende máis en Microsoft Power Platform Ben Arquitectado.

Seguranza

O sistema integra a seguridade en todo o proceso usando Microsoft Entra ID para roles de identidade e Dataverse para restrinxir o acceso a citas e notificacións. Os usuarios de Power Apps autentican usando Microsoft Entra ID, asegurando que todas as interaccións con Dataverse estean autorizadas e rexistradas. Azure Functions usa identidades xestionadas para interactuar de forma segura con Dataverse, Service Bus e Key Vault sen almacenar credenciais en código ou ficheiros de configuración.

Garda as credenciais sensibles, como as claves SendGrid e Twilio, só en Azure Key Vault e accede a elas a través de identidades xestionadas. Podes asegurar aínda máis a comunicación entre os servizos de Azure usando puntos finais privados e redes virtuais, reducindo a exposición á internet pública. Todos os intercambios de mensaxes entre os compoñentes do sistema cumpren estándares de comunicación cifrados para protexer os datos en repouso e en tránsito.

Excelencia operativa

Consegues a excelencia operativa mediante monitorización continua, observabilidade e alertas automatizadas. Application Insights recolle telemetría detallada das Azure Functions, incluíndo tempos de execución, fallos, intentos e métricas de rendemento. Azure Monitor rastrexa a saúde das colas de Azure Service Bus, identificando posibles cuellos de botella ou atrasos. As colas de letras mortas proporcionan un mecanismo para capturar e solucionar problemas de mensaxes que non se procesan tras varios intentos.

Os administradores poden configurar alertas para notificarlles fallos relacionados co procesamento de mensaxes, interrupcións do provedor ou crecemento anormal da cola. Dataverse mantén unha pista de auditoría dentro da táboa de Notificacións, permitindo aos administradores seguir o ciclo de vida de cada notificación. Como Azure Functions son sen estado e escalan automaticamente, o sistema pode responder a aumentos súbitos no volume de mensaxes sen intervención manual, asegurando un rendemento e un tempo de funcionamento consistentes.

Eficiencia de desempeño

A arquitectura está optimizada para un alto rendemento e escalabilidade. Azure Service Bus permite un manexo eficiente das notificacións programadas sen a sobrecarga que introducirían os atrasos baseados en Power Automate. A separación da programación e entrega en funcións separadas permite que cada compoñente escale de forma independente segundo a demanda. A Función de Entrega benefíciase do escalado automático, permitindo procesar picos nas mensaxes salientes sen afectar aos sistemas orientados ao usuario.

Ademais, o uso de identidades xestionadas e estratexias de caché para a autenticación do provedor reduce a latencia durante a entrega das mensaxes. O sistema minimiza a sobrecarga de almacenamento innecesaria mantendo só os metadatos esenciais en Dataverse e apoiando estratexias de arquivo para notificacións antigas. Ao combinar as capacidades de Power Platform coa infraestrutura escalable de mensaxería de Azure, o sistema garante unha entrega rápida, eficiente e rendible das notificacións a escala empresarial.

Colaborador

Microsoft mantén este artigo. Os seguintes colaboradores escribiron este artigo.

Autores principais: