Connect Viraly to your Discord server to receive real-time notifications, approve posts with one click, and run /viraly commands directly from any channel. This guide walks you through setup, per-event channel routing, linking your personal Discord account for approvals, and day-to-day use.
Overview
The Viraly Discord integration brings your team’s content workflow into Discord. Instead of checking Viraly throughout the day for approvals, failures, and publishing updates, Viraly surfaces them to the channels you choose automatically. Approvers can review and respond to posts without leaving Discord, and your whole team sees the outcome in real time.
With the integration, you can:
- Receive post approval requests in Discord with inline Approve and Reject buttons
- Get alerts when posts fail to publish or a connected channel’s token expires
- See success confirmations and teammate comment tags (optional)
- Run
/viraly pending,/viraly failures, and/viraly scheduledfrom any channel - Route each event type to a different Discord channel
Prerequisites
Before connecting Discord, make sure you have:
- A Viraly Business, Agency, or Enterprise plan
- A Discord server where you have Manage Server permission (required to add bots)
- For Approve/Reject buttons: each team member who will respond from Discord links their personal Discord account once (see Linking Your Discord Account)
Connecting Discord
- In Viraly, go to Settings → Discord, or open the Integrations page and click the Discord card.
- Click the Add to Discord button.
- On Discord’s consent screen, pick the server you want to connect from the dropdown and click Authorize.
- Complete the CAPTCHA if prompted, then grant the listed permissions. Viraly requests only what’s needed: View Channels, Send Messages, Embed Links, Attach Files, Read Message History, and Use External Emojis.
- You’ll be redirected back to Viraly and land on the Discord settings page showing the connected server.
When you connect for the first time, Viraly creates default routes to your server’s #general channel (or the first text channel it can post to) and enables the five most important event types: post approval requested, post rejected, post publishing failed, post processing failed, and channel reconnection required.
Supported Events
Viraly can deliver eight event types to Discord. The first five are enabled by default; the rest are opt-in.
| Event | When it fires | Default |
|---|---|---|
| Post Approval Requested | An approver needs to review a post before it publishes | On |
| Post Rejected | An approver rejects a post | On |
| Post Publishing Failed | Publishing to the social network failed | On |
| Post Processing Failed | Media processing failed before publishing | On |
| Channel Reconnection Required | A connected channel’s token expired and scheduled posts are paused | On |
| Post Approved | An approver approves a post | Off |
| Post Published | A post publishes successfully | Off |
| Comment Tag | A teammate tags you in a Viraly post comment | Off |
Per-Event Channel Routing
Each event type can be routed to a different Discord channel. Pick the right channel for each signal: approvals to #content-approvals, failures to #alerts, published confirmations to #social-wins, and so on.
- On the Discord settings page, find the event in the Event Routing table.
- Use the channel dropdown to pick a Discord channel. Channels are grouped by their parent category.
- Tick the Enabled checkbox to turn the event on.
- Click the paper-airplane Test button to send a sample embed and verify the bot has permission to post in that channel.
- Click Save changes.
Tip: if a test fails, make sure the Viraly bot has View Channel and Send Messages permission for that specific channel. Discord channel-level permissions can override server-wide ones — check the channel’s permission overrides under its Edit Channel → Permissions tab.
Linking Your Discord Account
Discord doesn’t share email addresses with bots, so Viraly can’t automatically tell which Discord user corresponds to which Viraly user. Each team member who wants to use Approve/Reject buttons in Discord links their personal Discord account once.
- On the Discord settings page, scroll down to the Your Discord account card.
- Click Link Discord account.
- Authorize the identify and email permissions on Discord’s consent screen.
- You’ll be redirected back to Viraly. The card now shows your Discord handle and a green Linked badge.
The link is personal — each team member links their own account once. A Discord account can only be linked to one Viraly user, and a Viraly user can link one Discord account per workspace.
Approving Posts from Discord
When a post enters the approval queue, Viraly sends an embed to the Post Approval Requested channel showing the post title, the requester, the scheduled time, and the target social channels. The embed has three buttons:
- Approve — records the approval in Viraly and updates the card to show ✅ Approved by {your name}
- Reject — opens a short modal asking for a reason, then records the rejection and updates the card to ❌ Rejected by {your name} — reason: {text}
- View in Viraly — opens the post in the Viraly web app for full context
If you click Approve or Reject without linking your Discord account first, Viraly replies with an ephemeral message (visible only to you) explaining how to link and try again.
Slash Commands
Type /viraly in any channel where the bot is present to see four subcommands. All responses are ephemeral — only the person who ran the command sees them.
| Command | Does |
|---|---|
/viraly pending | Lists posts currently awaiting your approval (requires a linked Discord account) |
/viraly failures | Lists posts that failed to process or publish in the last 7 days |
/viraly scheduled | Lists posts scheduled for the next 24 hours |
/viraly help | Shows the command list — no linking required |
Disconnecting
- Go to Settings → Discord in Viraly.
- Click Disconnect and confirm.
- The Viraly bot leaves your Discord server. All routes are preserved in case you reconnect later but no further notifications are sent.
You can also remove the bot directly from Discord by right-clicking the bot user in the server’s Members list → Kick Viraly. If you do this without disconnecting in Viraly, the integration will mark itself inactive the next time a notification is attempted.
Troubleshooting
The test button says "Discord send failed"
The bot doesn’t have permission to post in the selected channel. Open the channel’s Edit Channel → Permissions panel, add the Viraly bot, and grant View Channel and Send Messages.
Clicking Approve shows "Link your Discord account"
Your Discord account isn’t linked to your Viraly user yet. Open Viraly → Settings → Discord, scroll to the Your Discord account card, and click Link Discord account.
Slash commands don’t appear when I type /viraly
Discord can take up to an hour to propagate newly-registered slash commands to every server. If an hour has passed, kick the bot and re-add it — that forces Discord to refresh its command cache for your server.
The connection shows as disconnected without me removing it
Viraly automatically deactivates the connection if it gets an authentication error from Discord (usually because the bot was kicked or banned). Reconnect by clicking Add to Discord again on the Discord settings page.
Still stuck?
Reach out to support@viraly.io with your workspace name, the Discord server name, and a screenshot of the issue. We respond within one business day.