Skip to main content

SharePoint, Teams, and Cloud

Using MCP servers in your Teams agent to connect to external tools
Teams Using MCP servers in your Teams agent to connect to external tools

Back when I built the SPAdminBot in 2017, every new capability meant the same dance: write a new dialog, add a new LUIS intent, wire up the API call, test it, deploy it. Want the bot to check storage usage? That’s a new dialog. Want it to search documents? Another dialog. Want it to do anything with Azure DevOps? Well, now you’re building a second bot or cramming two completely unrelated services into one increasingly messy codebase. I lived that life for years, and I suspect you have too.

Read Using MCP servers in your …
SharePoint Embedded: bringing SharePoint document management into your custom app
Office 365 SharePoint Embedded: bringing SharePoint document management into your custom app

My first blog post on this site was about MOSS 2007. That was 2012, and even then I was dealing with a platform that was simultaneously incredibly powerful and incredibly frustrating to integrate with. Over the years I’ve gone through every wave of “now you can get SharePoint content into your app.” CSOM. Provider-Hosted Apps (and if you’ve read my post about the TLS 1.2 and SameSite cookie nightmare, you know how much fun that was). REST APIs. Microsoft Graph. Every time, it felt like you were fighting the platform. You wanted documents with versioning and permissions, and SharePoint wanted you to use its UI. SharePoint Embedded changes that, and honestly, it’s about time.

Read SharePoint Embedded: bringing …
Migrating your automated webhook systems from Office 365 Connectors to Power Automate Workflows
Teams Migrating your automated webhook systems from Office 365 Connectors to Power Automate Workflows

Way back in 2016 I wrote about sending Application Insights alerts to Microsoft Teams using incoming webhooks. That was one of the first things I built when Teams launched and it’s been humming along in various forms ever since. Then in 2023 I went deeper and showed you how to authenticate those webhooks because the anonymous nature of those connector URLs was, well, a security problem. Now Microsoft is pulling the plug. Office 365 Connectors are retiring on April 30, 2026, and every migration guide I’ve seen focuses on the admin experience: clicking through Power Automate, selecting a template, done. But what about those of us who have actual code that POSTs to those URLs? What about the Azure Functions, the Logic Apps, the little C# services that have been faithfully sending MessageCards for years? That’s what we’re going to cover here.

Read Migrating your automated …
Building a declarative agent for Microsoft 365 Copilot with the M365 Agents Toolkit
Teams Building a declarative agent for Microsoft 365 Copilot with the M365 Agents Toolkit

Back in 2017, I built the SPAdminBot. It was a bot that could create site collections, look up site info, reindex webs, all through a conversational interface in Teams. I was pretty proud of it at the time. It required the Bot Framework SDK, a LUIS model for natural language understanding, custom dialogs to manage conversation flow, an Azure App Service to host it, a CI/CD pipeline to deploy it, and a few hundred lines of C# to glue everything together. That was the cost of entry for a conversational bot in 2017.

Read Building a declarative agent …
Giving your Teams bot an identity with Microsoft Entra Agent ID
Azure Giving your Teams bot an identity with Microsoft Entra Agent ID

If you’ve been reading this blog over the years, you’ve watched me wrestle with bot identity in real time. Back in 2017 I built the SPAdminBot with a client ID, a client secret, and a lot of trust that nobody would accidentally commit those credentials to GitHub. Then in 2020 I wrote about stopping the use of client secrets and moving to Managed Identities. That was a genuine improvement. But I always had this nagging feeling that we were bolting identity onto bots as an afterthought, shoehorning agents into an authentication model designed for web apps and background services. At Ignite in November 2025, Microsoft announced Entra Agent ID, and for the first time it feels like agents are getting identity that was actually designed for them.

Read Giving your Teams bot an …
From Azure DevOps to GitHub Actions: migrating your Teams app CI/CD pipeline
Teams From Azure DevOps to GitHub Actions: migrating your Teams app CI/CD pipeline

Back in 2020 I wrote a post about setting up CI/CD for Teams apps with Azure DevOps. That post covered the full flow: build your bot, package the manifest, deploy to Azure, and push the Teams app to your tenant catalog. It worked great and I’ve been running variations of that pipeline ever since. But things have changed. Since February 2025, the Basic Azure DevOps license is free if you have GitHub Enterprise Cloud. Read that again. Microsoft isn’t charging separately for Azure DevOps anymore if you’re already paying for GitHub. The direction couldn’t be more clear.

Read From Azure DevOps to GitHub …
Workload Identity Federation for Teams app deployments: no more secrets in your CI/CD pipeline
Azure Workload Identity Federation for Teams app deployments: no more secrets in your CI/CD pipeline

Back in 2020 I wrote about CI/CD for Teams apps with Azure DevOps. In that post I stored a username, password, and appId as pipeline variables. That was perfectly fine at the time. Everybody did it that way, and it worked. But if I’m being honest, every time I set up a new pipeline like that I got a little uncomfortable. Secrets sitting in a variables tab, protected by a lock icon and a prayer. We can do better now.

Read Workload Identity Federation …
API-based Message Extensions: Teams extensibility without a bot
Teams API-based Message Extensions: Teams extensibility without a bot

If you’ve been following this blog for a while, you might remember the Teams Ramp-Up series I did back in 2019. Four posts. Four! Just to get from zero to a working Teams app. Setting up the dev environment, figuring out ngrok, registering a bot, wiring up the manifest. And that was the simple path. API-based Message Extensions are now GA and honestly, they make all of that feel like we were doing things the hard way. Because we were.

Read API-based Message Extensions: …
The Microsoft Graph CLI is retiring: what to use instead
Azure The Microsoft Graph CLI is retiring: what to use instead

Microsoft announced on August 29, 2025 that both the Microsoft Graph CLI (mgc) and the Microsoft Graph Toolkit are being retired. The full shutdown is planned for August 28, 2026. If you’ve been relying on mgc commands in your automation scripts or CI/CD pipeline steps, you’ll need to find an alternative. I’ve been using these tools myself, and before that I was using the O365 CLI (now called CLI for Microsoft 365) in my CI/CD pipeline for Teams apps, which I wrote about in my CI/CD for Teams post. So when I saw this announcement, I immediately started looking at what to move to. Let’s get started.

Read The Microsoft Graph CLI is …
Migrating a Bot Framework v4 bot to the Teams SDK
Teams Migrating a Bot Framework v4 bot to the Teams SDK

I’ve been building Teams bots since 2017. It started with my post about the SPAdminBot, then I went deeper with authenticated webhooks in Teams, and at some point I even wrote an entire Apress book on Teams development. Safe to say I’ve spent a fair amount of time with the Bot Framework SDK. So when Microsoft announced that Bot Framework SDK v4 would reach end-of-support on December 31, 2025, I knew I had some work ahead of me. No more security patches, no more bug fixes. Time to migrate.

Read Migrating a Bot Framework v4 …

Rick Van Rousselt

Photo of Rick Van Rousselt

Hi there,

I’m Rick and I am a Microsoft 365 consultant living in Belgium. I’ve been working with SharePoint since 2007 and recently I’ve made the transition to Office 365. My main focus is development but as you all know… working with SharePoint requires you to know a little bit from everything. I have started my own company called Rivaro Consultancy in 2014. This allowed me to shift my focus to Office 365. This pushed me to become a versatile expert in both SharePoint, Office 365 and all related technologies. My inquisitive disposition encourages me to continuously gain knowledge and share insights with everyone that shares the same interests. I’m currently working at Advantive where I am responsible for promoting the use of Office 365, SharePoint and Azure. This allows me to do talks all over the world which I love to do.

Know More

Social

Microsoft MVP Logo
BIWUG Belgian Information Worker User Group logo
Advantive logo
Pro Teams Development book cover