How to Connect n8n to Microsoft Teams: The Complete Integration Guide (2025)
Microsoft Teams is where most enterprises actually live — chat, meetings, files, and now a growing surface for automations. If your business runs on Microsoft 365, connecting n8n to Teams lets you push CRM alerts, approval requests, and daily digests straight into the channels your team already watches.
This guide walks through authenticating n8n with Microsoft Teams, sending your first channel message, and turning inbound Teams events into workflow triggers — with the gotchas that trip up most first-timers.
What you can automate between n8n and Teams
The Teams node in n8n is bidirectional, so you can both send data into Teams and react to activity inside it. Common automations include:
- Sales & CRM alerts — a new deal, a stuck pipeline stage, or a high-value lead posts to your sales channel instantly.
- Approval workflows — route expense requests or content for sign-off with actionable message cards.
- Daily & weekly digests — aggregate metrics from GA4, HubSpot, or a database and post a formatted summary every morning.
- Incident alerts — pipe errors, downtime, or failed payments into an ops channel with @mentions.
Step 1 — Register an app in Azure and grant Graph permissions
Microsoft Teams automation runs through the Microsoft Graph API, so you need an Azure AD app registration:
- Go to Azure Portal → App registrations → New registration.
- Add a redirect URI pointing at your n8n instance:
https://YOUR-N8N/rest/oauth2-credential/callback. - Under API permissions, add delegated Microsoft Graph scopes:
ChannelMessage.Send,Group.Read.All, andChat.ReadWrite. - Create a client secret and copy the value immediately — it is only shown once.
Grant admin consent for the permissions so your workflows don't stall waiting on approval.
Step 2 — Create the Microsoft Teams credential in n8n
In n8n, open Credentials → New → Microsoft Teams OAuth2 API. Paste the Client ID and Client Secret from your Azure app, then click Connect my account. A Microsoft login window opens; sign in with an account that belongs to the target team. Once connected, n8n stores the refresh token and keeps the session alive automatically.
Tip: use a dedicated service account rather than a personal login, so automations keep running when an employee leaves.
🚀 Skip the boilerplate — start with a working team assistant
Instead of wiring Teams alerts from scratch, drop in a ready-made AI assistant that summarizes threads, creates tasks, and answers questions right inside your team channel.
Get the Slack/Teams AI Assistant template →
Step 3 — Send your first channel message
Add a Microsoft Teams node, choose resource Channel Message and operation Create. Select the team and channel from the dropdowns, then compose your message. Teams supports rich content, so you can send HTML or an Adaptive Card for buttons and structured layouts.
Use expressions to inject live data — for example {{ $json.dealName }} just moved to Negotiation ($ {{ $json.value }}). Execute the node and the message appears in your channel within a second.
Step 4 — Trigger workflows from Teams activity
To react to messages, use the Microsoft Teams Trigger node backed by a Graph change-notification subscription. n8n handles the webhook handshake and subscription renewal for you. From there you can build a lightweight bot: parse the incoming message text, run it through an AI node, and reply in-thread.
Because subscriptions expire, keep your n8n instance reachable over HTTPS with a valid certificate — self-signed certs will cause Graph to silently drop notifications.
Common errors and how to fix them
- 403 Forbidden on send — admin consent wasn't granted, or the service account isn't a member of the team.
- Trigger never fires — the notification subscription lapsed; confirm your callback URL is public HTTPS and returns the validation token.
- Message posts but formatting breaks — Teams sanitizes some HTML; switch to Adaptive Cards for reliable buttons and layout.
Bringing it together
Connecting n8n to Microsoft Teams is mostly an Azure app-registration exercise — once the Graph permissions and OAuth2 credential are in place, sending messages and reacting to events is straightforward. Start with one high-value alert (new deals, failed payments, or a morning digest), prove the value, then expand into approvals and two-way bots.
The teams that get the most out of this don't build one giant workflow — they ship small, focused automations that each remove a manual notification step.
Ready to automate? Get this n8n template on Gumroad
Get a production-ready AI assistant for Slack and Teams — thread summaries, task creation, and a Q&A bot your whole team can use.