Compartir a través de

Comportamiento esperado de un bot de Microsoft Teams multi-organización y soporte para mensajes proactivos cross-tenant

Joaquin Capdevila Taboada 20 Puntos de reputación
2025-11-19T13:07:17+00:00

Hola, Estamos desarrollando un bot para Microsoft Teams que debe funcionar en múltiples organizaciones (tenants externos) que contraten nuestro servicio. El bot está publicado como SingleTenant, y las empresas instalarán el bot en sus entornos mediante sideload (.zip) o a través del catálogo privado.

Ya entendimos la arquitectura recomendada por Microsoft y hemos realizado varias pruebas, pero necesitamos confirmar algunos puntos críticos antes de avanzar.


1. Instalación en múltiples tenants

Según la documentación, un bot registrado como SingleTenant puede igualmente ser instalado por múltiples organizaciones externas si se distribuye vía manifest (.zip) o catálogo privado. Queremos confirmar si este es el comportamiento esperado y si Microsoft da soporte oficial para este flujo.


2. Auto-registro de usuarios

El comportamiento actual es:

Un administrador instala el bot en la organización.

Cada empleado debe abrir el bot al menos una vez para quedar registrado (capturamos tenantId, aadObjectId, serviceUrl, etc.).

Necesitamos confirmar si existe alguna forma oficial de que un administrador instale el bot para toda la organización y que el bot pueda enviar mensajes a todos los usuarios sin necesidad de interacción previa.

Hasta donde sabemos, Teams requiere que el usuario haya iniciado una conversación con el bot, o que el bot haya sido agregado al "InstalledApps" del usuario, lo que normalmente exige consentimiento explícito.

¿Existe alguna forma aprobada por Microsoft para que el admin “instale” o “asigne” el bot de forma masiva a todos los usuarios, sin intervención del empleado?


3. Mensajes proactivos cross-tenant

Necesitamos enviar mensajes proactivos a los usuarios (invitaciones, seguimientos, sesiones).

Encontramos documentación que indica que:

Los bots SingleTenant pueden tener problemas con proactive messaging en tenants externos.

El modo MultiTenant funciona mejor para proactive messaging, pero está en proceso de deprecación.

Para SingleTenant, parece que no existe (por ahora) un mecanismo oficial para enviar mensajes proactivos a usuarios que nunca iniciaron conversación.

Queremos confirmar oficialmente cuál es la situación actual (2024-2025) y cuál es la recomendación de Microsoft para bots que sirven múltiples organizaciones y necesitan envíos proactivos.


4. Microsoft Graph y lectura de usuarios

Tenemos implementado un flujo de Admin Consent multi-tenant para acceder al directorio de cada empresa (User.Read.All + Directory.Read.All).

Esto funciona correctamente, pero necesitamos confirmar:

Si está permitido legal y técnicamente usar Graph para obtener la lista completa de usuarios y luego intentar enviar mensajes proactivos a esos usuarios vía Bot Framework.

Si existe alguna restricción de privacidad o compliance que impida utilizar Graph para “iniciar” la relación bot→usuario sin interacción previa.


5. Validación final

En resumen, necesitamos confirmación oficial de estos puntos:

¿Un bot SingleTenant puede dar servicio a múltiples tenants sin problemas?

¿Existe una manera soportada de instalar el bot automáticamente a todos los usuarios de una organización?

¿El proactive messaging cross-tenant en SingleTenant está limitado actualmente?

¿El uso de Graph para obtener usuarios y luego enviarles mensajes del bot está permitido?

¿Cuál es la arquitectura recomendada por Microsoft para bots multi-organización con mensajería proactiva en 2024-2025?

Agradecemos cualquier aclaración o referencia oficial.

Muchas gracias.

Microsoft Teams | Microsoft Teams para empresas | Equipos y canales | Otros
0 comentarios No hay comentarios

Respuesta aceptada por el autor de la pregunta

  1. Kudos-Ng 15,050 Puntos de reputación Personal externo de Microsoft Moderador
    2025-11-19T15:08:09.4266667+00:00

    Nota: Esta respuesta ha sido traducida automáticamente. Como resultado, puede contener errores gramaticales o expresiones incómodas.

    Hola Joaquin Capdevila Taboada

    Gracias por publicar tu pregunta en el foro de preguntas y respuestas de Microsoft

    Después de revisar tu escenario y consultar la documentación oficial de Microsoft, aquí tienes algunos puntos clave que pueden ayudarte a aclarar tu enfoque:

    1) Instalación multi‑tenant

    Por lo que describes, tu plan es usar una única aplicación de Azure Bot (SingleTenant) en tu tenant principal y una aplicación multi‑tenant para Microsoft Graph para los flujos de consentimiento de administrador, y luego distribuir el paquete de la aplicación de Teams (.zip) a otros tenants mediante su catálogo de aplicaciones de la organización.
    Este flujo es válido y soportado:

    • El bot se autentica con Bot Framework Service usando credenciales de su tenant principal.
    • La aplicación de Teams puede instalarse en tenants externos mediante AppSource, catálogo privado o API de Graph.
    • No se requiere un registro separado del bot en cada tenant cliente, salvo que sus políticas de cumplimiento lo exijan.

    2) Instalación proactiva para usuarios

    Para habilitar la mensajería proactiva y capturar el contexto del usuario, Microsoft ofrece un endpoint en Graph para instalar la aplicación a un usuario: https://learn.microsoft.com/es-es/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages?tabs=dotnet#proactively-install-your-app-using-graph
    Puntos clave:

    • La aplicación debe existir en el catálogo del tenant (ya sea desde la tienda o cargada manualmente).
    • Usa POST /users/{id}/teamwork/installedApps con el teamsAppId correspondiente en ese tenant.
    • Requiere permisos adecuados en Graph y consentimiento de administrador.

    3) Mensajería proactiva cross‑tenant

    Este es el punto más crítico. Según la guía de Microsoft:

    • La autenticación del bot es channel‑to‑bot, no específica por tenant. El bot usa un token emitido por su tenant principal para comunicarse con Bot Service.
    • Una vez que la aplicación está instalada en el tenant de destino, Teams enruta los mensajes mediante el serviceUrl correcto.
    • El hecho de que el token tenga tid del tenant principal no impide enviar mensajes a usuarios en otros tenants, siempre que la aplicación esté instalada y autorizada en ese tenant.
    • No puedes depender solo de la instalación previa para enviar un mensaje de bienvenida; debes crear o continuar la conversación proactivamente usando el SDK de Bot Framework.

    4) Obtener usuarios y enviar mensajes

    Tu flujo propuesto es correcto:

    • Con consentimiento de administrador y permisos de Graph (User.Read.All, Directory.Read.All), puedes obtener la lista de usuarios.
    • Luego, instala la aplicación para cada usuario mediante Graph.
    • Cuando la aplicación se instala, Teams envía un evento membersAdded a tu endpoint, lo que permite enviar un mensaje de bienvenida proactivo.
    • Alternativamente, puedes crear la conversación proactivamente después de la instalación usando el SDK de Bot Framework.

    Espero que la información anterior te resulte útil.


    Si la respuesta es útil, por favor haz clic en "Aceptar respuesta" y dale un voto positivo. Si tienes preguntas adicionales sobre esta respuesta, haz clic en "Comentar".

    Nota: Por favor, siga los pasos en nuestra documentación para habilitar las notificaciones por correo electrónico si desea recibir la notificación correspondiente para este hilo.

    0 comentarios No hay comentarios

0 respuestas adicionales

Ordenar por: Muy útil

Su respuesta

Las respuestas pueden ser marcadas como "Aceptadas" por el autor de la pregunta y "Recomendadas" por los moderadores, lo que ayuda a los usuarios a saber que la respuesta ha resuelto el problema del autor.