Skip to main content

Overview

Hitler integrates with Slack to provide:
  • Sign in with Slack - Employees authenticate using their Slack identity
  • Bot interactions - Create tasks, log moods, and more via DM or channel mentions
  • Notifications - Receive task reminders and check-in prompts

Prerequisites

Slack workspace admin permissions
Hitler organization created

Installation

Step 1: Navigate to Integrations

  1. Log in to app.hitler.app
  2. Go to Settings → Integrations
  3. Find the Slack card
Integrations Page

Step 2: Click “Add to Slack”

This initiates the OAuth flow with Slack.
You must be a Slack workspace admin to install apps. If you’re not an admin, share this page with your Slack administrator.

Step 3: Authorize Permissions

Hitler requests the following permissions:
PermissionPurpose
app_mentions:readView messages that directly mention the bot
channels:historyView messages in public channels the bot is in
chat:writeSend messages as the bot
commandsAdd slash commands (e.g. /hitler)
groups:historyView messages in private channels the bot is in
im:historyView messages in DMs with the bot
im:readView basic info about DMs the bot is in
im:writeStart direct messages with people
mpim:historyView messages in group DMs the bot is in
team:readView workspace name, email domain, and icon
users:readView people in the workspace
Hitler uses Socket Mode (WebSocket connection), so you don’t need ngrok or a public URL. All permissions listed above are Bot Token Scopes.

Step 4: Confirm Installation

After authorization, you’ll be redirected back to the Hitler onboarding page with a success confirmation. You’ll also receive a welcome DM from the Hitler bot in Slack:
Hey! Hitler is now connected to your workspace. You can start chatting with me right here — try saying “hello” or “what are my tasks?”

Step 5: Test the Connection

On the onboarding page, you can click Send Test Message to verify the bot can send you DMs. This helps confirm everything is working before you proceed. The Slack integration card will now show:
  • Connected status
  • Workspace name
  • Connection date

User Sign-In

Once Slack is connected, team members can sign in using Slack:
  1. Go to app.hitler.app/login
  2. Click Sign in with Slack
  3. Authorize with their Slack account
  4. If new user → Complete profile setup
  5. If existing user → Redirected to dashboard
Users must belong to a Slack workspace that has Hitler installed to sign in with Slack.

Bot Usage

Invite the Bot

Before the bot can respond in a channel, invite it:
/invite @Hitler
For DMs, simply message the bot directly.

Basic Commands

CommandDescription
@Hitler helpList all commands
@Hitler task <description>Create a task
@Hitler moodLog today’s mood
@Hitler tasksView your tasks
@Hitler statsView your statistics
See Bot Commands for the full list.

Configuration

Customize Check-in Time

By default, mood check-ins are sent at 9:00 AM in each user’s timezone. To change this:
  1. Go to Settings → Notifications
  2. Set your preferred check-in time
  3. Save changes

Enable/Disable Features

Admins can toggle specific bot features:
  • Daily mood check-ins
  • Task reminders
  • Weekly summaries

Two Slack Apps (Dev + Production)

We strongly recommend creating two separate Slack apps — one for local development and one for production. This prevents dev testing from sending messages to real users and keeps credentials isolated.
Development AppProduction App
App NameHitler DevHitler
Socket ModeEnabledEnabled
OAuth Redirect URLhttp://localhost:3000/api/auth/slack/callbackhttps://api.mako.devinagiffy.xyz/api/auth/slack/callback
WorkspaceYour dev/test workspaceYour production workspace
Used bypnpm dev (local)Docker deployment on VPS

Create Each App

For both apps, follow these steps:
  1. Go to api.slack.com/appsCreate New AppFrom scratch
  2. Name it (Hitler Dev or Hitler) and select the target workspace

Enable Socket Mode

  1. Go to Settings → Socket Mode → Enable
  2. Generate an App-Level Token with connections:write scope
  3. Copy the token (xapp-1-...)

Add Bot Scopes

Go to OAuth & Permissions → Bot Token Scopes and add all of the following:
ScopePurpose
app_mentions:readView messages that directly mention the bot
channels:historyView messages in public channels the bot is in
chat:writeSend messages as the bot
commandsAdd slash commands (e.g. /hitler)
groups:historyView messages in private channels the bot is in
im:historyView messages in direct messages with the bot
im:readView basic info about DMs the bot is in
im:writeStart direct messages with people
mpim:historyView messages in group DMs the bot is in
team:readView workspace name, email domain, and icon
users:readView people in the workspace

Subscribe to Events

Go to Event Subscriptions → Subscribe to bot events and add:
Event NameDescriptionRequired Scope
app_home_openedUser opened the bot’s App Home tab
app_mentionSomeone mentions the bot in a channelapp_mentions:read
message.channelsA message was posted in a public channel the bot is inchannels:history
message.groupsA message was posted in a private channel the bot is ingroups:history
message.imA message was posted in a DM with the botim:history
message.mpimA message was posted in a group DM the bot is inmpim:history

Set OAuth Redirect URL

Go to OAuth & Permissions → Redirect URLs and add:
  • Dev app: http://localhost:3000/api/auth/slack/callback
  • Prod app: https://api.mako.devinagiffy.xyz/api/auth/slack/callback

Install to Workspace

Click Install to Workspace and authorize. Copy the Bot User OAuth Token (xoxb-...).

Configure Environment Variables

Development (.env in project root):
SLACK_APP_TOKEN=xapp-1-your-dev-app-token
SLACK_SIGNING_SECRET=your-dev-signing-secret
SLACK_CLIENT_ID=your-dev-client-id
SLACK_CLIENT_SECRET=your-dev-client-secret
Production (.env on your VPS):
SLACK_APP_TOKEN=xapp-1-your-prod-app-token
SLACK_SIGNING_SECRET=your-prod-signing-secret
SLACK_CLIENT_ID=your-prod-client-id
SLACK_CLIENT_SECRET=your-prod-client-secret
The Hitler Slack bot uses Socket Mode (WebSocket connection), so you don’t need ngrok or a public URL for local development.

Troubleshooting

  1. Ensure the bot is installed (check Settings → Integrations)
  2. Invite the bot to the channel: /invite @Hitler
  3. Check you’re mentioning correctly: @Hitler (not @hitler)
“You must provide an appToken” error:
  • Set SLACK_APP_TOKEN in your .env (starts with xapp-)
  • Generate one in Slack App → Socket Mode → App-Level Tokens
  • Ensure Socket Mode is enabled
“Invalid token” error:
  • Verify SLACK_BOT_TOKEN is correct (starts with xoxb-)
  • Re-install the app to your workspace if needed
  • Verify you have Slack admin permissions - Check your browser allows popups from Slack - Try in an incognito window
  • Confirm the workspace has Hitler installed - Verify the user’s email matches their Slack profile
  • Check the user belongs to the correct Slack workspace
  • For local dev: Check that Socket Mode is enabled and SLACK_APP_TOKEN is set
  • Verify Event Subscriptions has message.im and app_mention subscribed
  • Check Hitler server status at status.hitler.app
  • Contact support if issues persist

Disconnecting Slack

To remove the Slack integration:
  1. Go to Settings → Integrations
  2. Click the Disconnect button on the Slack card
  3. Confirm disconnection
Disconnecting will:
  • Stop all bot functionality
  • Disable “Sign in with Slack”
  • Remove stored bot tokens
User accounts will remain, but Slack-based features will stop working.

Security

Data Access

Hitler only accesses:
  • Messages in DMs with the bot
  • Messages where the bot is mentioned
  • User profile information (name, email)
We do not access:
  • Private channels where bot isn’t invited
  • DMs between users
  • Message history beyond bot interactions

Token Storage

Slack tokens are:
  • Encrypted with AES-256-GCM
  • Stored in Cloudflare KV (not in database)
  • Scoped to your organization
  • Rotatable via re-authentication

Audit Logging

All Slack-related actions are logged:
  • Bot installations/removals
  • User sign-ins via Slack
  • Permission changes