Add to Slack
Add the bot to your Slack workspace
Landing Page
Features overview and pricing
Self-Host
Clone and deploy on your own infrastructure
Installation
Hosted app (recommended)
Click the Add to Slack button above to install the bot into your workspace. No code required — configure everything with slash commands. The bot requests the following permissions:| Scope | Purpose |
|---|---|
channels:join | Join public channels selected for monitoring |
channels:history | Read messages in monitored public channels |
channels:read | List available channels |
groups:history | Read messages in monitored private channels |
groups:read | List available private channels |
chat:write | Post safety alerts to the alert channel |
im:history | Read direct messages (when opted in) |
im:write | Send DM notifications to admins |
commands | Register slash commands |
users:read | Resolve user display names in alerts |
Self-host
Quick start
Configure your API key
Run
/tuteliq setup — a modal dialog will open where you enter your Tuteliq API key (starts with tq_) and select the alert channel. The key is encrypted at rest with AES-256.Select channels to monitor
Choose which channels to monitor during setup. Leave empty to monitor all channels.
How it works
Messages in monitored channels flow through a multi-stage pipeline:- Crisis keywords — Messages containing crisis phrases (e.g. self-harm, exploitation) trigger an immediate API call for instant analysis.
- Grooming buffer — Messages are accumulated per channel. When the buffer has enough context from multiple senders, a conversation analysis is sent for grooming detection.
- Batch queue — All other messages are batched and sent to the Tuteliq API for efficient bullying and unsafe content detection.
- Alert — When a risk score exceeds your sensitivity threshold, an alert is posted to your configured alert channel with severity, risk score, message excerpt, and recommended action.
- Act — Admins take action directly from the alert using interactive buttons.
Slash commands
All commands live under the/tuteliq prefix and require workspace admin permissions.
| Command | Description |
|---|---|
/tuteliq setup | Configure the bot with your Tuteliq API key via modal dialog |
/tuteliq status | View current configuration, stats, and quota usage |
/tuteliq sensitivity <level> | Set detection sensitivity level |
/tuteliq reset | Remove all Tuteliq configuration from the workspace |
/tuteliq help | Display the help message |
Alert actions
When a threat is detected, the alert message includes interactive buttons:| Action | Effect |
|---|---|
| Delete | Removes the flagged message from the channel |
| Timeout | Removes the user from the channel |
| Report | Shows the full incident report with rationale and context |
| Dismiss | Marks the alert as reviewed without action |
Sensitivity levels
| Level | Threshold | Best for |
|---|---|---|
low | 70%+ | Minimal alerts, only clear violations |
medium | 50%+ | Balanced — good default for most workspaces |
high | 30%+ | Stricter monitoring, catches more subtle threats |
maximum | 10%+ | Maximum protection — useful for testing or high-risk communities |
/tuteliq sensitivity <level>.
Self-hosting
Requirements
- Node.js 20+
- Slack app with Bot Token and Signing Secret
- Tuteliq API key
- Firebase project with Firestore enabled
- Firebase service account key (JSON)
Environment variables
Docker
Cloud Run
Cloud Run deployment uses 512 MiB memory, 1 CPU, and keeps 1 minimum instance running for low-latency responses.
Health check
The bot exposes a health endpoint atGET /health on the configured port (default 8080). It returns 200 with { "status": "ok" } when the bot is running.