define.wtf
Integrations

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 TERM command — 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 OKR

Response 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_settings permission
  • Your Slack workspace allows app installations
  • You have workspace-level admin permissions in Slack

Step 1: Navigate to Slack Settings in define.wtf

  1. Log in to define.wtf as an admin
  2. Go to SettingsSlack
  3. You should see a "Connect Workspace" button

If you already have a connected workspace, skip to Managing the Connection.

Step 2: Start the Connection

  1. Click Connect Workspace
  2. You'll see a message:
    Redirecting to Slack for authorization...

Step 3: Authorize in Slack

  1. A Slack authorization page will open (showing the define.wtf app requesting permissions)
  2. Review the requested permissions (minimal scopes: read and write commands)
  3. Click Allow to authorize define.wtf
  4. You'll be redirected back to define.wtf with a success message

Step 4: Verify Connection

After authorization:

  1. You should see your Slack workspace name and ID displayed
  2. A "Connected" status indicator will appear
  3. The /define command is now active in your Slack workspace

Step 5: Test the Connection

In Slack:

  1. Open any channel or direct message
  2. Type /define and the name of an acronym in your dictionary (e.g., /define OKR)
  3. Press Enter
  4. 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 TERM

Replace 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/TERM in 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 Okr all work)
  • Supports fuzzy matching for typos (e.g., /define OKP might suggest "OKR" as a did-you-mean)

Managing the Connection

View Connection Status

In SettingsSlack, 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 /define was last executed in Slack
  • Status — Connected or Disconnected

Disconnect Slack

To remove the Slack integration:

  1. Go to SettingsSlack
  2. Click Disconnect Workspace
  3. Confirm the action with your password or SSO
  4. The /define command will immediately stop working in Slack

After disconnection:

  • Team members attempting /define will see: "The /define command is not available in this workspace"
  • Your Slack workspace data is unaffected
  • You can reconnect later (the /define command will reappear)

Switch to a Different Slack Workspace

If you need to connect a different Slack workspace:

  1. Disconnect the current workspace
  2. Wait 30 seconds for Slack to sync the removal
  3. 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 commands
  • commands:read — Read command information

To review these permissions:

  1. In Slack, go to SettingsManage apps
  2. Find define.wtf in your app list
  3. Click it to view the full permission list
  4. 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:

  1. The request includes the Slack workspace ID (team_id)
  2. define.wtf looks up which tenant is connected to this workspace ID
  3. The search is automatically scoped to that tenant only
  4. 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/callback

This 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:

  1. Slack includes an X-Slack-Request-Timestamp header (when the request was sent)
  2. Slack includes an X-Slack-Signature header (an HMAC-SHA256 hash)
  3. define.wtf verifies the signature matches the Slack signing secret
  4. 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 workspace
  • slackWorkspaceId — Slack team ID
  • Both are stored securely in the define.wtf database

Security and Privacy

No User Data Collection

  • The /define command 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
  • /define searches 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 /define commands)
  • No Slack messages or conversation history are accessed

When a user clicks "View in define.wtf" in a /define response, they're directed to:

https://slug.define.wtf/acronym/TERM

Where:

  • slug is your workspace's URL slug (e.g., acme, engineering)
  • TERM is 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/OKR

Best Practices

  • Announce /define to 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 /define becomes
  • 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

See: Webhooks & Automations

Support

If you encounter issues:

  1. Check the Troubleshooting section above
  2. Verify the connection status in SettingsSlack
  3. Review your audit logs for errors
  4. Contact support@define.wtf with:
    • Your workspace name
    • Steps to reproduce the issue
    • Any error messages you see