Features
Reaction Capture
React to messages with
:gtm-feedback: to save them as feedbackAI Assistant
Chat with the feedback bot to query and manage feedback
Slash Commands
Quick commands for creating and searching feedback
Weekly Digests
Automated summaries of feedback trends
Prerequisites
Deployment Steps
Create Slack App
- Go to api.slack.com/apps
- Click Create New App → From a manifest
- Select your workspace
- Copy the contents of
manifest.jsonfrom the repository - Paste into the manifest editor and create the app
View manifest.json location
View manifest.json location
The manifest file is located at
apps/slack-app/manifest.json in the repository.Gather Slack Credentials
After creating your app, collect these credentials:
Signing Secret
Signing Secret
- Navigate to Basic Information → App Credentials
- Copy the Signing Secret
- Save as
SLACK_SIGNING_SECRET
Bot Token
Bot Token
- Navigate to OAuth & Permissions
- Click Install to Workspace if not already installed
- Copy the Bot User OAuth Token (starts with
xoxb-) - Save as
SLACK_BOT_TOKEN
App Verification Secret
App Verification Secret
Generate a random secure string to share between Slack app and web app:Save this as
SLACK_APP_VERIFICATION in both apps.Deploy to Vercel
Click the deploy button below and enter your Slack credentials:Or deploy manually:
Deploy Slack App
One-click deploy to Vercel
- Fork the repository
- Create new Vercel project
- Set root directory to
apps/slack-app - Add environment variables (see Environment Variables)
- Deploy
Update Slack App URLs
After deployment, configure your Slack app to use your Vercel URL:
- Go to api.slack.com/apps and select your app
- Navigate to Event Subscriptions:
- Enable Events
- Set Request URL to:
https://your-slack-app.vercel.app/api/slack/events - Wait for verification (should show “Verified”)
- Navigate to Interactivity & Shortcuts:
- Enable Interactivity
- Set Request URL to:
https://your-slack-app.vercel.app/api/slack/events
- Save changes
Add Custom Emoji
Add the
:gtm-feedback: custom emoji to your Slack workspace:- Go to your workspace settings → Customize → Emoji
- Click Add Custom Emoji
- Upload an image (or use an existing emoji)
- Name it exactly:
gtm-feedback - Save
Connect to Web App
Update your web app’s environment variables to enable Slack integration:
- Go to your web app’s Vercel project settings
- Add the following environment variables:
SLACK_BOT_TOKEN- Your bot token (from Step 2)SLACK_APP_VERIFICATION- Your shared secret (from Step 2)SLACK_DIGEST_CHANNEL_ID- Channel ID for weekly digests (optional)SLACK_GTM_FEEDBACK_CHANNEL_ID- Channel ID for feedback notifications (optional)
- Redeploy the web app
How to find Channel IDs
How to find Channel IDs
- Open Slack in a browser
- Navigate to the desired channel
- The URL will contain the channel ID:
https://app.slack.com/client/T.../C... - Copy the ID starting with
C
Testing the Integration
Add App to Channel
- Go to any Slack channel
- Type
/invite @GTM Feedback(or your app name) - The bot should join the channel
Test Reaction Capture
- Find a message in the channel
- React with
:gtm-feedback: - A modal should appear to capture feedback details
- Submit and verify it appears in your web app
Local Development
To develop the Slack app locally:Set Up Environment
Link to Slack App
- Select “yes” to update manifest source to remote
- Enter your App ID
- Select “Local” environment
Project Structure
The Slack app is organized as follows:Troubleshooting
Request URL verification fails
Request URL verification fails
- Ensure your Vercel deployment is successful and accessible
- Check that
SLACK_SIGNING_SECRETis correctly set in Vercel - Verify the URL ends with
/api/slack/events - Check Vercel function logs for errors
Emoji reaction doesn't trigger modal
Emoji reaction doesn't trigger modal
- Verify the emoji is named exactly
gtm-feedback - Check that Event Subscriptions are enabled and verified
- Ensure the bot is added to the channel
- Check Vercel logs for event processing errors
Bot doesn't respond to messages
Bot doesn't respond to messages
- Verify
SLACK_BOT_TOKENis correctly set - Check bot token scopes in Slack app settings
- Ensure Interactivity is enabled and URL is verified
- Check for errors in Vercel function logs
Feedback not syncing to web app
Feedback not syncing to web app
- Verify
SLACK_APP_VERIFICATIONmatches in both apps - Check that web app
SLACK_BOT_TOKENis set - Verify database connection in web app
- Check web app logs for API errors
Next Steps
Environment Variables
Complete Slack configuration reference
Slack Integration Guide
Learn how to use Slack features