100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Microsoft 365

Webhooks and Connectors

Learn how incoming webhooks, Office 365 Connectors, and Graph change notifications push external events into Teams channels.

IntegrationBeginner8 min readJul 10, 2026
Analogies

Incoming Webhooks: Posting Into a Channel

An incoming webhook is the simplest way to push a message into a specific Teams channel: a channel owner adds the Incoming Webhook connector from the channel's connector list, gives it a name and icon, and receives a unique HTTPS URL. Any external system — a CI server, a monitoring tool, a script — can then POST a JSON payload to that URL and the message appears in the channel, with no OAuth token, app registration, or bot required, making it the fastest way to get simple notifications flowing.

🏏

Cricket analogy: This is like a stadium giving the ground announcer's PA system a single dedicated phone line — anyone with that number can call in a score update and it's broadcast to the whole crowd, no credential check required.

json
POST https://outlook.office.com/webhook/{unique-id}/IncomingWebhook/{token}/{guid}
Content-Type: application/json

{
  "@type": "MessageCard",
  "@context": "http://schema.org/extensions",
  "themeColor": "0076D7",
  "summary": "Deployment finished",
  "sections": [{
    "activityTitle": "Deployment to production succeeded",
    "facts": [
      { "name": "Service", "value": "payments-api" },
      { "name": "Version", "value": "3.4.1" }
    ],
    "markdown": true
  }]
}

Office 365 Connectors and Their Deprecation

Office 365 Connectors extended the incoming webhook idea into pre-built integrations — GitHub, Trello, RSS, Azure DevOps — that a channel owner could configure through a gallery without writing any code, mapping specific external events to formatted MessageCard notifications. Microsoft has deprecated Connectors in favor of Workflows built on Power Automate, meaning any tenant still relying on the classic Connectors gallery should plan a migration, since Microsoft has been progressively retiring the legacy connector infrastructure.

🏏

Cricket analogy: This is like a cricket board retiring an old manual scoreboard-relay system in favor of a modern digital broadcast pipeline — the old gallery of pre-built connectors is being phased out for Power Automate workflows.

If you inherited a Teams channel with legacy Office 365 Connectors configured, check Microsoft's Message Center for tenant-specific deprecation dates and use the built-in migration guidance to move each connector's logic into an equivalent Power Automate flow.

Change Notifications: Subscribing to Graph Events

Beyond one-way webhooks, Microsoft Graph offers change notifications (also called subscriptions) for two-way event-driven integrations: an app calls POST /subscriptions specifying a resource like /teams/{id}/channels/{id}/messages, a notificationUrl it controls, and an expirationDateTime, and Graph then POSTs a notification payload to that URL whenever a matching message is created, updated, or deleted. Subscriptions expire — typically after 60 minutes for chat messages — so a production app must renew them before expiry via PATCH, and must validate the clientState value on every notification to confirm it originated from the genuine subscription.

🏏

Cricket analogy: This is like a broadcaster subscribing to a stadium's official event feed that pushes a notification the instant a wicket falls, rather than the broadcaster having to keep refreshing the scoreboard manually.

Chat and channel message subscriptions have short maximum lifetimes (often 60 minutes) compared to other Graph resources. Build renewal into a scheduled job well before expiry — a lapsed subscription silently stops delivering notifications with no error thrown on the sending side.

  • Incoming webhooks give a channel a unique URL that any external system can POST a MessageCard payload to, with no OAuth needed.
  • Office 365 Connectors were a no-code gallery of pre-built webhook integrations and are being deprecated in favor of Power Automate workflows.
  • Graph change notifications (subscriptions) let an app receive a push notification when a resource like a channel message changes.
  • Creating a subscription requires a resource path, a notificationUrl, and an expirationDateTime.
  • Message-related subscriptions expire quickly (often around 60 minutes) and must be renewed via PATCH before expiry.
  • Always validate the clientState value on incoming notifications to confirm authenticity.
  • Migrate any legacy Connector-based integrations to Power Automate flows ahead of tenant deprecation dates.

Practice what you learned

Was this page helpful?

Topics covered

#Microsoft365#MicrosoftTeamsDevelopmentStudyNotes#MicrosoftTechnologies#WebhooksAndConnectors#Webhooks#Connectors#Incoming#Posting#APIs#StudyNotes#SkillVeris