Connect Viraly to Microsoft Teams to receive real-time post-approval requests, publishing alerts, and comment tags directly in your chosen Teams channels. Approve or reject posts with one click from an Adaptive Card, and run @Viraly commands from any channel where the bot is installed. This guide walks you through setup, channel routing, and day-to-day use.
Overview
The Viraly Microsoft Teams integration brings your team’s content workflow directly into Teams. Instead of checking Viraly throughout the day for approvals, failures, and publishing updates, Viraly posts Adaptive Cards to the channels you choose. Reviewers can Approve or Reject posts inline, and your whole team sees outcomes in real time.
With the integration, you can:
- Receive post approval requests in Teams as rich Adaptive Cards with inline Approve and Reject buttons.
- Get alerts when posts fail to publish or a connected social account’s token expires.
- See success confirmations and teammate comment tags (opt-in).
- Run
@Viraly pending,@Viraly failures, and@Viraly scheduledfrom any channel where the Viraly bot is installed. - Route each event type to a different Teams channel.
Prerequisites
Before connecting Microsoft Teams, make sure you have:
- A Viraly Business, Agency, or Enterprise plan.
- A Microsoft 365 tenant with Microsoft Teams enabled.
- Your Teams administrator’s cooperation to install the Viraly app in your tenant and grant admin consent for Microsoft Graph read permissions.
- For Approve/Reject buttons: team members who respond from Teams must use the same email address on both Viraly and Microsoft 365.
Connecting Microsoft Teams
Connecting is a two-part flow: first you install the Viraly bot into your Teams tenant (one-time, done by a Teams admin), then you link that tenant to your Viraly workspace via OAuth.
Step 1 — Install the Viraly app in Teams
- In the Teams client, open Apps from the left sidebar, search for Viraly, and click Add (or Add to a team to pre-install it in a specific team).
- If your Teams admin hasn’t yet approved the Viraly app, ask them to do so in the Microsoft Teams admin center → Teams apps → Manage apps.
- For private channels, you must invite the Viraly bot explicitly by typing
@Viralyin that channel.
Step 2 — Link Teams to Viraly
- In Viraly, go to Settings → Microsoft Teams, or open the Integrations page and click the Microsoft Teams card.
- Click Connect Microsoft Teams.
- On Microsoft’s consent screen, choose your Microsoft 365 account, review the requested permissions, and click Accept. If your tenant requires admin consent, your admin will need to approve once before end users can connect.
- You’ll be redirected back to Viraly and land on the Microsoft Teams settings page showing the connected tenant.
When you connect for the first time, Viraly pre-creates a default route set for urgent events (approval requests, rejections, publishing failures, processing failures, and channel-reconnection alerts) — but with no channel selected yet. Pick a team and channel for each event in the routing table to start receiving notifications.
Supported Events
Viraly can post the following events to Microsoft Teams. Each can be routed to a different channel.
Action required (enabled by default)
- Post Approval Requested — a post is waiting on an approver. The Adaptive Card includes the post title, channel, scheduled time, and inline Approve / Reject buttons.
- Post Rejected — an approver has rejected a post, with the reason they gave.
- Post Publishing Failed — a post failed to publish to the social network. The card includes the error message and a link back to the post.
- Post Processing Failed — media processing failed before publishing. Includes the error and a link.
- Channel Reconnection Required — a social account’s token expired and scheduled posts to that channel are paused until it is reconnected.
Informational (off by default — opt in)
- Post Approved — confirmation that an approver signed off on the post.
- Post Published — success message after the post is live, with the external URL.
- Comment Tag — you were @-mentioned in a comment on a post.
Per-Event Channel Routing
On Settings → Microsoft Teams, each event has its own row with a team picker, a channel picker, and an “Enabled” toggle. Unlike Slack’s flat channel list, Teams has a two-level structure: you first pick the team, then the channel within that team.
Route approvals to a Social media team’s Content channel, alerts to IT Ops → Incidents, success updates to Marketing → Wins — whatever fits your team’s workflow.
Click the Test button next to any row to send a sample Adaptive Card to that channel. The test message confirms the bot is installed and has permission to post there.
Important: The Viraly bot can only post in channels where it has been added. For public channels, install Viraly on the parent team in the Teams Apps store. For private channels, you must invite the bot explicitly with @Viraly inside the channel. Private channels won’t appear in the dropdown until the bot is a member.
Approving Posts from Teams
When a post needs approval, Viraly posts an Adaptive Card to the Teams channel you’ve routed approvals to. The card shows the post title, channel, scheduled time, and requester, plus inline Approve and Reject buttons.
- Clicking Approve records the approval immediately and replaces the card with a confirmation (“✅ Post approved by {name}”).
- Clicking Reject opens a small dialog for you to type a rejection reason. When you submit, the card updates to “❌ Post rejected by {name}” and the reason is shared back to the post author.
- Clicking View in Viraly opens the post in a new browser tab — useful if you want to preview media or context before deciding.
For the buttons to work, the Teams user’s email must match their Viraly account email, and they must be in the post’s approvers list in Viraly. If either condition fails, the card shows a short error explaining why, and nothing is recorded.
Admin consent note: resolving the clicking user’s email from their Microsoft identity requires User.Read.All as an application permission on Viraly’s Microsoft Entra app. Your Microsoft 365 admin grants this once; until they do, the Approve/Reject card will ask the user to approve from the Viraly web UI instead.
Bot Commands
From any channel where the Viraly bot is present, you can @-mention the bot with a command:
@Viraly pending— list posts waiting for your approval.@Viraly failures— see post failures from the last 7 days.@Viraly scheduled— preview posts scheduled to go out in the next 24 hours.@Viraly help— show the command list.
Unlike Slack’s slash-command replies (which are ephemeral), Teams channel replies are visible to everyone in the channel. Viraly’s command cards are compact and cap at 10 visible items with a “and N more in Viraly →” footer link if the list is longer.
Disconnecting
On Settings → Microsoft Teams, click Disconnect. This deactivates the connection in Viraly and stops all outbound notifications to Teams. Your channel routing configuration is kept — if you reconnect later, you can reuse it.
Microsoft does not expose an app-initiated revoke endpoint the way Slack does, so Viraly’s stored refresh token cannot be invalidated at Microsoft’s side from here. If you want to fully sever access — e.g., before rotating credentials — a tenant admin can remove the Viraly app from the Microsoft 365 admin center → Settings → Integrated apps, which revokes all tokens.
Troubleshooting
- Test message failed. The Viraly bot isn’t a member of that channel. Type
@Viralyinside the channel in Teams to invite it, then retry. - Approve / Reject says “admin needs to grant consent”. Your Microsoft 365 admin hasn’t granted the
User.Read.Allapplication permission that lets Viraly resolve user identities. Ask them to approve Viraly in the Microsoft Entra admin center or re-run the admin consent prompt for the Viraly app. - Approve / Reject says my email isn’t registered. Your Microsoft 365 email doesn’t match a user in the connected Viraly workspace. Ask a workspace admin to invite you to Viraly using the same email you use in Microsoft 365.
- No Teams messages are arriving. Open Settings → Microsoft Teams and check the routing table: each event must have a team + channel selected and the Enabled toggle on. Use the Test button to confirm the channel is reachable.
- Messages stopped arriving after working previously. A tenant admin may have revoked the app or the bot may have been removed from the destination team. Reconnect from Settings → Microsoft Teams, and re-install the bot on the team if needed.
- Private channels don’t appear in the dropdown. Microsoft Graph only exposes private channels the bot is a member of. Invite
@Viralyinside the private channel, then reload the settings page. - “Viraly app not available” inside Teams. The Microsoft 365 admin hasn’t approved the Viraly custom app in the Teams admin center’s Manage apps list. Ask them to set the app status to Allowed.