How-to automate Slack
Post a message to a Slack channel from a flow. It is a small automation on its own, and the
useful version of it is as the last step of a bigger one — the flow that reconciles invoices
also says so in #finance, so nobody has to go and look.
You will need two things before starting: a bot token, which Slack authentication walks through, and the Slack package installed in your project — see Packages.
1. Create a vault for the token
The token is a credential, so it belongs in a vault rather than in a node. Vault contents are encrypted in your browser before they are uploaded, which means the token is ciphertext everywhere except on the robot that uses it — not in the flow file, not in the flow's git history, and not readable by Robomotion. A token typed straight into a node is none of those things. See the Security Model for what that buys you.
Open the Vault panel from the Designer's left rail. The first time in a session it asks for your account password; that unlocks the list, not the vaults themselves.
Click New Vault, give it a name and a short description, and create it.

Creating a vault shows you a Secret Key once and never again. It is not stored on the server and it cannot be reset or recovered — Robomotion genuinely cannot read it. Copy it into your password manager before you close that dialog. A vault whose key is lost cannot be opened, and cannot be deleted either.
From then on, opening the vault asks for that key.

2. Put the bot token in it
With the vault open, add an item and choose the API Key type — that is the one-secret shape a bot token fits. Name it something you will recognise from a dropdown three weeks from now, paste the token into Value, and save.

The name is what appears in the node's credential picker; the value is never shown again in plain text.
3. Build the flow

Drag the nodes in from the palette, or right-click the canvas and search by name:
- Trigger → Inject
- Slack → Connect
- Slack → Send Message
- Slack → Disconnect
- Flow → Stop
Connect and Disconnect are a pair, and the shape is worth recognising because most packages that talk to a service use it. Connect authenticates once and hands back a Client Id; every other Slack node takes that id as an input. Disconnect releases the connection at the end. Leaving Disconnect out will not break a single run, but a flow that runs on a schedule and never releases its connections eventually will.
4. Point Connect at the token
Select the Connect node. Under Options, leave Bot Token on Custom and use the two
dropdowns beside it to pick your vault and then the item inside it.

Connect writes its Client Id to msg.client_id, which is where the rest of the flow will
look for it.
5. Say something
Select Send Message and set Channel Name and Message.

The bot has to be in the channel it posts to. It is not enough for the token to be valid and
the channel to exist — an uninvited bot gets not_in_channel back, which is the single most
common thing to go wrong here. Invite it with /invite @your-bot in the channel itself.
Client Id is already filled in from the Connect node's output. That is the wiring the Connect/Disconnect pair exists for.
6. Run it
Where to go next
Send Message is one of eight nodes in the package — see Slack for uploading files, listing channels and users, and receiving messages. If what you actually want is a robot that reacts to Slack rather than posts to it, look at Receive Message together with Triggers.