ViksaAIDocs
Start now

Slack setup

Connect a Slack workspace to a ViksaAI project. Events flow through shared volt-engine-service webhooks — no per-project runtime pod.

Architecture#

Slack uses the same Channel Hub model as WhatsApp, Teams, and Telegram. Slack sends HTTPS events to a global ingress URL; volt-engine-service routes each event to your project by Slack App ID, runs the agent brain, and streams replies back via the Slack Web API.

Prerequisites#

  • Slack workspace admin or permission to create apps
  • ViksaAI project with agents deployed via builder-service
  • Platform permission: volt → update to connect channels in the dashboard
  • Your Slack app must reach the public webhook base URL (default: https://api.viksaai.com/v1/webhooks/slack)

Webhook URLs#

PurposeURL
Event Subscriptionshttps://api.viksaai.com/v1/webhooks/slack/events
Interactivityhttps://api.viksaai.com/v1/webhooks/slack/interactions

These URLs are embedded in the Volt Slack manifest template. When you connect in the dashboard, the same URLs appear on the Slack config page and setup guide.

Installation steps#

  1. 1

    Open Channel Hub

    In the dashboard, go to Volt → Channels and select Slack.

  2. 2

    Create a Slack app from the Volt manifest

    Download the manifest from the in-app setup guide or the Channel Hub manifest endpoint. It includes HTTPS webhook URLs, required bot scopes, and event subscriptions pre-configured.

    In Slack: api.slack.com/apps → Create New App → From manifest. Install the app to your workspace.

  3. 3

    Configure Event Subscriptions

    Under Features → Event Subscriptions, enable subscriptions and set Request URL to:

    txt
    https://api.viksaai.com/v1/webhooks/slack/events

    Slack sends a url_verification challenge — Volt responds automatically. Subscribe to bot events: app_mention, message.im, app_home_opened, assistant_thread_started.

  4. 4

    Enable interactivity

    Under Features → Interactivity & Shortcuts, set Request URL to:

    txt
    https://api.viksaai.com/v1/webhooks/slack/interactions
  5. 5

    Collect credentials

    • Bot token (xoxb-…) — OAuth & Permissions → Bot User OAuth Token
    • Signing secret — Basic Information → App Credentials (32 hex characters)
  6. 6

    Validate and connect

    Paste credentials in the Slack config page. Click Validate (checks auth.test and bot scopes), then Connect. Credentials are encrypted; your App ID is registered for webhook routing.

  7. 7

    Grant Slack access

    Open Channel access from the Slack config page. Add email grants or enable project members. Users must message from a Slack account whose profile email matches a grant — see Access & security.

  8. 8

    Test

    DM the bot or @mention it in a channel. You should see streaming assistant status, thread replies, and file attachments for structured agent output.

How users interact in Slack#

  • Direct messages and @mentions in channels
  • Slack AI assistant status line and custom thread titles
  • Streaming reply updates in the thread
  • File attachments for raw agent output (JSON, etc.)

Message flow#

  1. Slack POSTs an event to /v1/webhooks/slack/events (signed with your signing secret).
  2. volt-engine-service verifies the signature, resolves project by App ID, and enqueues the message.
  3. The shared turn pipeline runs Think→Act→Observe using the project agent catalog.
  4. Streaming events are rendered back to Slack via chat.postMessage / chat.update and assistant APIs.
  5. Tasks dispatch to pulse-service; results and files appear in the Slack thread.

Operations#

ActionWhere
View connection statusVolt → Channels → Slack
Update credentialsSlack config → Validate → Connect
Manage user accessSlack config → Channel access
UninstallSlack config → Uninstall — removes encrypted credentials and routing

Required bot scopes#

The manifest generator includes these scopes. If you configure manually, ensure all are present under OAuth & Permissions:

slack-scopes.txttxt
# Bot token scopes (validated on connect)
app_mentions:read
chat:write
commands
im:history
im:read
im:write
users:read
users:read.email
assistant:write
files:write

Troubleshooting#