Slack Bridge Setup
Receive website chat messages directly in Slack using threads.
┌─────────────────────────────────────────────────────────────────┐
│ HOW IT WORKS │
│ │
│ Website Visitor Your Slack Workspace │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ Widget │ │ #support │ │
│ │ "Hi, I need │ ──────► │ ├── 🧵 New visitor (Paris) │ │
│ │ help with..." │ │ │ └── "Hi, I need help.." │ │
│ └─────────────────┘ │ │ │ │
│ │ │ You reply in thread: │ │
│ ┌─────────────────┐ │ │ └── "Sure, how can..." │ │
│ │ "Sure! How can │ ◄────── │ │ │ │
│ │ I help?" │ │ └── 🧵 Another visitor │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
│ Each visitor = Separate thread (organized in your channel) │
│ │
└─────────────────────────────────────────────────────────────────┘
Prerequisites
- Slack workspace where you have admin permissions
- Ability to install apps to your workspace
Step 1: Create a Slack App
┌─────────────────────────────────────────────────────────────────┐
│ Step 1: Create App │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Go to api.slack.com/apps │
│ │
│ 2. Click "Create New App" │
│ └── Choose "From scratch" │
│ └── App Name: "PocketPing" (or your brand) │
│ └── Select your workspace │
│ └── Click "Create App" │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Your app is created! │ │
│ │ │ │
│ │ App ID: A0123456789 │ │
│ │ (You'll configure permissions next) │ │
│ └─────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Step 2: Configure Bot Permissions
Add the necessary OAuth scopes.
┌─────────────────────────────────────────────────────────────────┐
│ Step 2: Add Bot Scopes │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Go to "OAuth & Permissions" in the sidebar │
│ │
│ 2. Scroll to "Bot Token Scopes" │
│ └── Click "Add an OAuth Scope" │
│ └── Add these scopes: │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Bot Token Scopes │ │
│ ├─────────────────────────────────────────────┤ │
│ │ ✅ channels:history (read messages) │ │
│ │ ✅ channels:read (list channels) │ │
│ │ ✅ channels:join (auto-join channels) │ │
│ │ ✅ groups:history (private channels) │ │
│ │ ✅ groups:read (list private) │ │
│ │ ✅ chat:write (post messages) │ │
│ │ ✅ users:read (user info) │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ 3. Click "Install to Workspace" at the top │
│ └── Review permissions → Allow │
│ │
│ 4. Copy the "Bot User OAuth Token" │
│ └── Starts with: xoxb- │
│ └── Save this! You'll need it later. │
│ │
└─────────────────────────────────────────────────────────────────┘
Step 3: Enable Events
Subscribe to message events to receive operator replies.
┌─────────────────────────────────────────────────────────────────┐
│ Step 3: Enable Event Subscriptions │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Go to "Event Subscriptions" in the sidebar │
│ │
│ 2. Toggle "Enable Events" ON │
│ │
│ 3. Set the Request URL: │
│ └── https://app.pocketping.io/api/webhooks/slack │
│ └── Wait for "Verified ✓" │
│ │
│ 4. Click "Subscribe to bot events" │
│ └── Add these events: │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Bot Events │ │
│ ├─────────────────────────────────────────────┤ │
│ │ ✅ message.channels (public channels) │ │
│ │ ✅ message.groups (private channels) │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ 5. Click "Save Changes" │
│ │
└─────────────────────────────────────────────────────────────────┘
Self-Hosted Users
If you're self-hosting, use your own URL instead:
https://your-domain.com/api/webhooks/slack
Step 4: Get Channel ID
Find the ID of your support channel.
┌─────────────────────────────────────────────────────────────────┐
│ Step 4: Get Channel ID │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Open Slack │
│ │
│ 2. Go to your support channel (e.g., #support) │
│ │
│ 3. Click the channel name at the top │
│ │
│ 4. Scroll down in the popup to find "Channel ID" │
│ └── Copy it (starts with C) │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ #support │ │
│ │ ─────────────────────────────────────────────── │ │
│ │ │ │
│ │ Channel ID: C0123456789 │ │
│ │ ↑ │ │
│ │ Copy this │ │
│ └─────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Step 5: Add Bot to Channel
For public channels, the bot will auto-join when you select the channel in PocketPing.
For private channels, invite the bot manually:
┌─────────────────────────────────────────────────────────────────┐
│ Step 5: Invite Bot to Private Channel (if needed) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ For PRIVATE channels only: │
│ │
│ 1. Open your support channel │
│ │
│ 2. Type: /invite @PocketPing │
│ (Replace "PocketPing" with your app name) │
│ │
│ 3. Press Enter │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 🔒 support │ │
│ │ │ │
│ │ Slackbot: │ │
│ │ @PocketPing was added to #support │ │
│ └─────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Auto-join for public channels
Public channels will be automatically joined when you select them in the PocketPing dashboard - no manual invite needed!
Step 6: Configure PocketPing
SaaS Users
- Go to your project's Bridges settings
- Click "Add to Slack" to connect via OAuth
- Select your support channel from the dropdown
- Click "Save"
Self-Hosted Users
Add to your .env file:
.env
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_CHANNEL_ID=C0123456789
Then restart your bridge server:
docker compose restart bridge
Test Your Setup
- Open your website with the widget installed
- Send a test message in the chat widget
- Check Slack - a new message with thread should appear:
┌─────────────────────────────────────────────────────────────────┐
│ #support │
├─────────────────────────────────────────────────────────────────┤
│ │
│ PocketPing 10:30 AM │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 🆕 New conversation │ │
│ │ │ │
│ │ 📍 Location: Paris, France │ │
│ │ 🌐 Page: yoursite.com/pricing │ │
│ │ ───────────────────────────────────────── │ │
│ │ "Hello, this is a test!" │ │
│ │ │ │
│ │ 💬 2 replies │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
- Click "2 replies" to open the thread and respond!
Bot Commands
Mention the bot in a thread with these commands:
| Command | What it does |
|---|---|
@PocketPing info | Shows visitor details |
@PocketPing close | Closes the conversation |
@PocketPing ai on | Enables AI fallback |
@PocketPing ai off | Disables AI fallback |
Example Usage
┌─────────────────────────────────────────────────────────────────┐
│ Thread: New conversation │
├─────────────────────────────────────────────────────────────────┤
│ │
│ You: @PocketPing info │
│ │
│ PocketPing: │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Session Information │ │
│ │ ───────────────────────────────────────── │ │
│ │ Session: sess_abc123 │ │
│ │ Location: Paris, France │ │
│ │ Browser: Chrome 120 / macOS │ │
│ │ Page: https://yoursite.com/pricing │ │
│ │ Started: 5 minutes ago │ │
│ │ │ │
│ │ User: [email protected] (Pro plan) │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Troubleshooting
Bot not responding?
| Problem | Solution |
|---|---|
| Bot not in channel | Use /invite @PocketPing in the channel |
| Wrong Bot Token | Check it starts with xoxb- |
| Events not configured | Verify Request URL is set and verified |
| Missing event subscriptions | Add message.channels and message.groups |
Not receiving messages?
| Problem | Solution |
|---|---|
| Events not subscribed | Add message.channels and message.groups events |
| Missing scopes | Add channels:history scope |
| Wrong Channel ID | Re-copy from channel details (starts with C) |
| Request URL not verified | Check the URL responds correctly |
Messages not syncing?
| Problem | Solution |
|---|---|
| Bot can't write | Add chat:write scope |
| Server not running | Check logs: docker logs pocketping-bridge |
| Channel is private | Ensure groups:history scope is enabled |
Debug checklist
┌─────────────────────────────────────────────────────────────────┐
│ □ Bot Token starts with xoxb- │
│ □ Request URL is verified in Event Subscriptions │
│ □ Bot events are subscribed (message.channels, message.groups) │
│ □ Bot scopes are correct (channels:history, chat:write, etc.) │
│ □ Bot is invited to the channel (/invite @PocketPing) │
│ □ Channel ID starts with C │
│ □ Bridge server is running and healthy │
└─────────────────────────────────────────────────────────────────┘
Token Summary
| Token | Starts with | Purpose | Where to find |
|---|---|---|---|
| Bot Token | xoxb- | Post messages, read history | OAuth & Permissions |
Advanced: Notification Settings
Get notified on your phone for new visitor messages:
- Open Slack mobile app
- Go to the support channel
- Tap channel name → Notifications
- Set to "All new messages"
Or use Slack's keyword notifications:
- Go to Preferences → Notifications
- Add "New conversation" as a highlight word
Next Steps
- Telegram Bridge - Add Telegram as another channel
- Discord Bridge - Add Discord as another channel
- AI Fallback - Auto-respond when you're away
- Backend SDK - Handle events programmatically