Accelerate Microsoft 365 Copilot adoption with targeted, contextual guidance delivered directly in Microsoft Teams.
A Teams bot that sends beautifully designed adaptive cards with Copilot tips, prompt examples, and best practices to help your users get the most out of Microsoft 365 Copilot. Perfect for IT teams and adoption specialists looking to drive real behavior change and maximize Copilot ROI.
Traditional training emails get ignored. Long training sessions are forgotten. Copilot Adoption Bot meets users where they work right in Microsoft Teams with bite-sized, actionable guidance at the perfect moment.
| Traditional Email | Copilot Adoption Bot |
|---|---|
| Often ignored or filtered | Appears directly in Teams chat |
| Static content | Interactive adaptive cards |
| No engagement tracking | Full delivery and interaction logging |
| One-size-fits-all | Targeted to specific users or groups |
| Manual sending | Scheduled and automated delivery |
- Copilot Chat Tips - Ready-to-use prompts and best practices
- App-Specific Guidance - Tips for Copilot in Outlook, Word, Excel, PowerPoint, Teams
- Prompt Engineering - Help users craft better prompts
- Feature Discovery - Introduce new Copilot capabilities
- Adoption Campaigns - Progressive tip delivery over time
- Employee Onboarding - Welcome messages and getting-started resources
- Training Reinforcement - Follow-up nudges after training sessions
- Feature Announcements - New Microsoft 365 features
- Feedback Collection - Gather user feedback through interactive cards
- Template Management - Create and edit adaptive card templates
- Azure Storage Only - No SQL database required (Table + Blob Storage)
- Teams Bot Integration - Direct delivery via Teams bot conversations
- Message Logging - Track delivery status and recipients
- User Cache with Delta Queries - Efficient user data syncing from Microsoft Graph
- Copilot Usage Statistics - Optional per-user Microsoft 365 Copilot activity tracking
- Smart Groups - AI-powered dynamic user targeting (requires AI Foundry)
- Authentication - Teams SSO and MSAL support
- Modern UI - React-based interface with Fluent UI components
Backend
- .NET 10 | ASP.NET Core | Microsoft Bot Framework
- Azure Table Storage | Azure Blob Storage
- Microsoft Graph API
Frontend
- React 18 | TypeScript | Fluent UI
- Vite | Azure MSAL | Teams JS SDK
| Document | Description |
|---|---|
| Setup Guide | Teams bot setup and Graph permissions |
| Development Guide | Local development environment and tunneling |
| Configuration Reference | Complete configuration options reference |
| Usage Guide | How to create templates and send messages |
| Features Guide | Detailed feature documentation |
| Deployment Guide | Azure deployment and CI/CD pipelines |
| Deploy with Copilot CLI | Agent-guided Azure deployment from your terminal |
| Security Guide | Security best practices |
| Troubleshooting | Common issues and solutions |
git clone https://github.com/pnp/copilot-adoption-bot.git
cd copilot-adoption-bot/src/Full/Bot
# Backend
dotnet restore
dotnet build
# Frontend
cd Web/web.client
npm install
npm run buildSee the Setup Guide for detailed configuration steps:
- Create Teams bot in Developer Portal
- Configure Microsoft Graph permissions
- Set up user secrets for local development
- Configure Azure resources
# Backend
cd Web/Web.Server
dotnet run
# Frontend (in another terminal)
cd Web/web.client
npm run devVisit https://localhost:5173 for the web interface during development (the Vite dev server, which proxies API calls to the backend). The backend API itself listens on https://localhost:7053 and http://localhost:5295 (set in Web.Server/Properties/launchSettings.json; watch the dotnet run output for the actual values).
Deploy to Azure App Service using:
Manual Deployment:
cd src/Full/Bot
dotnet publish Web/Web.Server/Web.Server.csproj -c Release -o ./publish
az webapp deploy --resource-group myResourceGroup --name myAppName --src-path ./publishAutomated CI/CD:
- GitHub Actions (
.github/workflows/azure-deploy.yml) - Azure DevOps (
.azure-pipelines/azure-deploy.yml)
See the Deployment Guide for complete instructions.
src/Full/Bot/
βββ Web.Server/ # ASP.NET Core Web API and Teams bot
βββ web.client/ # React frontend application
βββ Common.Engine/ # Core business logic and services
βββ Common.DataUtils/ # Data access and storage utilities
βββ UnitTests/ # Unit and integration tests
Key security practices:
- Use Azure Key Vault for secrets in production
- Use
dotnet user-secretsfor local development - Enable HTTPS only
- Implement proper RBAC for Azure resources
- Validate all adaptive card JSON before storage
- Regularly rotate secrets and keys
See the Security Guide for comprehensive security best practices.
This project is provided as-is under the MIT License. See LICENSE for details.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
- Issues: Report bugs or request features via GitHub Issues
- Documentation: Check our comprehensive documentation
- Troubleshooting: See the Troubleshooting Guide
This project is part of the Microsoft 365 & Power Platform Community.
- Twitter: @m365pnp
- YouTube: Microsoft 365 Community
- Blog: Microsoft 365 Community Blog
Made with β€οΈ by the Microsoft 365 Community
