Connect Viraly to your Slack workspace to receive real-time notifications, approve posts with one click, and run /viraly commands directly from any channel. This guide walks you through setup, channel routing, and day-to-day use.
Overview
The Viraly Slack integration brings your team’s content workflow into Slack. 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 in the flow of their Slack conversation, and your whole team sees the outcome in real time.
With the integration, you can:
- Receive post approval requests in Slack 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 Slack channel
Prerequisites
Before connecting Slack, make sure you have:
- A Viraly Business, Agency, or Enterprise plan
- A Slack workspace where you have permission to install apps
- For Approve/Reject buttons: team members who will respond in Slack must use the same email address on both Viraly and Slack
Connecting Slack
- In Viraly, go to Settings → Slack, or open the Integrations page and click the Slack card
- Click the Add to Slack button
- On Slack’s consent screen, pick the workspace you want to connect and click Allow
- You’ll be redirected back to Viraly and land on the Slack settings page showing the connected workspace
When you connect for the first time, Viraly creates default routes to your Slack #general channel (or the first available public channel) for the urgent events: approval requests, rejections, publishing failures, processing failures, and channel-reconnection alerts. Informational events (published, approved, comment tags) are off by default — you turn them on when you want them.
Supported Events
Viraly can send the following events to Slack. Each can be routed to a different channel.
Action required (enabled by default)
- Post Approval Requested — a post is waiting on an approver. Message 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. 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 → Slack, each event has its own row with a channel dropdown and an “Enabled” toggle. Route approvals to #content, alerts to #ops, success updates to #social-wins — whatever fits your team’s workflow.
Click the paper airplane icon next to any row to send a test message to that channel. The test message confirms the bot has permission to post there.
Important: The Viraly bot can only post in channels it has been added to. For public channels you haven’t added the bot to yet, type /invite @Viraly inside the channel. For private channels, the bot must be invited explicitly and will only appear in the dropdown after it’s a member.
Approving Posts from Slack
When a post needs approval, Viraly posts a message to the Slack channel you’ve routed approvals to. The message shows the post title, channel, scheduled time, and requester, plus inline Approve and Reject buttons.
- Clicking Approve records the approval immediately and replaces the message with a confirmation (“✅ Post approved by {name}”)
- Clicking Reject opens a popup for you to type a rejection reason. When you submit, the message 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 Slack 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, Slack shows a short private error explaining why, and nothing is recorded.
Slash Commands
From any channel where the Viraly bot is present, you can run:
/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
Slash command responses are ephemeral — only the person who ran the command sees the result, so the channel stays uncluttered.
Disconnecting
On Settings → Slack, click Disconnect. This revokes the bot token at Slack, deactivates the connection in Viraly, and stops all outbound Slack notifications. Your channel routing configuration is kept — if you reconnect later, you can reuse it.
Alternatively, uninstalling the Viraly app from Slack’s Apps directory triggers the same disconnect automatically on Viraly’s side.
Troubleshooting
- Test message failed. The bot isn’t a member of that channel. Type
/invite @Viralyinside the channel in Slack, then retry. - Approve / Reject says my email isn’t registered. Your Slack 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 Slack.
- No Slack messages are arriving. Open Settings → Slack and check the Event Routing table: the event must have a channel selected and the Enabled toggle on. Use the paper-airplane icon to send a test and confirm the channel is reachable.
- Messages stopped arriving after working previously. The bot token may have been revoked from Slack’s side (uninstall, token rotation, or org policy). Reconnect from Settings → Slack.
- Private channels don’t appear in the dropdown. Slack only exposes private channels the bot is a member of. Invite
@Viralyinside the private channel, then reload the settings page.