omadiaomadia.ai
registry
channelslack

Slack

@omadia/channel-slack

Slack-Channel via Events API (Webhook, prod-empfohlen) oder Socket Mode (Fallback ohne Public-Host). Routet Slack-DMs und @Mentions in den Omadia-Orchestrator.

latest
v0.2.3
license
MIT
versions
4
author
byte5 GmbH

install

In your omadia instance, open Admin → Registries and add this registry, then install Slack from Admin → Plugins → Store.

registryhttps://hub.omadia.ai

setup guide

Create a Slack app

You create a Slack app, grant bot scopes and choose one of two transport modes. Takes about 10 minutes.

1. Create the app

  1. Open api.slack.com/appsCreate New AppFrom scratch.
  2. Pick a name + workspace → Create App.

2. Set bot scopes

Left sidebar → OAuth & PermissionsScopesBot Token Scopes → add these: app_mentions:read, chat:write, reactions:write, im:history, channels:history, groups:history, mpim:history, users:read.

3. Install & get the bot token

  1. At the top, click Install to WorkspaceAllow.
  2. Copy the Bot User OAuth Token (starts with xoxb-) → paste below as Bot User OAuth Token.

4. Choose a transport

Option A — Events API (for production, public HTTPS host)

  1. Basic InformationApp Credentials → copy the Signing Secret → field Signing Secret.
  2. Set the Public HTTPS Base-URL field (e.g. https://bot.example.com).
  3. Left sidebar → Event SubscriptionsEnableRequest URL: <your-base-url>/api/slack/events (must be reachable, Slack verifies immediately).
  4. Subscribe to bot events: app_mention, message.im, message.channels, message.groups, message.mpimSave Changes.

Option B — Socket Mode (local / behind a firewall, no public host)

  1. Leave Public HTTPS Base-URL empty.
  2. Basic InformationApp-Level TokensGenerate Token with scope connections:write → copy → field App-Level Token (xapp-…).
  3. Left sidebar → Socket ModeEnable.
  4. Event Subscriptions → subscribe to the same bot events as above (no Request URL needed).

5. Invite the bot to channels

Run /invite @YourBot in each channel you want. DMs work without an invite (if Allow direct messages is on).

versions

v0.2.3
>=1.0 <2.0164.0 KB2026-08-24
.zipeb384f9845e2
v0.2.2
>=1.0 <2.0165.6 KB2026-06-03
.zipcb044ec9a0fd
v0.2.1
>=1.0 <2.0165.4 KB2026-06-03
.zip1960f8bcd87a
v0.2.0
>=1.0 <2.0164.3 KB2026-06-03
.zip7aeb6b11db32

setup fields

Values the operator fills in at install-time.

bot_tokensecret
Bot User OAuth Token (xoxb-…)OAuth & Permissions → Bot User OAuth Token. Benötigte Bot-Scopes: app_mentions:read, chat:write, reactions:write, im:history, channels:history, groups:history, mpim:history, users:read.
required
public_base_urlurl
Public HTTPS Base-URL (Events API)Öffentliche HTTPS-Origin, unter der die Middleware erreichbar ist (z.B. https://bot.example.com). GESETZT → Events-API-Modus: trage `<base>/api/slack/events` in deiner Slack-App unter Event Subscriptions als Request URL ein. LEER → Socket-Mode-Fallback (kein Public-Host, gut für lokale Dev).
optional
signing_secretsecret
Signing Secret (Events API)Basic Information → App Credentials → Signing Secret. Verifiziert eingehende Slack-Requests (HMAC). Nur im Events-API-Modus nötig (wenn public_base_url gesetzt ist).
optional
app_tokensecret
App-Level Token (xapp-…, nur Socket Mode)Basic Information → App-Level Tokens. Token mit Scope `connections:write` + Socket Mode aktivieren. Öffnet die WebSocket-Verbindung. Nur nötig, wenn public_base_url LEER ist (Socket-Mode-Fallback).
optional
respond_in_channelsenum
Verhalten in ChannelsWann antwortet der Bot in Channels/Gruppen? `mention` (empfohlen): nur wenn der Bot direkt mit @ erwähnt wird. `all`: auf jede Nachricht in Channels, in denen der Bot Mitglied ist (laut).
optional
allow_dmsboolean
Direktnachrichten zulassenWenn aktiv, antwortet der Bot auf 1:1-DMs. Andernfalls bleiben DMs still.
optional
allowliststring
Allowlist (optional)Komma-getrennte Slack-Channel-IDs (C…) und/oder User-IDs (U…), die mit dem Bot interagieren dürfen. Leer = alle erlaubten Konversationen.
optional

permissions

memory

reads: [0] · writes: [0]

graph

reads: [0] · writes: [0]

network

outbound: [2]

filesystem

scratch: false