Overview
Genesis ships two distinct Microsoft Teams integration paths:
The
microsoft_teams connection lets Genesis use Microsoft Graph for Teams
messaging and lookup workflows. It powers teams_tools actions such as listing
Teams, listing channels, listing chats, sending channel messages, sending 1:1
chat messages, and looking up users by email.
This page documents the Microsoft Graph connection used by
teams_tools. For
Bot Framework setup (Azure Bot, messaging endpoint, Teams app package, SPCS
inbound relay), see
Activate Eve in Teams (Bot Framework)
and, on Snowpark Container Services,
Activate Genesis Data Agents On Teams.default_team_id and default_channel_id carefully.
If you only need incoming webhook notifications, use teams_webhook_tools
instead. That webhook path does not require Azure App Registration or delegated
OAuth, supports SEND_ALERT, SEND_SCHEDULED_REPORT,
SEND_APPROVAL_HANDOFF, raw SEND_ADAPTIVE_CARD, and
teams_webhook_recent_deliveries, and accepts HTTPS webhook hosts matching
*.logic.azure.com, *.api.powerplatform.com, or legacy
*.webhook.office.com URLs. Prefer Microsoft 365 Workflows / Power Automate
webhooks over the deprecated Office 365 connector family.
Setup workflow
- If multiple Teams connections will share one Azure OAuth app, optionally configure Config -> Advanced Settings -> OAuth Providers -> Microsoft Teams first. Otherwise, enter the OAuth client values directly on the connection.
- In Azure Portal -> Microsoft Entra ID -> App registrations -> New registration, create a single-tenant app for Genesis.
- Add the redirect URI that Genesis shows for your connection. The UI format
is
https://<genesis-host>/api/connections/microsoft_teams/<connection-name>/oauth/callback/ui. - Add delegated Microsoft Graph permissions and grant admin consent:
ChannelMessage.SendChatMessage.SendChat.ReadWriteTeam.ReadBasic.AllChannel.ReadBasic.AllUser.Read.Alloffline_access
- Create a client secret and copy the value immediately.
- In Config -> Connections, create a Microsoft Teams connection, choose the desired mode, fill in the fields below, save, and complete the Authorize popup when using User OAuth.
- Click Test Connection. Genesis calls Microsoft Graph
GET /meforuser_oauthorGET /organizationforclient_credentials.
Bot Framework egress (Snowflake / SPCS)
The Config -> Microsoft Teams page configures outbound access for the Microsoft Bot Framework integration. This is separate from the Microsoft Graph Connections workflow above. On Snowpark Container Services:- Open Config -> Microsoft Teams.
- Click Approve External Access. This opens Snowsight’s Configurations page for the Genesis app — not the Streamlit in-app configuration page.
- Under External connections, find Teams Bot Framework, click Review to approve it, and confirm it shows as Connected.
- Return to the Genesis tab and click Assign to Genesis. Assigning briefly restarts the Genesis service to apply the change.
Connection modes
Use User OAuth for
teams_tools actions that send messages, list Teams,
list channels, list chats, or look up users. Those actions run as the connected
Microsoft user, not as a bot.
App-only
client_credentials connections are valid for credential testing
and future admin scenarios, but v1 Teams messaging, listing, and lookup
actions require delegated User OAuth.Connection defaults
Whenconnection_name is omitted on teams tool calls, Genesis resolves the effective default microsoft_teams connection for the current user (My default, then Role default). See Default connection layers.
What it enables
After setup, Genesis can:- list Teams joined by the connected user,
- list channels in a Team,
- list chats visible to the connected user,
- send channel messages and 1:1 chat messages as the connected user, creating or reusing the 1:1 chat automatically when you target a recipient email or UPN,
- look up a Microsoft user by email address.

