What you can build today
- Custom slash commands — a user types
/weather Prague, Disqua POSTs a signed request to your URL and posts your answer in a thread under the command. Details below. - Posting into channels — incoming webhooks (no token needed) or the REST API.
- Reacting to new messages — outgoing webhooks (
message.new). - AI assistants — connect Claude or ChatGPT through the MCP server.
Custom slash commands
A workspace owner or admin registers the command in Workspace Settings → Integrations, or through the API:
{
"name": "Weather",
"type": "slash_command",
"config": {
"command": "/weather",
"description": "Current weather for a city",
"usage_hint": "/weather <city>",
"url": "https://yourapp.com/disqua/weather",
"secret": "your_signing_secret"
}
}
What Disqua sends
POST https://yourapp.com/disqua/weather
Content-Type: application/json
User-Agent: Disqua-SlashCommands/1.0
X-Disqua-Event: slash_command
X-Disqua-Signature: sha256=<hex HMAC-SHA256 of the raw body with your secret>
{
"type": "slash_command",
"command": "/weather",
"text": "Prague",
"user_id": "7f9e…",
"channel_id": "7a0c…",
"workspace_id": "3c1d…",
"message_id": "8b1d…",
"thread_id": null,
"created_at": "2026-10-16T10:05:00.000Z"
}
Verify the signature exactly as for outgoing webhooks.
How to answer
Reply within 5 seconds with a 2xx status and either JSON { "text": "18 °C, sunny" } or plain text. Disqua posts the text (markdown, up to 4,000 characters) in a thread under the command message. An empty body means no reply.
Current limits
- Commands run in public channels only.
- The reply is posted under the name of the admin who created the integration, and only if that person is a member of the channel.
- One attempt per command — no retries, so your endpoint is never called twice for the same message.
- Private replies visible only to the person who typed the command (
ephemeral) are not supported yet; withephemeral: truenothing is posted. - Your URL must be publicly reachable; private and loopback addresses are rejected.
Planned: Bot SDK
A TypeScript toolkit for bots is on the roadmap — bot identities with their own tokens, event subscriptions over WebSocket, interactive messages and helpers for slash command endpoints. There is no package to install yet and no bot tokens; anything on npm or PyPI calling itself the official Disqua SDK is not ours.
Want to shape it? Tell us what you would build at developers@disqua.com.