Microsoft 365 Copilot Plugins Explained

Example plugin in use Introduction In this article I’m going to go over how you can bring in (and modify) external data in to M365 Copilot (or just Copilot from here on in) by the use of plugins. Copilot has had many names since launch (e.g. “M365 Chat” in Teams), but it is currently called just “Copilot” within Teams and M365. There are two current methods to bring in data in to Copilot:

Paging and Delta Updates in Graph API

This is a quick blog post to summarise how to work through paging and delta updates in Graph API. Examples are in Typescript but you can adapt to the different SDKs Microsoft provides. Paging If you’ve called an API before you will most likely encountered paging before. Paging is where you receive a “page” of data, instead of all of it one go (think a page in a book as opposed to the whole book).

Microsoft Graph SDK `n.call is not a function`

The problem This will be a quick one today. I recently came across this issue when running an (Node.js) application using the MS Graph JavaScript SDK in production (fine in development). This is most likely a weird edge case in my configuration or how I built my application, but wanted to put it out there in case anyone else has this issue. Whenever I was calling a Graph endpoint it was returning an error message body: n.

Using Teams PowerShell Unattended

Introduction If you are responsible for administering Teams within your organisation, you’ve almost certainly come across the Teams PowerShell module. It is used for pretty much all admin and configuration tasks within Teams. If something can be done in the Teams Admin Center (TAC), it will almost certainly be able to be achieved in Teams PowerShell - and in many cases only in Teams PowerShell. And - if you are like me - when running repeatable tasks or commands, I think automation and hence this article.

Manage Teams Devices in Graph

Introduction Have you wanted to manage your Teams devices within a script, or from the command line? Well, now you can. I will cover how you can do this for pretty much any Teams Device that is provisioned in Teams by using Microsoft Graph. What can you do? As of 7th June 2022, with Microsoft Graph endpoints can achieve the following: List devices Get device Restart device Get device diagnostics Get device operations Update device software Get device health Get device config There are a couple provisos to be aware of in using Microsoft Graph and Teams devices:

Make a simple bot using Webhooks in Teams

Introduction Have you ever had an idea to ask a bot to perform a simple interaction? Then this article is for you. A simple interaction could be an answer to a question you asked: You: What time is it? Bot: It’s 3.56PM You could achieve this (and more) by building a bot using tools such as Power Virtual Agents or Bot Framework, but that is a little overkill for a simple interaction.

Graph Javascript SDK with Azure Identity

A while back I wrote about how using a custom authentication provider with the Graph SDK would allow for the use of a client credential flow. Since then, I began using the @azure/identity package to obtain the access token instead. However, with the release of the Graph Javascript SDK 3.0, this is no longer needed. With the use of TokenCredentialAuthenticationProvider you can now pass the generated Credential from @azure/identity directly in to TokenCredentialAuthenticationProvider and use the SDK without having to manage the retrival of the token.

Use the Teams PowerShell Module in Azure Shell

A neat little trick I came across recently was that you can connect to a Teams PowerShell session within the Azure Shell. Even better, you do not need to install or import the module, or even enter your credentials (thanks Managed Identity)! Simply do the following: Login to https://shell.azure.com Within the PowerShell prompt enter Connect-MicrosoftTeams -Identity Run a Teams PowerShell command “Cs” Cmdlets Cs cmdlets (e.g. Get-CsApplicationAccessPolicy) do NOT currently work with the above method and return an error.

Get your To Do tasks daily in Teams using Power Automate

This blog post is inspired by Ayca Bas’s excellent blog post on this subject using Azure Logic Apps instead of Power Automate Introduction Microsoft To Do is a great tool for allowing you to keep lists of tasks across your personal and work life. This could be something as simple as a shopping list or a project or anything that can be split down into individual tasks. With the release of the To Do APIs in Microsoft Graph, it is now possible to integrate with your To Do tasks outside of To Do.

Using the Microsoft Graph API JavaScript SDK with App Permissions

Introduction Recently, I wanted to use the Microsoft Graph JavaScript SDK within my Node app. If you are familiar with the SDK, you will know that it will not obtain its own access token - you need to use an authentication provider and feed that to the SDK client. Typically, with browser-based authentication you would authenticate as the user and use something like the implicit grant method with a library such as MSAL.