Slack Integration Guide
Connect define.wtf to Slack and enable the /define command for your workspace
Slack Integration
Integrate define.wtf with your Slack workspace to bring instant acronym lookup directly into your team's conversations. Once connected, team members can use the /define TERM slash command in any Slack channel or direct message.
Overview
The Slack integration provides:
/define TERMcommand — Instant lookup of any acronym in your define.wtf dictionary- Block Kit responses — Rich, formatted responses with definition text and author info
- Seamless UX — No separate app account needed for Slack users; read-only access
- Automatic tenant resolution — Commands are automatically scoped to your team's dictionary
- Link to full definition — Every response includes a link to the full definition in define.wtf
What is /define?
The /define slash command is a read-only lookup tool. Team members can search your define.wtf dictionary without leaving Slack.
Example Usage
Workspace member in Slack:
/define OKRResponse from define.wtf bot:
OKR: Objectives and Key Results
A goal-setting framework where objectives are qualitative goals and key results are quantifiable measures of success.
Added by: Sarah Chen | Votes: 12
[View in define.wtf]What /define Can't Do
- Create or edit definitions (read-only)
- Vote on definitions (voting happens in define.wtf only)
- Access private or restricted definitions
- Run bulk searches
Setup Instructions
Prerequisites
- You are an admin or owner with
tenant:manage_settingspermission - Your Slack workspace allows app installations
- You have workspace-level admin permissions in Slack
Step 1: Navigate to Slack Settings in define.wtf
- Log in to define.wtf as an admin
- Go to Settings → Slack
- You should see a "Connect Workspace" button
If you already have a connected workspace, skip to Managing the Connection.
Step 2: Start the Connection
- Click Connect Workspace
- You'll see a message:
Redirecting to Slack for authorization...
Step 3: Authorize in Slack
- A Slack authorization page will open (showing the define.wtf app requesting permissions)
- Review the requested permissions (minimal scopes: read and write commands)
- Click Allow to authorize define.wtf
- You'll be redirected back to define.wtf with a success message
Step 4: Verify Connection
After authorization:
- You should see your Slack workspace name and ID displayed
- A "Connected" status indicator will appear
- The
/definecommand is now active in your Slack workspace
Step 5: Test the Connection
In Slack:
- Open any channel or direct message
- Type
/defineand the name of an acronym in your dictionary (e.g.,/define OKR) - Press Enter
- You should see a formatted response from the define.wtf bot
If /define doesn't appear in the slash command list:
- Wait 30 seconds for Slack to sync the change
- Type
/to refresh the command list - If still missing, try disconnecting and reconnecting
Using /define in Slack
Basic Usage
/define TERMReplace TERM with the acronym you want to look up (case-insensitive).
Response Format
The bot responds with a Block Kit message:
📖 TERM: Full Acronym Name
Definition text here explaining what the acronym means.
👤 Added by: Author Name | ⬆️ 12 votes
[View in define.wtf] [↓ Vote Down] [↑ Vote Up]Response elements:
- Definition title — The acronym and full name
- Definition text — The description from the primary (most-voted) definition
- Author — Who added this definition
- Vote count — Number of upvotes for this definition
- View link — Opens
https://slug.define.wtf/acronym/TERMin your browser - Voting reactions — React with emoji to interact (though actual voting happens in define.wtf)
Not Found Response
If the term isn't in your dictionary:
No definition found for "NOTAWORD"
Want to add it? Head over to define.wtf and create a new entry!
[Go to define.wtf]Search Behavior
The /define command:
- Searches only your workspace's acronym dictionary (scoped by tenant)
- Returns the primary definition (highest-voted definition for that term)
- Is case-insensitive (e.g.,
/define okr,/define OKR,/define Okrall work) - Supports fuzzy matching for typos (e.g.,
/define OKPmight suggest "OKR" as a did-you-mean)
Managing the Connection
View Connection Status
In Settings → Slack, you can see:
- Connected Workspace — Your Slack workspace name
- Workspace ID — Unique identifier for your Slack workspace (e.g.,
T12345ABC) - Connected Since — When the integration was first authorized
- Last Used — When
/definewas last executed in Slack - Status — Connected or Disconnected
Disconnect Slack
To remove the Slack integration:
- Go to Settings → Slack
- Click Disconnect Workspace
- Confirm the action with your password or SSO
- The
/definecommand will immediately stop working in Slack
After disconnection:
- Team members attempting
/definewill see: "The/definecommand is not available in this workspace" - Your Slack workspace data is unaffected
- You can reconnect later (the
/definecommand will reappear)
Switch to a Different Slack Workspace
If you need to connect a different Slack workspace:
- Disconnect the current workspace
- Wait 30 seconds for Slack to sync the removal
- Connect the new workspace following the setup steps
Note: define.wtf supports one Slack workspace per tenant. To connect multiple Slack workspaces to different define.wtf teams, you need separate define.wtf workspaces.
Update Slack Bot Permissions
The define.wtf Slack app only requests minimal permissions:
commands:write— Create and update slash commandscommands:read— Read command information
To review these permissions:
- In Slack, go to Settings → Manage apps
- Find define.wtf in your app list
- Click it to view the full permission list
- define.wtf cannot request additional permissions without another OAuth flow
If you want to grant additional permissions to define.wtf for future features, contact support@define.wtf.
Technical Details
Tenant Resolution
When Slack sends a /define command:
- The request includes the Slack workspace ID (
team_id) - define.wtf looks up which tenant is connected to this workspace ID
- The search is automatically scoped to that tenant only
- Results are returned in the correct workspace context
This allows one define.wtf app to serve many Slack workspaces, each with separate dictionaries.
OAuth Callback URL
The fixed OAuth callback URL for all define.wtf Slack integrations:
https://app.define.wtf/api/slack/oauth/callbackThis URL is the same for all customers. Tenant identification happens via a signed state parameter in the OAuth flow, not through the hostname.
Request Verification
All incoming Slack requests (commands, events, callbacks) are verified using HMAC-SHA256 signature verification:
- Slack includes an
X-Slack-Request-Timestampheader (when the request was sent) - Slack includes an
X-Slack-Signatureheader (an HMAC-SHA256 hash) - define.wtf verifies the signature matches the Slack signing secret
- Only verified requests are processed; unverified requests are rejected
This ensures that only legitimate Slack requests (not forged requests) can trigger /define lookups.
App Configuration
The define.wtf Slack app is registered once and installed by many Slack workspaces. Per workspace:
slackBotToken— OAuth token for this workspaceslackWorkspaceId— Slack team ID- Both are stored securely in the define.wtf database
Security and Privacy
No User Data Collection
- The
/definecommand is read-only (no data written to Slack) - No Slack messages or channels are accessed
- No Slack user data is read or exported by define.wtf
No Separate App Accounts
- Slack users don't need a separate define.wtf account to use
/define - Slack users are not authenticated to define.wtf
/definesearches your public team dictionary (no user-level access control for read)
Audit Logging
All /define command usage is logged in your define.wtf audit trail:
- When the command was executed
- Which term was searched
- Whether a result was found
- This data supports compliance and analytics
Data Retention
- Slack does not grant define.wtf access to your Slack workspace data
- define.wtf only sends data to Slack (responses to
/definecommands) - No Slack messages or conversation history are accessed
Link Format
When a user clicks "View in define.wtf" in a /define response, they're directed to:
https://slug.define.wtf/acronym/TERMWhere:
slugis your workspace's URL slug (e.g.,acme,engineering)TERMis the acronym being looked up (e.g.,OKR)- The URL is case-insensitive but the acronym is auto-uppercased for display
Example:
https://acme.define.wtf/acronym/OKRBest Practices
- Announce
/defineto your team — Many team members won't discover the command on their own; share it in #general or onboarding materials - Keep your dictionary updated — The more complete your acronym list, the more useful
/definebecomes - Link to define.wtf — In important conversations, share the full link to encourage team members to explore related acronyms
- Gather feedback — Ask your team which acronyms they search for most; use this to prioritize what to define
Troubleshooting
"/define command not appearing in Slack"
- Wait 1-2 minutes after connecting for Slack to register the command
- Type
/in a channel to refresh the command list - If still missing, try disconnecting and reconnecting
"Define.wtf bot not responding"
- Check that the workspace is marked as "Connected" in define.wtf settings
- Verify the term exists in your define.wtf dictionary
- Try searching in define.wtf directly to confirm the term is there
- Check your network connection
"Getting 'No definition found' for terms I know exist"
- Verify the term is spelled correctly (search is case-insensitive but must match the term)
- Try searching in define.wtf directly to confirm the term is indexed
- Check that you're in the correct Slack workspace (if you have multiple)
"Need to connect a different Slack workspace"
- Go to Settings → Slack and click "Disconnect Workspace"
- Wait 30 seconds for Slack to sync the change
- Click "Connect Workspace" and authorize the new workspace
"Getting 'workspace not found' after disconnecting and reconnecting"
- Clear your browser cache
- Try logging out and back into Slack
- Refresh the Slack app (reload the web version or restart the desktop app)
"Slash command still appears after disconnecting"
- Slack may take 1-2 minutes to remove the command
- Try reloading Slack
- If the command persists, try /uninstall_app (for your workspace only)
Advanced: Webhook Integration
The Slack integration is read-only and one-way (define.wtf → Slack). For more advanced automation, combine /define with webhooks:
- Webhook listener — Receive real-time notifications when new acronyms are added
- Custom Slack bot — Build a bot that posts summaries of new definitions to a #announcements channel
- Activity dashboard — Send webhook data to a dashboard tool to track which terms are most active
Support
If you encounter issues:
- Check the Troubleshooting section above
- Verify the connection status in Settings → Slack
- Review your audit logs for errors
- Contact support@define.wtf with:
- Your workspace name
- Steps to reproduce the issue
- Any error messages you see