Fliiq integrates with Slack two ways: outbound messaging via the
slack skill, and a real-time listener in the daemon that responds to DMs and @-mentions.Setup
1
Create a Slack app
Go to api.slack.com/apps and create a new app. Enable Socket Mode under Settings — this lets the daemon receive events over a websocket without exposing a public endpoint (important if it’s running behind NAT).
2
Subscribe to events
Under Event Subscriptions, add
app_mention and message.im. This covers channel @-mentions and direct messages.3
Generate tokens
Generate an app-level token (
xapp-...) for Socket Mode, and install the app to your workspace to get a bot token (xoxb-...).4
Add tokens to .env
.env
5
Restart the daemon
SLACK_ALLOWED_CHANNELS is optional, unlike Telegram’s required chat ID allowlist. Workspace membership and channel invitation are already a real access gate. Set SLACK_ALLOWED_CHANNELS (comma-separated channel IDs) if you want to further restrict which channels Fliiq responds in.Outbound: slack skill
Send a message, react, pin, or read history from any Fliiq session:Real-Time Listener
When the daemon starts andSLACK_BOT_TOKEN + SLACK_APP_TOKEN are set, Fliiq runs a Socket Mode listener that:
- Connects over websocket — no public endpoint or reverse proxy required
- Responds only to DMs and @-mentions — never unaddressed channel chatter. A channel mention fires both
app_mentionandmessageevents;messageis only handled for DMs to avoid double replies - Acks events immediately, then processes — agent turns can outlast Slack’s 3-second retry window, so acking first (plus dedup by event ID) prevents duplicate replies on redelivery
- Shows a loading indicator via
agents.sessions.setStatuswhile the agent works - Shares the unified conversation store with Telegram, email, and SMS — context carries across channels and daemon restarts