A Microsoft Teams to Slack integration lets users on either platform send and receive messages without switching apps. This guide walks you through the steps to set one up using SyncRivo.
What You Need Before You Start
Before connecting Teams and Slack, confirm you have:
- Microsoft 365 Global Admin or Teams Service Admin access — required to authorize the Microsoft Graph API scopes SyncRivo needs (ChannelMessage.Read.All, ChannelMessage.Send, User.Read.All)
- Slack Workspace Admin access — required to authorize SyncRivo's OAuth app in your Slack workspace
- Admin availability — your first channel bridge is typically live during onboarding, once your Slack and Teams admins approve the app
- A SyncRivo account (book a guided demo at syncrivo.ai to get started)
You do not need to write any code, configure any servers, or open any firewall rules. SyncRivo handles the integration entirely through Microsoft Graph and Slack's native APIs.
Step 1: Create a SyncRivo Account
Go to syncrivo.ai/pricing and book a demo to get started. The Enterprise plan (custom pricing) includes your Microsoft Teams ↔ Slack integration.
Once your account is created, you'll land in the SyncRivo dashboard. You'll see two sections: Platforms (where you connect Teams and Slack) and Bridges (where you define which channels talk to which).
Step 2: Authorize Microsoft Teams
From the dashboard, click Add Platform → Microsoft Teams.
You'll be redirected to the Microsoft identity platform consent screen. Sign in with your Microsoft 365 admin account and review the requested permissions:
| Permission | Reason |
|---|---|
| ChannelMessage.Read.All | Read messages from connected Teams channels |
| ChannelMessage.Send | Post bridged Slack messages into Teams |
| User.Read.All | Map display names between platforms |
| Channel.ReadBasic.All | List channels for mapping UI |
Click Accept. Microsoft will create an application consent record in your Azure Active Directory tenant. This is a one-time action — individual users do not need to grant permissions.
Common issue: If you see "Need admin approval," your tenant requires admin consent for third-party apps. Ask your Global Admin to approve SyncRivo in the Azure AD Enterprise Applications panel under admin consent requests.
Step 3: Authorize Slack
Back in the SyncRivo dashboard, click Add Platform → Slack.
You'll be redirected to Slack's OAuth authorization screen. Sign in with your Slack Workspace Admin account and review the requested OAuth scopes:
| Scope | Reason |
|---|---|
| channels:read | List channels for the mapping UI |
| channels:history | Read messages for bidirectional sync |
| chat:write | Post bridged Teams messages into Slack |
| users:read | Map user display names |
Click Allow. Slack will issue SyncRivo a workspace-scoped OAuth token stored encrypted at rest.
Required Slack plan: SyncRivo works with Slack Pro, Business+, and Enterprise Grid. The free Slack plan does not expose the Events API or channels:history scope at the level needed for real-time sync.
Step 4: Map Your Channels
With both platforms authorized, click Create Bridge in the dashboard.
You'll see two dropdown menus — one for your Teams channels and one for your Slack channels. Select the pair you want to connect.
Configuration options:
- Sync direction: Bidirectional
- Thread preservation: Enabled by default — replies in a Slack thread appear as replies in the Teams conversation, and vice versa
- Per-connection switches: Turn attachments, reactions, in-place edits and deletes, retry, and showing the sender's name/email on or off for each connection
Click Activate Bridge. The bridge is now live.
You can map multiple channel pairs under a single SyncRivo subscription — each pair syncs independently with its own configuration.
Step 5: Test the Bridge
Post a test message in your mapped Teams channel. Within seconds, it should appear in the paired Slack channel with:
- Your display name as the sender (Slack still shows its APP label on bridged messages)
- Thread structure intact
- Any file attachments as links
Send a reply from the Slack side. It should appear in the Teams conversation thread within seconds.
If messages are not flowing, see the troubleshooting section below.
Troubleshooting Common Setup Issues
Teams messages not appearing in Slack:
- Verify the SyncRivo app is installed to the team that owns the channel — Teams channel messages reach SyncRivo through that team-level app installation
- Check that the Teams channel selected is a public channel — private channels require additional Graph API scopes (ChannelMessage.ReadPrivate.All) and a separate admin consent step
- Confirm the SyncRivo service status at status.syncrivo.ai
Slack messages not appearing in Teams:
- Verify the Slack Events API connection is active (SyncRivo dashboard → Platform Health → Slack)
- Confirm the Slack workspace is on Pro, Business+, or Enterprise Grid — free workspaces do not support the real-time Events API
Messages showing the wrong sender name: SyncRivo maps display names by email address. If a Teams user and a Slack user have different email addresses, the bridged message will show "[Teams] FirstName LastName" as the sender. To resolve, ensure both accounts use the same email, or configure a custom display name mapping in SyncRivo's user settings.
Microsoft admin consent error: If you see "AADSTS65001: The user or administrator has not consented," your Azure AD tenant requires admin pre-approval for SyncRivo's application ID. Navigate to Azure Active Directory → Enterprise Applications → Admin Consent Requests and approve SyncRivo.
What Gets Synced Between Teams and Slack
| Element | Synced |
|---|---|
| Text messages | ✅ Full content |
| Thread replies | ✅ Bidirectional |
| File attachments | ✅ As secure links |
| Sender display name | ✅ Mapped by email |
| @mention routing | ✅ Cross-platform |
| Emoji reactions | ⚠️ Limited on Teams (only for people who connected their Teams account; six Teams reaction types) |
| Message edits | ✅ Both directions |
| Message deletions | ✅ Both directions |
| Meeting invites | ❌ Not supported |
| Voice/video calls | ❌ Not supported |
The bridge handles text-first collaboration: messages, threads, files, and reactions. Voice, video, and calendar invites remain platform-native.
Security and Compliance
SyncRivo does not store message content on the normal relay path. Every message follows this path:
- Received from Microsoft Teams (Bot Framework) or the Slack Events API
- Display name and formatting translated in memory
- Delivered to the destination API (Slack Web API or Microsoft Teams)
- Only message IDs are kept, so threads, edits, and reactions stay in sync; an optional retry queue temporarily holds undelivered messages
File bytes pass through memory and are not stored.
SyncRivo does not currently hold a SOC 2 report; we provide a security questionnaire and architecture review on request. A Business Associate Agreement (BAA) is available for Enterprise customers. OAuth tokens are encrypted at rest, and traffic is encrypted in transit with TLS.
Ready to Connect Teams and Slack?
Your first channel bridge is typically live during onboarding, once your Slack and Teams admins approve the app. Start with a single channel pair — your most active cross-platform channel is usually the best candidate — and expand from there.
→ Set up your Microsoft Teams to Slack bridge → View SyncRivo pricing → Read the complete Teams to Slack integration guide
Ready to connect your messaging platforms?