M365.FM - Modern work, security, and productivity with Microsoft 365

Microsoft Graph Webhooks - Simply Explained

19 min · 24. Juli 2026
Episode Microsoft Graph Webhooks - Simply Explained Cover

Beschreibung

Welcome to another episode of Knowledge Nuggets with Mirko Peters. Today we're exploring Microsoft Graph Webhooks, one of the core building blocks for creating modern, event-driven Microsoft 365 applications. Almost every developer building with Microsoft 365 eventually faces the same challenge. How do you know when something changes? Whether you're waiting for a new user to be created in Microsoft Entra ID, a document to be uploaded to SharePoint, or an email to arrive in Outlook, the traditional solution has always been polling—repeatedly asking Microsoft Graph if anything has changed. The problem is that most of those requests return nothing, wasting API calls, increasing latency, and eventually leading to Microsoft Graph throttling. Microsoft Graph Webhooks solve this by completely changing the communication model. Instead of your application constantly asking Microsoft Graph for updates, Microsoft Graph automatically sends your application an HTTP request whenever something important happens. In this episode, we'll explore how Graph Webhooks work, why they're more efficient than polling, how subscriptions and validation fit together, and why combining webhooks with Delta Query creates one of the most reliable integration patterns available for Microsoft 365. WHY POLLING DOESN'T SCALE Before understanding webhooks, it's important to understand the limitations of polling. Imagine checking your mailbox every five minutes throughout the day. Most of the time, there's nothing inside. Yet you continue making the same trip over and over again. Traditional applications behave exactly the same way. They repeatedly send requests asking Microsoft Graph whether anything has changed. Most requests receive exactly the same response: nothing has happened. Although each request seems harmless, thousands of applications polling Microsoft Graph every few minutes quickly generate enormous amounts of unnecessary traffic. This creates several problems. Applications consume API quotas without receiving useful information, users experience delays because changes aren't detected until the next polling cycle, and Microsoft Graph eventually begins throttling applications that generate excessive traffic. Developers often refer to this as ending up in "Graph jail." Ironically, even aggressive polling still doesn't provide true real-time updates. If a user account is created one minute after the last request, the application may not discover the change for another four minutes. Microsoft Graph Webhooks eliminate this inefficiency entirely by notifying applications only when something actually changes. WHAT ARE MICROSOFT GRAPH WEBHOOKS? A webhook is simply an HTTP POST request sent automatically when an event occurs. Instead of asking Microsoft Graph for updates, your application waits for Microsoft Graph to contact it. A useful analogy is a doorbell. Without a doorbell, you repeatedly open your front door to check whether someone has arrived. With a doorbell, you simply wait until someone rings. Microsoft Graph Webhooks work exactly the same way. Your application provides Microsoft Graph with a secure HTTPS endpoint. Microsoft Graph continuously monitors the resources you've subscribed to. Whenever a relevant event occurs, Microsoft Graph immediately sends an HTTP POST request containing information about that event. Microsoft refers to these webhook events as Change Notifications, but the underlying concept remains the same. Whether monitoring Outlook mailboxes, SharePoint document libraries, Microsoft Teams messages, calendars, users, groups, or Microsoft Entra ID objects, Graph Webhooks allow applications to respond almost instantly without unnecessary polling.  HOW GRAPH WEBHOOKS WORK The complete webhook process consists of three simple building blocks. Everything starts with a subscription. Your application tells Microsoft Graph exactly which resource it wants to monitor and where notifications should be delivered. Once the subscription has been created, Microsoft Graph begins monitoring the selected resource. Whenever a matching event occurs—such as a new user being created or a SharePoint document being updated—Microsoft Graph immediately generates a notification. That notification is delivered as an HTTP POST request to your application's endpoint. Your application receives the notification, acknowledges it, and performs whatever business logic is required. Although the overall architecture appears sophisticated, the actual workflow is remarkably simple. You subscribe. Microsoft Graph watches. Microsoft Graph notifies your application whenever something changes.  CREATING A SUBSCRIPTION Every webhook begins with creating a subscription through Microsoft Graph. When creating the subscription, four pieces of information are required. The first is the notification URL—the secure HTTPS endpoint where Microsoft Graph should deliver notifications. The second is the resource being monitored. This could be users, groups, Outlook messages, SharePoint files, Teams chats, calendars, or many other Microsoft Graph resources. Next comes the change type, allowing applications to receive notifications only for newly created items, updates, deletions, or any combination of these events. Finally, every subscription includes an expiration date. Unlike permanent registrations, Microsoft Graph subscriptions automatically expire after a predefined period. Depending on the resource, this may range from only a few days to approximately thirty days. Applications can also provide a clientState value—a secret string included with every notification. This simple mechanism allows applications to verify that notifications genuinely originated from Microsoft Graph rather than an external source attempting to send fraudulent requests. Once the subscription is successfully created, Microsoft Graph begins monitoring the selected resource automatically.  THE VALIDATION HANDSHAKE Before Microsoft Graph trusts an endpoint, it performs a verification process known as the validation handshake. Immediately after a subscription request is received, Microsoft Graph sends a validation request containing a unique validation token. Your endpoint must return that token as plain text within a short time window. A useful analogy is signing for a package delivery. Before leaving an important package, the courier confirms someone is actually available to receive it. Microsoft Graph performs exactly the same check before delivering notifications. If the endpoint successfully returns the validation token, Microsoft Graph activates the subscription. If validation fails, the subscription is never created. One detail that frequently causes problems is the response format. The validation token must be returned as plain text, not JSON or HTML, and the endpoint must support secure HTTPS communication. Although the validation process occurs only once during subscription creation, getting it right is essential because no notifications will ever arrive if validation fails.  PROCESSING NOTIFICATIONS SECURELY Once validation succeeds, Microsoft Graph begins sending notifications whenever monitored resources change. Each notification arrives as a JSON payload containing information about the event, including the affected resource, the type of change, timestamps, and the clientState value originally supplied during subscription creation. The very first step should always be validating the clientState. If the received value doesn't match the expected secret, the notification should be rejected immediately. Applications should also respond extremely quickly. Microsoft Graph expects a successful HTTP response within approximately three seconds. If responses become consistently slow, Microsoft Graph begins delaying future notifications. If endpoint performance deteriorates further, notifications may eventually be dropped entirely. For this reason, production applications rarely perform business logic directly inside the webhook endpoint. Instead, the endpoint immediately validates the notification, returns a successful HTTP response, and places the event into a background queue for asynchronous processing. This design keeps webhook endpoints responsive while allowing complex processing to occur separately without risking notification delivery.  KEEPING SUBSCRIPTIONS ALIVE One of the most commonly overlooked aspects of Graph Webhooks is subscription management. Subscriptions automatically expire. If they aren't renewed before reaching their expiration date, Microsoft Graph simply stops sending notifications. Renewing a subscription is straightforward. Applications send an update request extending the expiration time before the current subscription expires. Microsoft Graph also provides Lifecycle Notifications, allowing applications to receive advance warnings whenever subscriptions are approaching expiration or authentication tokens require renewal. Rather than discovering failures after notifications stop arriving, applications can proactively renew subscriptions and maintain uninterrupted operation. Proper subscription lifecycle management is therefore just as important as creating the original subscription itself.  WEBHOOKS AND DELTA QUERY: THE PERFECT COMBINATION Although webhooks provide immediate awareness of changes, they intentionally contain only limited information. Their purpose is simply to inform your application that something happened. To retrieve complete details, Microsoft recommends combining webhooks with Delta Query. The workflow is elegant. A webhook arrives indicating that a resource has changed.  Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support [https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support?utm_source=rss&utm_medium=rss&utm_campaign=rss].

Kommentare

0

Sei die erste Person, die kommentiert

Melde dich jetzt an und werde Teil der M365.FM - Modern work, security, and productivity with Microsoft 365-Community!

Loslegen

2 Monate für 1 €

Dann 4,99 € / Monat · Jederzeit kündbar

  • Podcasts nur bei Podimo
  • 20 Stunden Hörbücher / Monat
  • Alle kostenlosen Podcasts

Alle Folgen

853 Folgen

Episode Microsoft Graph Delta Queries - Simply Explained Cover

Microsoft Graph Delta Queries - Simply Explained

Welcome to another episode of Knowledge Nuggets with Mirko Peters. Today we're exploring Microsoft Graph Delta Queries, one of the most powerful features for building efficient synchronization solutions with Microsoft 365. Imagine you're building an application that synchronizes Outlook emails, Microsoft Entra ID users, SharePoint documents, or Teams data. Every few minutes your application checks Microsoft Graph for updates. The traditional approach downloads everything again—even if only one item changed. That means unnecessary network traffic, slower performance, increased API consumption, and eventually the risk of Microsoft Graph throttling your application. Microsoft Graph Delta Queries solve this challenge by introducing intelligent change tracking. Instead of downloading complete datasets every time, your application asks Microsoft Graph a much simpler question: "What changed since the last time I checked?" Microsoft Graph remembers where your previous synchronization ended and returns only new, modified, or deleted items. In this episode, we'll explore how Delta Queries work, how delta tokens and pagination operate behind the scenes, their limitations, and why combining Delta Queries with Change Notifications creates one of the most reliable synchronization patterns available for Microsoft 365 applications. WHY TRADITIONAL SYNCHRONIZATION IS INEFFICIENT Before understanding Delta Queries, it's important to understand the problem they were designed to solve. Traditional synchronization relies on full synchronization. Every synchronization cycle downloads every object again regardless of whether anything has actually changed. Imagine opening your calendar application every few minutes and downloading every meeting you've ever created simply because one meeting might have changed. The larger the dataset becomes, the more wasteful this approach becomes. The same problem affects applications synchronizing Microsoft Entra ID users, Outlook mailboxes, SharePoint libraries, Microsoft Teams conversations, or contacts. Thousands of objects are transferred repeatedly, even though perhaps only one or two records have changed since the previous synchronization. This unnecessary traffic consumes bandwidth, increases synchronization times, drains mobile device batteries, places additional load on Microsoft Graph, and increases the likelihood of API throttling. Microsoft Graph Delta Queries eliminate this inefficiency by returning only the differences between synchronization cycles rather than the complete dataset every time. WHAT ARE MICROSOFT GRAPH DELTA QUERIES? Microsoft Graph Delta Queries provide an incremental synchronization mechanism for Microsoft 365 resources. Instead of requesting every object repeatedly, your application asks Microsoft Graph for only the items that have changed since the previous synchronization. A useful analogy is checking your email inbox. When you open your mailbox in the morning, you don't expect every email you've ever received to download again. Instead, you only want to see the messages that arrived since your last visit. Delta Queries apply exactly the same concept to Microsoft Graph. The first request retrieves the complete dataset, creating an initial synchronization baseline. Alongside that data, Microsoft Graph returns a special URL known as the deltaLink. That link becomes your bookmark. Every future synchronization uses the saved deltaLink instead of repeating the original request. Microsoft Graph compares the stored synchronization point with its current data and returns only newly created, modified, or deleted objects. The result is dramatically faster synchronization while transferring only the information that actually matters. HOW THE DELTA TOKEN SYSTEM WORKS The real intelligence behind Delta Queries lies in the delta token. After the first synchronization, Microsoft Graph generates a deltaLink containing a unique token that records exactly where synchronization finished. You don't need to store timestamps, compare version numbers, or build your own change-tracking database. Microsoft Graph handles all of that internally. Each time your application performs another synchronization, it submits the previously saved deltaLink. Microsoft Graph immediately understands where the previous synchronization ended and calculates only the differences since that point. If many changes occurred between synchronization cycles, Microsoft Graph may split the response across multiple pages. Instead of immediately returning another deltaLink, it returns a nextLink, indicating that more results remain. Applications continue requesting successive nextLinks until Microsoft Graph finally returns a new deltaLink. Receiving a deltaLink indicates that synchronization is complete and the application is fully caught up. The new deltaLink then replaces the previous one and becomes the starting point for the next synchronization cycle.  UNDERSTANDING THE LIMITATIONS Although Delta Queries are extremely powerful, they aren't perfect. One important limitation is token expiration. For Microsoft Entra ID directory objects, delta tokens remain valid for only seven days. If an application doesn't synchronize frequently enough, the token expires and Microsoft Graph requires a completely new full synchronization before incremental tracking can resume. Another limitation involves HTTP 410 Gone responses. Microsoft Graph occasionally invalidates tokens during tenant migrations or internal maintenance. When this occurs, applications receive a 410 response and must immediately perform another complete synchronization to establish a new baseline. Applications must also understand that processing delays can occur. Updates inside Microsoft Entra ID aren't always immediately available through Delta Queries because Microsoft first processes and propagates those changes internally before exposing them through Microsoft Graph. Some resource properties are not tracked through Delta Queries, meaning certain updates require separate requests even when the primary object appears unchanged. Finally, Microsoft Graph doesn't guarantee duplicate-free responses. Applications must therefore be designed to safely process the same update multiple times without creating inconsistent data. These limitations don't reduce the value of Delta Queries, but production applications must be designed with them in mind. DELTA QUERY VS CHANGE NOTIFICATIONS Delta Queries and Change Notifications solve similar problems using very different approaches. Delta Query is a pull-based technology. Applications decide when synchronization occurs by requesting changes whenever convenient. This provides complete scheduling flexibility while requiring no publicly accessible infrastructure. Change Notifications use a push-based model. Instead of waiting for scheduled synchronization, Microsoft Graph immediately sends notifications whenever monitored resources change. Each approach has strengths. Change Notifications provide near real-time awareness but require publicly accessible HTTPS endpoints, subscription management, validation requests, and periodic subscription renewal. Delta Queries are simpler to operate because applications make outbound requests only when necessary, but synchronization latency depends entirely on how frequently applications check for updates. Neither technology completely replaces the other. Instead, Microsoft recommends using them together whenever possible. Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support [https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support?utm_source=rss&utm_medium=rss&utm_campaign=rss].

24. Juli 202615 min
Episode Responsible AI Is Good Business — Featuring Wiebke Apitzsch Cover

Responsible AI Is Good Business — Featuring Wiebke Apitzsch

Artificial intelligence is transforming every industry, but successful AI adoption requires far more than deploying the latest models or building autonomous agents. In this episode of M365.fm, Mirko Peters is joined by Wiebke Apitzsch, founder of AI Impact, AI strategy advisor, executive coach, and keynote speaker, for a deep conversation about why responsible AI is not just an ethical requirement—it is a competitive business advantage. Drawing from her background in technology, business strategy, consulting, and philosophy, Wiebke explains why organizations must first decide who they want to become with AI before selecting technologies or implementing solutions. FROM AI HYPE TO REAL BUSINESS IMPACT Many organizations rush into AI projects because of market pressure, only to discover that implementation is far more challenging than expected. Wiebke explains why AI adoption often stalls after the initial excitement and why leaders should focus on solving real business problems instead of chasing the newest models. Rather than asking, "Where can we use AI?" companies should first identify their strategic challenges and then determine whether AI is actually the right solution. Sometimes the best answer is not using AI at all. This practical mindset helps organizations avoid costly mistakes while maximizing long-term business value.  THE ROLE OF PHILOSOPHY IN ARTIFICIAL INTELLIGENCE One of the most fascinating parts of the discussion explores how philosophy can guide AI strategy. Inspired by thinkers such as Immanuel Kant, Wiebke discusses concepts like dignity, human value, and responsibility, explaining why certain activities should always remain human-centered regardless of how capable AI becomes. The conversation explores what separates humans from intelligent systems, why trust matters in every business relationship, and why organizations should carefully define where AI supports people instead of replacing them. These philosophical foundations become surprisingly practical when designing enterprise AI solutions.  BUILDING TRUSTWORTHY AI FOR THE ENTERPRISE Trust cannot simply be added to an AI solution—it must be earned through consistent, reliable behavior. Wiebke explains how organizations can design AI systems that employees and customers actually trust by keeping humans involved at the right decision points, validating AI-generated outputs, and building processes that acknowledge the probabilistic nature of large language models. Instead of striving for impossible perfection, companies should create workflows where AI accelerates work while experienced professionals remain accountable for the final outcome. This balanced approach enables organizations to benefit from AI without sacrificing quality or confidence.  AI AGENTS, AUTONOMY, AND HUMAN DECISION MAKING The conversation also explores autonomous AI agents and where they truly deliver value. While AI can automate repetitive tasks, summarize information, generate content, and optimize workflows, completely autonomous decision-making introduces significant risks. Wiebke explains why humans should continue making strategic decisions, maintaining customer relationships, driving innovation, and taking responsibility for business outcomes. AI works best as an intelligent assistant—not as an unchecked replacement for leadership, judgment, or accountability.  BIAS, HALLUCINATIONS, SECURITY, AND RESPONSIBILITY Modern AI systems raise important questions about hallucinations, algorithmic bias, data privacy, and enterprise security. Rather than treating hallucinations as unexpected failures, Wiebke explains how organizations should build processes that anticipate them through human review and validation. The discussion also covers recruitment bias, predictive policing, confidential enterprise data, local AI models, governance, and why companies—not AI vendors—remain responsible for the decisions made using AI systems. Accountability cannot be outsourced, making governance one of the most critical aspects of enterprise AI adoption.  LEADERSHIP IN THE AGE OF AI As AI capabilities continue to evolve, successful organizations will distinguish themselves not by adopting every new model, but by making thoughtful decisions about where technology creates genuine value. This episode offers practical guidance for executives, IT leaders, architects, consultants, Microsoft professionals, and anyone responsible for AI transformation. Whether you're implementing Microsoft Copilot, building AI agents, developing governance frameworks, or defining your enterprise AI strategy, this conversation provides valuable insights into creating AI systems that are not only powerful—but also trustworthy, ethical, and good for business. Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support [https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support?utm_source=rss&utm_medium=rss&utm_campaign=rss].

24. Juli 202659 min
Episode Microsoft Graph Webhooks - Simply Explained Cover

Microsoft Graph Webhooks - Simply Explained

Welcome to another episode of Knowledge Nuggets with Mirko Peters. Today we're exploring Microsoft Graph Webhooks, one of the core building blocks for creating modern, event-driven Microsoft 365 applications. Almost every developer building with Microsoft 365 eventually faces the same challenge. How do you know when something changes? Whether you're waiting for a new user to be created in Microsoft Entra ID, a document to be uploaded to SharePoint, or an email to arrive in Outlook, the traditional solution has always been polling—repeatedly asking Microsoft Graph if anything has changed. The problem is that most of those requests return nothing, wasting API calls, increasing latency, and eventually leading to Microsoft Graph throttling. Microsoft Graph Webhooks solve this by completely changing the communication model. Instead of your application constantly asking Microsoft Graph for updates, Microsoft Graph automatically sends your application an HTTP request whenever something important happens. In this episode, we'll explore how Graph Webhooks work, why they're more efficient than polling, how subscriptions and validation fit together, and why combining webhooks with Delta Query creates one of the most reliable integration patterns available for Microsoft 365. WHY POLLING DOESN'T SCALE Before understanding webhooks, it's important to understand the limitations of polling. Imagine checking your mailbox every five minutes throughout the day. Most of the time, there's nothing inside. Yet you continue making the same trip over and over again. Traditional applications behave exactly the same way. They repeatedly send requests asking Microsoft Graph whether anything has changed. Most requests receive exactly the same response: nothing has happened. Although each request seems harmless, thousands of applications polling Microsoft Graph every few minutes quickly generate enormous amounts of unnecessary traffic. This creates several problems. Applications consume API quotas without receiving useful information, users experience delays because changes aren't detected until the next polling cycle, and Microsoft Graph eventually begins throttling applications that generate excessive traffic. Developers often refer to this as ending up in "Graph jail." Ironically, even aggressive polling still doesn't provide true real-time updates. If a user account is created one minute after the last request, the application may not discover the change for another four minutes. Microsoft Graph Webhooks eliminate this inefficiency entirely by notifying applications only when something actually changes. WHAT ARE MICROSOFT GRAPH WEBHOOKS? A webhook is simply an HTTP POST request sent automatically when an event occurs. Instead of asking Microsoft Graph for updates, your application waits for Microsoft Graph to contact it. A useful analogy is a doorbell. Without a doorbell, you repeatedly open your front door to check whether someone has arrived. With a doorbell, you simply wait until someone rings. Microsoft Graph Webhooks work exactly the same way. Your application provides Microsoft Graph with a secure HTTPS endpoint. Microsoft Graph continuously monitors the resources you've subscribed to. Whenever a relevant event occurs, Microsoft Graph immediately sends an HTTP POST request containing information about that event. Microsoft refers to these webhook events as Change Notifications, but the underlying concept remains the same. Whether monitoring Outlook mailboxes, SharePoint document libraries, Microsoft Teams messages, calendars, users, groups, or Microsoft Entra ID objects, Graph Webhooks allow applications to respond almost instantly without unnecessary polling.  HOW GRAPH WEBHOOKS WORK The complete webhook process consists of three simple building blocks. Everything starts with a subscription. Your application tells Microsoft Graph exactly which resource it wants to monitor and where notifications should be delivered. Once the subscription has been created, Microsoft Graph begins monitoring the selected resource. Whenever a matching event occurs—such as a new user being created or a SharePoint document being updated—Microsoft Graph immediately generates a notification. That notification is delivered as an HTTP POST request to your application's endpoint. Your application receives the notification, acknowledges it, and performs whatever business logic is required. Although the overall architecture appears sophisticated, the actual workflow is remarkably simple. You subscribe. Microsoft Graph watches. Microsoft Graph notifies your application whenever something changes.  CREATING A SUBSCRIPTION Every webhook begins with creating a subscription through Microsoft Graph. When creating the subscription, four pieces of information are required. The first is the notification URL—the secure HTTPS endpoint where Microsoft Graph should deliver notifications. The second is the resource being monitored. This could be users, groups, Outlook messages, SharePoint files, Teams chats, calendars, or many other Microsoft Graph resources. Next comes the change type, allowing applications to receive notifications only for newly created items, updates, deletions, or any combination of these events. Finally, every subscription includes an expiration date. Unlike permanent registrations, Microsoft Graph subscriptions automatically expire after a predefined period. Depending on the resource, this may range from only a few days to approximately thirty days. Applications can also provide a clientState value—a secret string included with every notification. This simple mechanism allows applications to verify that notifications genuinely originated from Microsoft Graph rather than an external source attempting to send fraudulent requests. Once the subscription is successfully created, Microsoft Graph begins monitoring the selected resource automatically.  THE VALIDATION HANDSHAKE Before Microsoft Graph trusts an endpoint, it performs a verification process known as the validation handshake. Immediately after a subscription request is received, Microsoft Graph sends a validation request containing a unique validation token. Your endpoint must return that token as plain text within a short time window. A useful analogy is signing for a package delivery. Before leaving an important package, the courier confirms someone is actually available to receive it. Microsoft Graph performs exactly the same check before delivering notifications. If the endpoint successfully returns the validation token, Microsoft Graph activates the subscription. If validation fails, the subscription is never created. One detail that frequently causes problems is the response format. The validation token must be returned as plain text, not JSON or HTML, and the endpoint must support secure HTTPS communication. Although the validation process occurs only once during subscription creation, getting it right is essential because no notifications will ever arrive if validation fails.  PROCESSING NOTIFICATIONS SECURELY Once validation succeeds, Microsoft Graph begins sending notifications whenever monitored resources change. Each notification arrives as a JSON payload containing information about the event, including the affected resource, the type of change, timestamps, and the clientState value originally supplied during subscription creation. The very first step should always be validating the clientState. If the received value doesn't match the expected secret, the notification should be rejected immediately. Applications should also respond extremely quickly. Microsoft Graph expects a successful HTTP response within approximately three seconds. If responses become consistently slow, Microsoft Graph begins delaying future notifications. If endpoint performance deteriorates further, notifications may eventually be dropped entirely. For this reason, production applications rarely perform business logic directly inside the webhook endpoint. Instead, the endpoint immediately validates the notification, returns a successful HTTP response, and places the event into a background queue for asynchronous processing. This design keeps webhook endpoints responsive while allowing complex processing to occur separately without risking notification delivery.  KEEPING SUBSCRIPTIONS ALIVE One of the most commonly overlooked aspects of Graph Webhooks is subscription management. Subscriptions automatically expire. If they aren't renewed before reaching their expiration date, Microsoft Graph simply stops sending notifications. Renewing a subscription is straightforward. Applications send an update request extending the expiration time before the current subscription expires. Microsoft Graph also provides Lifecycle Notifications, allowing applications to receive advance warnings whenever subscriptions are approaching expiration or authentication tokens require renewal. Rather than discovering failures after notifications stop arriving, applications can proactively renew subscriptions and maintain uninterrupted operation. Proper subscription lifecycle management is therefore just as important as creating the original subscription itself.  WEBHOOKS AND DELTA QUERY: THE PERFECT COMBINATION Although webhooks provide immediate awareness of changes, they intentionally contain only limited information. Their purpose is simply to inform your application that something happened. To retrieve complete details, Microsoft recommends combining webhooks with Delta Query. The workflow is elegant. A webhook arrives indicating that a resource has changed.  Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support [https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support?utm_source=rss&utm_medium=rss&utm_campaign=rss].

24. Juli 202619 min
Episode Microsoft Graph Change Notifications - Simply Explained Cover

Microsoft Graph Change Notifications - Simply Explained

Welcome to another episode of Knowledge Nuggets with Mirko Peters. Today we're exploring Microsoft Graph Change Notifications, one of the most important capabilities for building modern, event-driven Microsoft 365 applications. Imagine your application needs to know whenever a new email arrives, a SharePoint document is updated, a Teams message is posted, or a user account changes inside Microsoft Entra ID. The traditional approach is simple—but inefficient. Your application repeatedly asks Microsoft Graph whether anything has changed. Most of the time the answer is "no," wasting API calls, increasing latency, and potentially triggering Microsoft Graph throttling. Microsoft Graph Change Notifications solve this problem by turning Microsoft 365 into an event-driven platform. Instead of continuously asking for updates, your application simply subscribes to the resources it cares about, and Microsoft Graph automatically notifies your application whenever something changes. In this episode, we'll explain how Change Notifications work, how subscriptions and webhooks fit together, why subscription renewal matters, and how organizations use this capability to build real-time Microsoft 365 solutions. THE PROBLEM WITH POLLING Before understanding Change Notifications, it's important to understand the problem they were designed to solve. Traditionally, applications relied on polling. Every few minutes an application would call Microsoft Graph asking whether anything had changed since the previous request. This approach creates several problems. If nothing has changed, every request wastes processing power, bandwidth, and API quota. If something changes immediately after the last request, users may wait several minutes before the application notices. Developers are forced to choose between frequent polling that wastes resources or slower polling that introduces delays. Microsoft Graph also protects its services through throttling. Applications making excessive requests may temporarily receive rate limits, forcing developers to slow down even further. Instead of repeatedly asking Microsoft Graph for updates, Microsoft introduced Change Notifications so that Microsoft Graph can notify applications only when something actually happens. This shift from polling to event-driven communication dramatically reduces unnecessary API traffic while providing much faster response times.  WHAT ARE MICROSOFT GRAPH CHANGE NOTIFICATIONS? Microsoft Graph Change Notifications provide a push-based event system for Microsoft 365. Rather than checking repeatedly for updates, an application tells Microsoft Graph which resources it wants to monitor. Microsoft Graph then watches those resources continuously. Whenever a matching event occurs, Microsoft Graph immediately sends an HTTP POST request to the application's endpoint. A useful analogy is a mailbox with a motion sensor. Without Change Notifications, you repeatedly walk outside to see whether new mail has arrived. With Change Notifications, the motion sensor alerts you the instant the mail is delivered. The same concept applies to Microsoft 365. Whether monitoring Outlook emails, SharePoint files, Microsoft Teams messages, users, groups, calendars, contacts, or security alerts, Microsoft Graph automatically informs your application whenever relevant activity occurs. Instead of constantly asking, your application simply reacts. SUBSCRIPTIONS: TELLING GRAPH WHAT TO WATCH Everything begins with a subscription. A subscription tells Microsoft Graph exactly which resource should be monitored and what kinds of changes should trigger notifications. When creating a subscription, several pieces of information must be provided. The application specifies the resource path, such as users, Outlook mail folders, calendars, or SharePoint libraries. It also selects which changes should trigger notifications, including newly created items, updates, deletions, or combinations of these events. Next, the application provides a secure HTTPS notification endpoint where Microsoft Graph will deliver notifications. Finally, every subscription includes an expiration date. Unlike permanent registrations, subscriptions automatically expire after a limited period. Different Microsoft 365 resources support different maximum subscription lifetimes, making renewal an essential part of every production solution. Once Microsoft Graph accepts the subscription request, it returns a unique subscription identifier that applications later use to renew, update, or delete the subscription.  THE VALIDATION HANDSHAKE Before Microsoft Graph begins sending notifications, it first verifies that the notification endpoint actually belongs to the application. This process is called the validation handshake. Immediately after a subscription is created, Microsoft Graph sends a verification request containing a validation token. The application's endpoint must return that exact token as plain text within a short time window. A helpful analogy is a courier delivering an important package. Before handing over the package, the courier rings the doorbell to confirm that someone is actually home. If nobody answers, the delivery never happens. The validation handshake works the same way. Only after the endpoint successfully returns the validation token does Microsoft Graph activate the subscription and begin delivering real notifications. This simple verification process prevents malicious applications from redirecting notifications to unauthorized destinations. KEEPING SUBSCRIPTIONS ALIVE Subscriptions do not last forever. Every subscription eventually reaches its expiration time, after which Microsoft Graph stops sending notifications entirely. Because different resources have different maximum subscription durations, production applications must continuously monitor expiration times and renew subscriptions before they expire. Renewal is performed by sending an update request using the subscription identifier together with a new expiration timestamp. Microsoft also provides lifecycle notifications, allowing applications to receive advance warnings before subscriptions expire or when access tokens require renewal. A practical strategy is to inspect expiration information whenever notifications arrive and renew subscriptions well before they expire, avoiding unnecessary outages while reducing operational complexity. Proper subscription management is one of the most important aspects of building reliable event-driven Microsoft Graph applications. BUILDING RELIABLE SOLUTIONS Real-world systems occasionally experience failures. Endpoints may become temporarily unavailable, networks may experience interruptions, or notifications may occasionally fail to arrive. Microsoft Graph therefore expects webhook endpoints to acknowledge notifications very quickly. Applications should return an immediate success response while processing notifications asynchronously in the background. Rather than performing lengthy business logic inside the webhook itself, notifications should typically be placed into queues where background services can process them safely without delaying Microsoft Graph. Microsoft also recommends combining Change Notifications with Delta Queries. Change Notifications provide immediate awareness whenever something changes, while Delta Queries periodically compare current data with previous synchronization states. Together they create a highly reliable synchronization strategy where notifications deliver real-time updates while Delta Queries recover any events that might have been missed because of temporary outages or expired subscriptions. This combination gives organizations both speed and reliability. REAL WORLD BUSINESS SCENARIOS Microsoft Graph Change Notifications enable numerous automation scenarios across Microsoft 365. Human Resources systems can automatically provision new employees when Microsoft Entra ID creates user accounts, triggering downstream onboarding processes immediately. Security platforms can react instantly whenever user accounts become disabled or security-sensitive changes occur, allowing security teams to investigate potential incidents without waiting for scheduled scans. Document processing solutions monitor SharePoint libraries, automatically classifying newly uploaded files with AI before routing invoices, contracts, or forms into appropriate business workflows. Analytics platforms synchronize Microsoft 365 activity into Microsoft Fabric or Power BI almost immediately, allowing dashboards to reflect operational changes in near real time. Microsoft Copilot connectors also leverage event-driven synchronization so AI assistants receive updated business information as soon as source systems change, allowing Copilot experiences to remain current without repeatedly scanning entire datasets. In every scenario, Change Notifications eliminate unnecessary polling while dramatically reducing response times. CHOOSING THE RIGHT DELIVERY OPTION Microsoft supports several delivery models depending on application scale. For many organizations, webhooks provide the simplest solution. Microsoft Graph sends HTTP POST requests directly to the application's notification endpoint, making implementation straightforward for low and medium notification volumes. Larger enterprise environments often choose Azure Event Hubs, allowing millions of notifications to flow through highly scalable event streaming infrastructure before applications process them at their own pace. Organizations building serverless architectures frequently integrate Change Notifications with Azure Event Grid, allowing Azure Functions, Logic Apps, and other cloud-native services to react automatically while Microsoft handles retries and message delivery. Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support [https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support?utm_source=rss&utm_medium=rss&utm_campaign=rss].

24. Juli 202611 min
Episode Microsoft Cloud for Sustainability - Simply Explained Cover

Microsoft Cloud for Sustainability - Simply Explained

Welcome to another episode of Knowledge Nuggets with Mirko Peters. Today we're exploring Microsoft Cloud for Sustainability, Microsoft's end-to-end platform for measuring, managing, and reducing an organization's environmental impact. Most organizations want to become more sustainable, but very few can accurately answer a simple question: What is our actual carbon footprint? The challenge isn't a lack of commitment—it's a lack of connected data. Electricity bills, fuel consumption, supplier reports, travel expenses, and waste management records all exist in different systems, managed by different departments, often using completely different formats. Before companies can reduce emissions, they first need to understand them. Microsoft Cloud for Sustainability was built to solve exactly this challenge. Rather than acting as a simple carbon calculator, it creates a unified sustainability platform that collects data, calculates emissions, supports compliance reporting, and helps organizations make better environmental decisions. In this episode, we'll explore how the platform works, its three major building blocks, and why businesses around the world are adopting it to improve both sustainability and operational efficiency. THE CHALLENGE OF SUSTAINABILITY DATA Before understanding the platform, it's important to understand the problem it solves. Imagine a company asked to report its annual carbon footprint. That seemingly straightforward request immediately requires data from electricity providers, fleet management systems, business travel records, procurement databases, manufacturing facilities, waste disposal companies, and suppliers. Unfortunately, none of those systems naturally work together. One department submits PDF utility bills, another exports Excel spreadsheets, procurement provides CSV files, while HR stores travel information inside an entirely different application. Even the measurement units differ, requiring organizations to manually convert kilowatt-hours, gallons, liters, therms, and countless other units before meaningful analysis can begin. At the same time, regulations such as the European Union's Corporate Sustainability Reporting Directive (CSRD) increasingly require accurate environmental reporting, making reliable sustainability data a regulatory requirement rather than a voluntary initiative. Instead of spending valuable time improving sustainability, many organizations spend months simply collecting information. Microsoft Cloud for Sustainability was created to eliminate that inefficiency.  WHAT IS MICROSOFT CLOUD FOR SUSTAINABILITY? Microsoft Cloud for Sustainability is not a single application. It is a connected platform built on Microsoft Power Platform and Dynamics 365 that provides organizations with one centralized location for sustainability management. A useful analogy is to imagine sustainability data scattered across dozens of filing cabinets throughout an organization. Microsoft Cloud for Sustainability gathers all those documents, standardizes the information, translates different formats into one consistent data model, and presents everything through a unified dashboard. The platform follows three primary objectives. First, it records sustainability information from across the business. Second, it reports environmental impact using recognized global standards. Finally, it helps organizations reduce emissions by identifying opportunities for improvement through analytics and AI. Although carbon reporting remains the primary use case for many organizations, Microsoft has expanded the platform to include water consumption, waste management, and broader Environmental, Social, and Governance (ESG) reporting as well. BUILDING BLOCK ONE: COLLECTING THE DATA Everything begins with gathering reliable sustainability data. Microsoft provides multiple approaches depending on an organization's level of maturity. Smaller organizations often begin with structured Excel templates that allow users to upload electricity usage, fuel consumption, water usage, or waste data using standardized formats. Larger organizations frequently automate data collection through Power Query, which connects directly to enterprise systems using dozens of available connectors. Instead of manually exporting spreadsheets every month, sustainability data flows automatically into the platform according to scheduled refreshes. Microsoft also supports partner connectors for organizations already working with specialized ESG providers, while built-in manual data collection portals allow employees and facility managers to submit information that isn't available through automated systems. Regardless of the source, every dataset ultimately flows into the same standardized sustainability data model, ensuring consistent reporting and eliminating many of the formatting problems that traditionally complicate sustainability reporting.  BUILDING BLOCK TWO: CALCULATING ENVIRONMENTAL IMPACT Raw activity data alone doesn't measure sustainability. Electricity consumption, vehicle mileage, fuel usage, and business travel only become meaningful after they are converted into greenhouse gas emissions. Microsoft Cloud for Sustainability performs these calculations automatically using internationally recognized emissions factor libraries provided by organizations such as the EPA and the International Energy Agency. The platform calculates emissions across the three internationally recognized greenhouse gas categories. Scope 1 covers direct emissions generated by assets the organization owns or controls, such as company vehicles or manufacturing equipment. Scope 2 measures indirect emissions resulting from purchased electricity, heating, or cooling. Scope 3 extends much further by including emissions throughout the wider value chain, including suppliers, transportation, purchased goods, employee travel, and product disposal. Because Scope 3 often represents the largest portion of an organization's environmental footprint, Microsoft includes supplier portals that simplify collecting sustainability information directly from external partners while automatically applying appropriate emissions calculations behind the scenes. BUILDING BLOCK THREE: TURNING DATA INTO ACTION Once emissions have been calculated, the platform focuses on helping organizations improve. Interactive dashboards provide near real-time visibility into carbon emissions, water usage, waste generation, and sustainability performance across facilities, business units, or geographic regions. Artificial intelligence continuously analyzes incoming information, highlighting unusual increases in emissions or unexpected changes in resource consumption that might otherwise remain unnoticed. One particularly valuable capability is what-if analysis. Organizations can simulate future decisions before making real-world investments. They can estimate how switching vehicle fleets to electric cars, selecting different suppliers, or adopting renewable energy sources would influence future emissions. Goal tracking and scorecards further allow organizations to measure progress toward long-term sustainability objectives while keeping leadership informed through executive dashboards. Microsoft has also introduced capabilities that connect sustainability information with financial metrics, helping executives understand not only environmental impact but also the financial consequences of sustainability decisions.  SIMPLIFYING COMPLIANCE REPORTING Reporting is often the most time-consuming aspect of sustainability management. Organizations must frequently prepare reports for multiple regulatory frameworks, each using different structures and disclosure requirements. Microsoft Cloud for Sustainability includes built-in reporting templates supporting major international frameworks including CSRD, GRI, IFRS S1, IFRS S2, SASB, and several additional standards. Rather than manually mapping every data point to different regulatory requirements, the platform performs much of this work automatically. Organizations can even calculate emissions using multiple methodologies simultaneously while maintaining complete audit trails that allow every reported figure to be traced back to its original source. Copilot further simplifies reporting by generating draft disclosures, summarizing sustainability performance, and answering natural-language questions about environmental data. Instead of spending months preparing annual reports, sustainability teams can focus more of their time on improving environmental performance itself.  REAL-WORLD RESULTS Several organizations have already demonstrated the business value of Microsoft's sustainability platform. Emirates NBD reduced sustainability reporting time from approximately three months to only one week while significantly improving visibility into emissions data. This improved insight also supported major sustainability investments that substantially reduced carbon emissions. Brazilian payments company Elo consolidated dozens of disconnected databases into one platform, reducing manual work by more than forty percent while saving hundreds of working hours annually and lowering consulting costs. Mitsubishi Electric used the platform to optimize smart building operations, while World Wide Technology significantly reduced the time required to perform emissions calculations across its organization. Across these examples, the biggest benefit wasn't simply regulatory compliance—it was gaining reliable visibility that allowed organizations to make smarter operational decisions.  Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support [https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support?utm_source=rss&utm_medium=rss&utm_campaign=rss].

24. Juli 202612 min