Prerequisites
Required Azure AD Permissions
During the OAuth flow, CloudThinker requests the following Microsoft Graph API permissions:| Permission | Type | Purpose |
|---|---|---|
User.Read | User consent | Read the signed-in user’s profile |
Channel.ReadBasic.All | User consent | List channels in teams |
Team.ReadBasic.All | User consent | List teams the user belongs to |
TeamsAppInstallation.ReadWriteForTeam | Admin consent | Install the bot into teams |
TeamsAppInstallation.ReadWriteAndConsentForTeam | Admin consent | Install the bot and grant resource-specific consent |
TeamsAppInstallation.ReadWriteSelfForTeam | Admin consent | Manage the bot’s own installation |
AppCatalog.ReadWrite.All | Admin consent | Publish the bot to the organization’s app catalog |
Organization.Read.All | Admin consent | Read organization information |
- Checked — permissions are granted tenant-wide for all users in the Azure AD tenant. Other admins who connect later won’t need to re-consent.
- Unchecked — permissions are granted only for the admin’s own account. This is sufficient to complete the setup since the admin personally has the required role to publish the bot.
Who Should Perform the Setup?
| Your role | What to do |
|---|---|
| Global Admin or Teams Admin | You can complete the full setup yourself — proceed to Step 1 below |
| Regular user | Ask your Global Admin or Teams Admin to complete Steps 1–3. Once the bot is published, you can use it in any channel where it’s installed |
Setup
Navigate to Integrations
Go to Admin Settings → Integrations and find Microsoft Teams
Install the Bot
Select which Teams to add the CloudThinker bot to and confirm the installation. The bot is published to your organization’s Teams app catalog — this is a one-time action.
Map Teams to Workspaces
Map your Microsoft Teams to CloudThinker workspaces so agents know which cloud accounts to operate on
Configure Notifications
Optionally select channels for each notification type (cost alerts, security findings, incident updates)
Syntax
In Teams, prefix all commands with@CloudThinker:
@CloudThinker prefix.
Examples
Quick Queries
With Tools
Multi-Agent
Alerts
Configure agents to send alerts to Teams channels:Code Review Notifications
When an AI code review completes, CloudThinker sends an Adaptive Card notification to your configured Teams channel. The card includes:- Severity FactSet — structured table showing counts by severity level (🔴 Critical, 🟠 High, 🟡 Medium, 🟢 Low)
- Finding details — up to 5 unresolved findings with title, severity label, file path, and line number
- Resolved count — number of previously identified findings that have been resolved
- View Code Review button — direct link to the review dashboard
- Clean pass — when no issues are found, a simple “No issues found” message
Configure which Teams channel receives code review notifications and set severity thresholds in Settings > Notifications > Code Review / Pipeline Monitoring. See Notifications Center for details.
Channel Patterns
| Channel | Use Case |
|---|---|
#cloud-ops | General infrastructure operations and cost alerts |
#security | Security findings and compliance updates |
#incidents | Active incident investigation and coordination |
#code-reviews | Code review findings and pipeline monitoring |
#reports | Scheduled reports and summaries |
Troubleshooting
Agents not responding
Agents not responding
- Check if the CloudThinker bot is installed in the team
- Verify you’re using
@CloudThinker agentsyntax (not justagent) - Confirm agents are configured in the CloudThinker console
- Check Azure AD admin consent status
Missing alerts
Missing alerts
- Check alert configuration in CloudThinker Settings
- Verify Teams channel notification settings
- Ensure the bot has permission to post in the target channel
Permission errors
Permission errors
- “Missing required permissions” — The user who connected does not have the Global Administrator or Teams Administrator role. Ask your IT team to perform the initial connection instead.
- “Consent on behalf of your organization” — During OAuth, an admin can check this box to grant permissions tenant-wide. This is optional — if the connecting user is already an admin, their personal consent is sufficient.
- Connection appears successful but bot doesn’t work — This can happen if a non-admin user completes the OAuth flow. The user’s personal authentication succeeds, but publishing the bot to the app catalog fails silently. Ask a Global Administrator or Teams Administrator to reconnect.
- For any other permission errors, check workspace admin permissions in CloudThinker, or try removing and re-adding the bot to the team.
I'm not an admin — how do I set this up?
I'm not an admin — how do I set this up?
You need a Global Administrator or Teams Administrator from your organization to complete the initial connection. Here’s what to share with them:
- Sign in to CloudThinker (they need a CloudThinker account with admin access to the organization)
- Go to Admin Settings → Integrations → Microsoft Teams
- Click Connect with Teams and complete the Microsoft OAuth flow
- The bot will be published to your organization’s Teams app catalog
@CloudThinker in channels where the bot is installed.Permissions
Azure AD Permissions
The initial connection requires a Global Administrator or Teams Administrator in Azure AD. This is because CloudThinker needs to publish a bot to your organization’s Teams app catalog, which is an admin-level action. This setup is a one-time operation — once the bot is published, no further admin actions are required. During OAuth, the admin can optionally check “Consent on behalf of your organization” to grant permissions tenant-wide. If unchecked, permissions are granted only for the admin’s own account, which is still sufficient to complete the setup. See the Required Azure AD Permissions table above for the full list of requested scopes.CloudThinker Permissions
Within Teams, users can only access agents and cloud connections that their CloudThinker account permits. CloudThinker workspace roles apply the same way as they do in the web console.Related
CloudThinker Language
Complete syntax reference for all commands
Slack Integration
Set up CloudThinker in Slack