The Microsoft 365 Full-Stack Developer's Recap to Build 2024

I spent over 40+ hours watching 30+ sessions, keynotes, & reading announcements to gather what Microsoft 365 full-stack developers should know from Build 2024.

By Last Updated: July 24, 2024 24 minutes read

Conferences such as Microsoft’s Inspire, Ignite, and the recent Build Conference serve as platforms where Microsoft displays their latest and upcoming projects. The last Build Conference in Seattle was no exception. With the past 18 months of AI advancements, it seemed like the news and innovations were in overdrive. Unless you’ve been completely disconnected, you’ve likely heard of Copilot.

If not before, you would have heard of it during the conference, especially with it being mentioned multiple times in the keynote. A current challenge is trying to keep up with all the news, let alone news relevant to your job. It’s a demanding task to filter out what’s pertinent to your role before you can even start catching up. However, if you’re a full-stack Microsoft 365 developer, this article might be helpful.

I dedicated over 40 hours to watching more than 30 sessions and keynotes, reading announcements, and asking questions to gather what I believe full-stack developers in the Microsoft 365 space should know.

My favorite resources creating this summary are the Microsoft Build 2024 Book of News & session recordings. I’ve created a playlist on my YouTube channel of all the sessions that Microsoft 365 Fullstack developers should check out: Microsoft Build 2024 - for Microsoft Fullstack Developers:

This article is a summary of that information, along with links to announcements, session recordings, and documentation where relevant for further exploration.

I’ve organized this article into five main categories: Copilot for Microsoft 365, SharePoint, Microsoft Teams, Microsoft Azure, and general development topics.

Let’s dive in.

Copilot for Microsoft 365

I’m going to start with Copilot extensions.

Copilot extensions - connectors, plugins, and custom engines

Microsoft is unifying all its Copilot extensibility concepts. These include plugins like Microsoft Teams message extensions, Microsoft Graph connectors, and other elements. Connectors can be used with Microsoft Graph to inject data into the semantic index.

Microsoft is unifying all these elements into a single construct called Copilot extensions. These extensions will enhance Microsoft Copilot by enabling new actions and providing customized knowledge for grounding within the Copilot system. Copilot extensions allow users to have a personalized experience tailored to their daily data, systems, and workflows in their work. Developers can create Copilot extensions using Microsoft Copilot Studio, the Microsoft Teams Toolkit (TTK), or Visual Studio Code (VSC).

Copilot extensions - Microsoft Graph Connectors, Plugins, Custom Engine Copilots

Copilot extensions - Microsoft Graph Connectors, Plugins, Custom Engine Copilots

Copilot extensions, including those for leading apps like Jira, are available in preview for Copilot for Microsoft 365. They’re available alongside company-developed line of business Copilot extensions. IT administrators can control and manage access to these extensions via the Microsoft 365 Admin Center (MAC).

Developers can more easily include plugins in their Copilot extensions from their API endpoints using the TTK for VSC. They will also be able to utilize new user experience features like handoffs and other AI assistance. I’ll come back to these later in the Microsoft Teams & Copilot Extensibility section - there’s a lot more to share related to Copilot plugins and these new custom engine copilots.

Copilot extensibility options

Copilot extensibility options

Learn more:

Copilot Studio

Let’s discuss Copilot Studio. Although it’s not a full-stack development tool, but more of a low-code or no-code tool, developers should be familiar with what you can do with it. At times, offers a more efficient way to implement solutions instead starting with writing code.

Copilot Studio is introducing new capabilities for developers to create Copilots, integrate business data, and publish new extensions, with most updates currently in early access or preview.

One feature is a Copilot Agent (currently available under the Early Access Program). Using Copilot Studio, new capabilities will enable Copilot to act as an agent that can independently orchestrate tasks tailored to specific roles and functions. These new capabilities will allow users to delegate authority to Copilot to automate long-duration business processes, consider actions and user inputs, and utilize memory and knowledge for context. It can also learn from user feedback, exception requests, and ask for help when it encounters situations it doesn’t know how to handle.

Think of these as similar to a macro for a series of tasks that you can string together, somewhat like a workflow-enabled Copilot.

Copilot Connectors in Copilot Studio (currently in private preview) integrates Microsoft Graph and Power Platform connectors, AI Skills, and Microsoft Fabric. It uses Microsoft Dataverse to make grounding Copilots in first- and third-party line-of-business data a wizard-based experience, configured through Copilot Studio. This allows developers to easily incorporate their organizational knowledge into Copilots, enabling new actions and real-time intelligent Q&A over productivity, operational, and analytical data.

Users will also be able to Publish Copilot extensions (currently in private preview) to Copilot for Microsoft 365 directly from within Microsoft Teams. These Copilot extensions, built with Copilot Studio, allow makers to customize Copilots with instructions, knowledge from data sources, and actions from plugins, power automate flows, and even more.

Copilot extensions can be published through the Partner Center (currently in preview). This allows all users to install Copilot extensions from the store within Copilot and app stores in Microsoft 365 products like Teams and Outlook. This feature is currently in preview.

Another new feature is conversational analytics in Copilot Studio (currently in preview). This will offer detailed insights into user engagement with custom Copilots. A new conversational design experience will simplify the development and configuration of Copilots.

And last but not least are Templates (currently in preview). Templates enable users to construct Copilots more quickly using pre-built options. These include IT help desk, order tracking, travel assistance, and any other scenarios you can envision.

Learn more:

SharePoint

Let’s explore some of the updates announced for Microsoft’s SharePoint Online.

SharePoint Copilots

The first feature is SharePoint Copilots (currently available under the Early Access Program & in preview later summer 2024). SharePoint copilots allow organizations to enhance employee self-service by enabling anyone to create a Copilot. The Copilot provides a new level of information, context, and discoverability from knowledge, documents, and files in SharePoint sites.

A new Copilot will be created whenever a new SharePoint site is made. These Copilots help individuals find the files they need faster, and can even answer questions based on the site’s content. Additional enhancements include using the Copilot Studio, and Copilots can be easily shared within an organization.

Learn more:

SharePoint Embedded

Another product I am quite fond of, which Microsoft announced roughly a year ago, is SharePoint Embedded (now generally available). It gives developers a fresh approach to constructing file and document-focused apps that can be coupled with custom Copilots. This assists organizations in maximizing the value they derive from their information.

Utilizing the Microsoft Graph API, SharePoint Embedded operates as a headless or white-labeled version of SharePoint. It permits API-only access to files stored in the customer’s Microsoft 365 SharePoint tenant. Customers and app users can leverage all Microsoft 365 capabilities, whether developed by the enterprise or ISVs. This allows developers to focus on their unique value-added features instead of recreating the top-tier document-centric features found in SharePoint.

SharePoint Embedded provides global, enterprise-ready collaboration, compliance, and content management. It integrates smoothly with Copilot and is already in use across various industries, including finance, IT, legal, and more. Now, onto the new section.

Learn more:

Microsoft Teams & Copilot Extensibility

Now let’s look at some of the improvements that Microsoft announced around Microsoft Teams.

Copilot plugins support @mentions

Previously, in order for a user to utilize your plugin and access real-time data in the prompt, it was necessary to train Copilot using the Retrieval Augmented Generation (RAG) pattern. This training allowed Copilot to recognize when a user requested information related to your extension. Copilot would then fetch the additional data for your prompt.

Now, if you know the Copilot extension you want to use, you can simply @mention the extension in the prompt. This will ensure that Copilot uses that particular extension. This feature is especially useful when multiple extensions perform similar functions or have some overlap. By using the @mention, users can filter down to specific extensions. Additionally, when users type the ampersand to @mention an extension, they’ll see a list of all available Copilot extensions to choose from.

Learn more:

Copilot message extension plugins support action commands

Prior to Build 2024, developers could create Microsoft Teams message extensions to implement the RAG pattern and extend Copilot for Microsoft 365. This Copilot extensibility approach supported search commands with up to 5 parameters, could include Adaptive Cards in the responses and support Adaptive card actions.

Microsoft announced at Build they were adding support for action commands (estimated in preview summer 2024) as yet another option.

Copilot API Plugins

Previously, we utilized Microsoft Teams message extensions to create our own custom plugins. However, at the Ignite conference in late 2023, Microsoft announced that creators could now use Copilot Studio to develop custom plugins using a more declarative low/no-code approach.

Building on these capabilities, Microsoft introduced a new way to create plugins at last week’s Build conference. This will allow us to use an OpenAPI specification to define our external API. After publishing this specification to Copilot, the system will learn how to call your API using the OpenAPI specification (public preview coming soon).

In this scenario, developers will take an OpenAPI specification, saved in a JSON file, and create a new plugins.json file that maps the endpoints in the OpenAPI endpoints to to further extend Copilot for Microsoft 365.

Create copilot plugins using OpenAPI specifications

Create copilot plugins using OpenAPI specifications

Learn more:

Declarative copilots

At Build 2024, Microsoft announced a new option to customize Copilot for Microsoft 365 using declarative copilots (currently in private preview).

Building a declarative copilot enables customization of Microsoft Copilot for Microsoft 365 by declaring instructions, actions, and knowledge. Declarative copilots use the same orchestrator, foundation models, and trusted AI services as Microsoft Copilot, enhancing collaboration, productivity, and workflows. They help tailor copilot for specific business needs, creating personalized experiences and automating complex processes like team onboarding and customer issue resolution.

Declarative copilots

Declarative copilots

Developers can define a declarative copilot to provide additional context from existing sources to Copilot to implement specific scenarios. For example, Microsoft used two example scenarios in their demos:

  • Employee IT Self-help scenario
  • Customer support agent scenario
Declarative copilot context

Declarative copilot context

I think it helps to see how you define one of these to get a better idea of what they can do. The following definition creates a new declarative copilot Trey Genie that’s grounded with content in a specific SharePoint site (the capabilities property), supports actions defined by our API plugin (the actions property), and is given specific prompt instructions (the instructions property):

{
  "name": "Trey Genie Local",
  "description": "You are a handy assistant for consultants at Trey Research, a boutique consultancy specializing in software development and clinical trials. ",
  "instructions": "Greet users in a professional manner, introduce yourself as the Trey Genie, and offer to help them. Always remind users of the Trey motto, 'Always be Billing!'. Your main job is to help consultants with their projects and hours. Using the TreyResearch action, you are able to find consultants based on their names, project assignments, skills, roles, and certifications. You can also find project details based on the project or client name, charge hours on a project, and add a consultant to a project. If a user asks how many hours they have billed, charged, or worked on a project, reword the request to ask how many hours they have delivered. In addition, you may offer general consulting advice. If there is any confusion, encourage users to speak with their Managing Consultant. Avoid giving legal advice.",
  "conversation_starters": [
    {
      "title": "My Projects",
      "text": "What trey projects am I assigned to?"
    },
    {
      "title": "My Hours",
      "text": "How many hours have I delivered on Trey projects this month?"
    },
    {
      "title": "Find consultants",
      "text": "Find trey consultants with a particular skill"
    }
  ],
  "capabilities": [{
    "name": "SharePoint",
    "file_containers": [{
      "path": "https://testtestcp36599.sharepoint.com/sites/TreyResearchLegalDocuments"
    }]
  }],
  "actions": [{
    "id": "treyresearch",
    "file": "trey-plugin.json"
  }]
}

Learn more:

Custom engine copilots

The next thing that Microsoft talked about, or introduced and announced this week, is something called custom engine copilots (currently in general availability).

In different sessions at the conference, this was referred to in a couple different ways. We heard them listed as “custom copilots”, “custom copilot apps”, “copilot apps”, or “your copilot”.

The official term for these is a custom engine copilot.

Several options are available to extend the capabilities of Copilot, such as Microsoft Graph connectors and plugins. These tools allow you to integrate your apps or data into Copilot. Consequently, when a user interacts with Copilot, they can ask questions or submit prompts. Copilot can then process these prompts, drawing on data either ingested through Microsoft Graph connectors into the semantic index, or retrieved in real time using a plugin.

Custom engine copilot

Custom engine copilot

The new option to build a custom engine copilot allows us to integrate a copilot into our applications. This feature enables us to utilize various elements such as instructions, actions, triggers, knowledge, orchestrators, and intent detection… just like copilot for Microsoft 365 can leverage with options such as Microsoft Graph connectors and plugins as you can see from the above figure.

Let me back up for a moment… I loved how that previous slide explained the different aspects of the copilot stack:

  • Workflow instructions drive the right outcomes and desired responses from copilot, and can include guidelines on how copilot should behave, its scope, and functionalities.
  • Actions are tasks copilot can perform on your behalf, from real-time data lookups to executing changes and updates on behalf of the user.
  • Triggers help copilot take proactive actions and facilitate automation. Examples of triggers are events and messages that prompt copilot to do specified actions.
  • Knowledge is the information copilot can reason over to answer user prompts. Powered by RAG techniques, copilots can expand their native semantic understanding beyond the source data used for their training to provide relevant, contextual responses.
  • Orchestrator oversees and synchronizes pre and post processing of the user prompt across foundation models, knowledge and actions.
  • Foundation models are AI models that can perform a wide range of tasks, from language processing, visual comprehension, text generation, code writing and more.
Why custom engine copilots

Why custom engine copilots

With this, we can enhance our applications in numerous ways. It allows for direct interaction with our copilot within our bespoke application. As developers, we have full control. We can employ our own AI models, use models from Azure OpenAI, or work with models in OpenAI.

To create your custom engine copilot, you’ll need to write code using the Teams AI Library.

Learn more:

Powered by AI (UX Library)

Building different applications allows us to utilize a new UI Kit called Powered by AI, which operates in Teams. This enables us to incorporate Teams-based chat extensions into our custom copilot, such as streaming responses to the user, and controlling the listing of citations. As developers, we can implement feedback loops to gather user feedback on copilot responses.

Users can rate responses with a thumbs up or thumbs down, providing valuable feedback that we can use to improve features. We can also add labels, such as sensitivity labels, to indicate AI-generated responses.

One interesting feature is that if our custom copilot were to provide the user with historical sales information for a specific product, it’s not considered AI-generated. Although we use copilot to automate retrieving this information from our external system and present it to our users, it’s not produced by AI.

We’re using AI to deduce the user’s intent and orchestrate the communication, displaying pertinent information. However, if the AI generates a creative response, we want to flag it as AI-generated for the user. This helps them distinguish between reliable data and data that might have a touch of creativity, which they might want more control over.

Indicating content as generated by AI

Indicating content as generated by AI

This approach will be especially useful when interacting with systems like Copilot. For instance, when you give Copilot a prompt, it analyzes data from the semantic index, which includes content from our Microsoft 365 tenants.

Using the Powered by AI Kit, developers will also have access to the citations included in the response from the LLM. If necessary, developers can modify the citations received from the AI response manually.

Furthermore, developers can also add labels to indicate sensitive content, such as customer data.

Learn more:

Handoff

Currently, users can interact with Copilot through its immersive app in Microsoft Teams. Users can access the foundational knowledge that Copilot has been trained on through conversation. Moreover, Copilot can also retrieve data from the semantic index, which contains not only content from the Microsoft 365 tenant but also additional data added through Microsoft Graph connectors and plugins like Microsoft Teams extension.

Copilot can include an action in its responses that allows users to switch from the native Copilot for Microsoft 365 experience to our custom engine Copilot. This gives us complete control over features such as our own model, custom orchestration or semantic grounding, and the ability to leverage our unique user experiences. Developers can therefore use Copilot orchestration and the Teams AI library to provide a highly specific, domain-specific experience for our users.

This ability to transition from the immersive Copilot experience to our custom engine Copilot is known as handoff, a new feature that will be available in Copilot later this year.

Learn more:

Microsoft Graph

Microsoft Graph also had a bunch of news that was announced at Build 2024 and the week after the conference.

Copilot extensions and Copilot connectors

Extensions and connectors for Microsoft Graph, announced at Build, expands the actions that Copilot can take on the user’s behalf, customize grounding knowledge with relevant business data, and enable hand-off to other copilots. They also announced connectors for Copilot Studio to simplify how developers connect their business data to copilots. These connectors include Power Platform connectors, Power Query connectors, and Microsoft Graph connectors.

Enhanced connection statistics for Microsoft Graph connector admins

Connection statistics allow administrators to gain to gain insights into crawled and indexed items. This helps admins comprehend the total number of items discovered, successfully indexed, or failed across all crawls. It will provide a cumulative perspective on the sync between the data source and Microsoft Graph connector index.

Microsoft Teams API Updates

Microsoft Teams app developers can now send activity notifications without altering the app manifest, thanks to the systemDefault property. Users can now subscribe to changes in any user-level chat, receiving notifications for all chat changes. A new query parameter, “notifyOnUserSpecificProperties,” allows users to access chat properties such as “viewpoint.” Developers can also see how custom emojis and reactions appear in Teams messages. Lastly, Approvals in Microsoft Teams APIs are soon to be publicly previewed, enabling developers to manage approvals more seamlessly.

SharePoint API Updates

The SharePoint Pages API, now generally available, allows developers to manage SharePoint Pages programmatically, enabling customization and automation. This includes fetching page content for third-party process flows or powering bot-like experiences. The upcoming SharePoint Premium document processing APIs will allow developers to access Syntex document processing models, apply them to document libraries, and run document processing jobs.

Azure Bicep (ARM) templates

Bicep templates for Microsoft Graph resources, in public preview, allow you to define the tenant infrastructure you want to deploy, such as groups or applications, in a file, then use the file throughout the development lifecycle to repeatedly deploy your infrastructure. The file uses the Bicep language, a domain-specific language (DSL) that uses declarative syntax to deploy resources, typically for your infrastructure-as-code solutions.

Learn more:

Microsoft Office Add-ins

Microsoft Word

Microsoft is releasing WordApi 1.8 in June 2024, which allows the building of add-ins to enhance user experience, add background color to text, improve performance when inserting HTML into a document, and provide document importing capability in WOPI host environments.

Microsoft Outlook

Outlook add-ins have been enhanced this year with features such as the Mailbox 1.14 JavaScript API requirement set. This set allows for spam reporting and data loss prevention, among other features. The new Outlook on Windows client, which is web-based, does not support VSTO and COM add-ins, but efforts are being made to support these scenarios in web add-ins. The Mailbox 1.14 requirement set is now available in Outlook on Windows and on the web.

Additional improvements to Smart Alerts add-ins

Recent improvements to Smart Alerts add-ins enhance user experience and ensure mail item compliance. Administrators can now activate Smart Alerts in applications using Simple MAPI. Smart Alerts add-ins implementing the ‘soft block’ or ‘block’ option can only process mail items when the Outlook client is online. Users are shown a dialog with options like ‘Wait’ and ‘Save as Draft’ when they navigate away from a mail item being processed by a Smart Alerts add-in.

Augment Teams apps with Outlook add-ins

The capability to combine Teams apps with Outlook add-ins is now generally available. This allows developers to build unified apps with features like Outlook add-ins, Message Extensions, and personal apps. Developers can also link their unified apps to their in-market add-in. Admins can manage these apps from the Microsoft 365 admin center. End users can discover, acquire, and use these unified apps with an Outlook add-in, and see a consolidated menu of various actions and add-in controls.

Add-in platform and authentication updates

The Nested App Authentication (NAA) is a new method for single sign-on (SSO) in Office Add-ins, offering advantages over the current on-behalf-of (OBO) based SSO pattern. The JavaScript-only runtime is transitioning to the V8 JavaScript engine, improving the consistency of the runtime experience and enabling newer JavaScript language features.

A new tool, the Add-in Install Link, is being introduced to expand the distribution of published Office Add-ins, allowing for easy integration of an add-in install button into various platforms to drive traffic to your Add-ins.

Developer experience update

The Visual Studio Code extension for Office Add-in development simplifies the process of creating, running, and debugging Office Add-ins.

The GitHub Copilot Extension for Office Add-ins, introduced at Build 2024, aids developers in generating API code for Word, Excel, and PowerPoint, and creating add-in projects based on specific inputs from GitHub Copilot Chat.

Learn more:

Microsoft Azure

Microsoft Azure has many updates in the AI space. However, there are several updates that are not only relevant to AI, but also beneficial for developers in the Microsoft 365 space. They might already be utilizing these for their existing Microsoft 365 apps.

Azure API Center

The first update relates to the Azure API Center, which is now generally available. This centralized solution addresses the issue of API sprawl, a problem intensified by the use of AI and the expansion of Copilot. The Azure API Center offers a unified inventory for easy discovery, consumption, and governance of different APIs within your organization, regardless of their type, lifecycle stage, or deployment location.

This enables organizations to keep a current and complete API inventory, streamline governance, and enhance consumption by simplifying discovery.

Learn more:

Azure Functions

Azure Functions, a tool for deploying code to enhance Microsoft 365 solutions, has been the focus of many updates.

You can now run Azure Functions on Azure Container Apps (ACA) environments (now generally available). This is useful when you need to run your applications with other microservices in a containerized environment. This expands Microsoft’s hosting platform beyond serverless and App Service plans to accommodate a diverse range of customer workloads.

The Dapr extension for Azure Functions allows developers to use Dapr’s robust cloud-native building block APIs and a large ecosystem of components in the Azure Functions triggers and bindings programming model. The extension can run on Azure Kubernetes Service (AKS) and Azure Container Apps (ACA) (now generally available).

Microsoft has introduced a new Flex Consumption Plan for Azure Functions, providing customers with more flexibility and customization options without compromising on availability features for running serverless apps (currently in early preview).

Additionally, there’s an Azure Functions extension for Microsoft’s Azure OpenAI service. This will enable customers to easily incorporate AI into their apps. Developers will be able to use this extension to build new apps implementing the rag pattern, text completion, and chat assistant (currently in public preview).

Learn more:

Azure Logic Apps

Azure’s Logic Apps have recently seen some improvements. They serve as a robust developer option for creating workflows, offering an alternative to using Power Automate. The Azure Logic Apps service provides increased control and deployment options for your workflows.

An enhanced onboarding experience is now available from Visual Studio Code. This includes a streamlined extension installation process, as well as improvements to project initiation and debugging.

Among the updates is the addition of Logic Apps standard deployment scripting tools in Visual Studio Code. This feature simplifies the process of setting up continuous integration and continuous deployment (CI/CD) for Logic Apps standard. It does so by providing tooling support to generalize common metadata files, and it automates the creation of infrastructure scripts. This streamlines the task of preparing code for automated deployments.

Microsoft has also introduced support for zero-downtime deployment scenarios. They achieved this by offering support for deployment slots, similar to what is available with Azure Functions.

Learn more:

General Development

I’d like to share some general development updates that could be beneficial for Microsoft 365 developers. These updates don’t necessarily fall into a specific category.

Azure AI Studio

Firstly, Microsoft’s Azure AI Studio is now generally available.

Learn more:

Azure AI Toolkit Visual Studio Code extension

Secondly, the Azure AI Toolkit Visual Studio Code extension is in preview. This extension integrates AI development tools and models, aiding engineers in building and deploying apps. It simplifies the process of acquiring different language models, and uses either a local or cloud-hosted GPU to optimize and fine-tune models for specific app cases. This could be particularly beneficial with the recently announced custom engine copilot.

Learn more:

Fluid Framework 2.0

Lastly, the release of Fluid Framework 2.0 (currently in preview) is worth mentioning.

Fluid Framework is an open-source technology from Microsoft that enables developers to build real-time collaborative apps quickly. It makes it easier for developers to build apps with complex hierarchical data models using a shared tree. Fluid Framework automatically synchronizes changes to this data for all users in a collaborative session, simplifying the developer experience. The shared tree data model is defined by a schema, which allows developers to use fluid data structures like other TypeScript and JavaScript data structures. This means developers can continue using the same programming paradigms for developing local-first apps, while also benefiting from real-time collaboration through the Fluid Framework.

Shared tree also provides transactional support for changes, undo, redo, and an event listener for easier change detection. Additionally, Fluid Framework 2.0 added support for SharePoint Embedded. This new feature allows developers to store their collaboration data in their user’s Microsoft 365 tenant, benefiting from all the features of Microsoft 365 storage. With the addition of SharePoint Embedded support, and the extension of Microsoft’s Azure Fluid Relay support, developers have more choices and flexibility when choosing the best service pairing for their Fluid Framework apps based on their customer’s needs.

Learn more:

Conclusion

And there you have it! That’s my recap for Microsoft 365 full-stack developers from the Microsoft Build 2024 conference! My favorite announcement are the custom engine copilots - when used correctly, these will unlock a ton of great scenarios.

What about you… what’s your favorite announcement?

Did I miss anything you think should have made the list?

Let me know by dropping a comment below!