Enclessa slash commands come in two kinds. Built-in commands cover what people do constantly — joining and leaving a channel, inviting somebody, sending a direct message, setting a channel header, starting a call, searching. Custom commands are registered per team and call an HTTP endpoint you control: Enclessa posts the request, waits up to three seconds, and renders the reply either into the room or privately back to the person who typed it.
Open betaThe platform is being built in the open, so parts of it are not there yet, behaviour changes between releases, and no availability figure is committed while it is in beta. What is still being built.
At a glance
- Built-in
- /join, /leave, /invite, /msg, /header, /call, /search and more
- Custom scope
- Registered per team, by someone who may manage the team
- Budget
- Three seconds for your endpoint to answer
- Reply modes
- Into the channel, or privately to the caller
- Outbound safety
- Private address ranges refused inside the dialer
- Author
- A bot account provisioned with the command
Which commands are built in?
The ones worth having: /join and /leave for channels, /invite to bring somebody in, /msg to open a direct message, /header to set what a room is for, /call to start a call, /search to search, /shrug for the obvious reason, and /shortcuts to open the sheet listing all of them. Commands that would have to answer “not implemented” were left out, because a command that does not work is worse than a command that is not there.
- Autocomplete as you type, with a hint per command
- /shortcuts opens the full list rather than making anybody memorise it
- Built-ins run in the client, so they cost nothing on the server
How do I register a custom command?
Someone who may manage the team registers it against a URL. Registering provisions a bot account, and that bot joins a room the first time the command is used there rather than at registration, because a team-wide command cannot know in advance which rooms it will be used in.
- Scoped to a team, guarded by the permission that already governs the team
- Registration provisions the bot; the bot joins a room on first use in that room
- The outbound request carries a sealed bearer token so your endpoint can verify the caller
- An unknown command answers plainly: no such command in this team
What does my endpoint have to return?
A Slack-shaped response. A response type of in_channel posts the answer into the room for everybody; anything else returns it to the person who typed the command and nobody else. A private answer is never written to the message table at all — it comes back in the HTTP response and then it is gone.
- Three seconds to answer, the same budget Slack sets, for the same reason
- in_channel posts into the room; the default answers the caller alone
- A private answer has no message row, so it cannot be searched, exported or retained
- A posted answer carries metadata naming the command that produced it
What stops a command from being used to probe our network?
The address check happens inside the dialer, on the address actually connected to. Checking a hostname is defeated by a DNS record that answers 127.0.0.1, and checking before dialling is defeated by DNS answering differently the second time. Private ranges are refused by default, and the setting that opens them is deliberately not something a production installation is asked to turn on.
- Server-side request forgery blocked at the resolved address, not the hostname
- Private and loopback ranges refused unless explicitly opened
- The command bot is a room member, so the room’s permissions still apply to what it posts
What this does not do
- Three seconds is the whole budget. A command that needs longer should acknowledge immediately and post its result later through an incoming webhook.
- Replies are text. There are no buttons, menus, modals or forms in an Enclessa message, so a command cannot open an interactive dialogue.
- Custom commands are team-scoped. There is no organisation-wide command and no per-channel command.
- Managed rooms only. A command bot cannot be a member of an end-to-end encrypted room, because the server cannot read or write in one.
- Nothing pushes events to you. A command runs when somebody types it, and never on a schedule or a trigger.
Related
Slash commands: common questions
Does Enclessa have slash commands?
How do custom slash commands work in Enclessa?
Can a slash command reply privately?
Can a slash command call a service inside our network?
Encrypted collaboration, hosted in Europe.
Create a workspace in a couple of minutes. It is yours at your-team.enclessa.app, hosted in the European Union, with encrypted direct messages from the first one you send.
Open beta. Free plan, no payment card to start.