AnswerLoopsAnswerLoops Docs
Integrations

Slack

Connect your Slack workspace to AnswerLoops — via 1-click OAuth or polling mode with no webhook required.

AnswerLoops supports two Slack connection paths. On managed cloud, every workspace connects via 1-click OAuth and gets instant delivery automatically — there's no polling fallback to choose, since the platform already has a public webhook URL. Polling mode is a self-hosted-only option for operators who can't expose one.

Option A: 1-click OAuth

The platform operator sets three env vars once. Every user then sees Add to Slack and authorizes in one click — no credentials to copy.

Prerequisites: SLACK_CLIENT_ID, SLACK_CLIENT_SECRET, SLACK_SIGNING_SECRET set on the server. See Environment Variables.

How it works:

  1. User clicks Add to Slack in the onboarding wizard (or Settings → Integrations)
  2. Slack OAuth page → user selects workspace → authorizes
  3. AnswerLoops exchanges the code for a bot token, stores it encrypted
  4. Channel picker loads automatically from your workspace — in the onboarding wizard this happens inline before the next step; in Settings it appears on the same page
  5. Picking a public channel joins the bot to it automatically. Private channels can't be auto-joined by any bot (a Slack platform limit) — add the app manually via that channel's Integrations → Add apps

Add {AUTH_URL}/api/slack/callback to your Slack app's OAuth & Permissions → Redirect URLs before users connect.

Option B: Polling mode (self-hosted only, no admin required)

Not available on managed cloud — every cloud org already gets real-time delivery via Option A's Events API webhook, so a self-hosted-only operator toggle (DEPLOYMENT_MODE) skips starting the polling loop entirely for cloud deployments. This path exists for self-hosters who can't expose a public webhook URL at all.

No OAuth setup. No inbound webhook. No firewall rules. The bot reaches out to Slack's API — never the reverse.

How it works:

  1. User goes to Settings → Integrations → Slack → Set up manually
  2. Pastes a bot token (xoxb-…), Team ID, and channel IDs
  3. AnswerLoops polls conversations.history on a configurable interval (default: 60s)
  4. New messages feed into the same AI pipeline as the webhook path

Why enterprises choose polling:

  • No inbound HTTP from Slack to your servers
  • No public webhook URL required
  • No firewall rule changes
  • Security review scope: one outbound API call per poll interval
  • Read-only token sufficient — no admin scope needed
SLACK_POLL_INTERVAL_SECONDS=60  # default. Minimum recommended: 30.

Feature comparison

1-click OAuthPolling mode
Setup time~1 min~2 min
Admin approval neededNoNo
Inbound webhook requiredOptionalNo
Message latencyInstant (Events API) or 60s (polling)Configurable (default 60s)
Channel pickerAutoManual (paste IDs)
Signing secret neededFor webhook verification onlyNo
Enterprise firewall-friendlyIf webhook is blocked, use polling✅ Yes

Shared capabilities

Both paths share the same pipeline:

  • AI deflection with configurable confidence threshold
  • 👍/👎 reaction feedback
  • CSAT rating prompts (1️⃣–5️⃣ reactions)
  • Escalation ping when AI confidence is low
  • Ticket creation + deduplication

Setup guide

See Slack App Setup for step-by-step instructions for both paths.

On this page