Guest Machines

Use Slack

Connect Slack once for the workspace, choose the channels agents may use, grant Slack to agents, approve every post, link your own Slack account, and start agents from Slack messages.

Slack lets agents read the channels you choose and post messages you approve. Unlike the other apps, it isn't anyone's own account: an owner or admin connects it once for the whole workspace, installing the Guest Machines bot to one Slack workspace. The bot is the workspace's account. Any agent the workspace grants it may use it, private or shared, in any run of that agent, and every post or reply is approved by a person first, exactly as it will appear.

Members install nothing. You can link your own Slack account so Slack triggers recognize your messages, which gives you no other access.

Until the platform administrator sets up Slack on this server, it shows Needs setup and can't be connected. For how apps work in general, see use apps.

Connect Slack

Owners and admins choose Connect Slack next to Slack in Settings → Apps, or on Slack's page in Apps. Connecting enables Slack for the workspace if it isn't already. Slack asks you to choose a Slack workspace and approve the bot, then sends you back to Slack's page, which says Slack is connected.

  • A Guest Machines workspace connects one Slack workspace, and a Slack workspace can be connected to only one Guest Machines workspace. To connect another, disconnect the first.
  • Installing the bot for a whole Enterprise Grid organization isn't supported. Install it to one Slack workspace.
  • Under Connection, Slack's page shows which Slack workspace is connected and who connected it. Connecting gives that person no more access than anyone else.
  • If Slack needs the bot installed again, the page offers Connect Slack Again.

In a personal workspace you are its admin, so you connect Slack from its page yourself.

Choose channels

The bot can only reach channels it was invited to. In Slack, invite it to each channel agents should use, for example with /invite. Then, on Slack's page, choose Choose Channels: Slack lists the public and private channels the bot is in. Check the ones the workspace makes available and choose the Add button. Only owners and admins choose channels; whoever may grant Slack sees which are available.

Each grant then names which of these channels its agent may use. Remove next to a channel takes it away from every grant and stops triggers watching it.

Who may grant Slack

By default only owners and admins grant Slack to agents. Under Who may grant it on Slack's page, an owner or admin can choose Members, to agents they may edit instead. Granting needs no Slack account of the grantor's own, so any agent may hold a grant: private, restricted or shared. Each grant records who made it.

Give an agent access

On Slack's page, Agents lists the agents granted Slack, with their tools and channels, whether unattended use is on, and who granted it. If you may grant Slack, choose one of the agents you may edit to grant it or change its access. The same controls are on the agent's Tools page under Apps.

  1. Check the tools the agent may use: List channels, Read messages and Look up users under Reads; Add reaction under Changes; and Post message and Reply in thread under Messages, posts and invitations. Check Approve Each Use on a read or a reaction to have it ask each time. Posts and replies always ask.
  2. Under Which channels, check the channels the agent may use, from those the workspace made available.
  3. Check Allow Unattended Use to let the agent use Slack in schedules, triggers, webhooks and API tasks. Slack triggers need it.
  4. Choose Grant Slack, or Save Access to change a grant. Remove Slack From Agent takes it away.

A grant works in every run of the agent, whoever starts it: the agent acts with the access the workspace granted it, not the access of the person who started the run. Starting the agent still needs the usual permission to run it. An agent another agent calls uses its own Slack grant, never its caller's. Sharing an agent or changing its owners keeps its grant; duplicating an agent doesn't copy it.

Slack lets apps outside its Marketplace read one page of 15 messages at a time, at most one page a minute, so reading long histories is slow.

Approve posts

Every post and thread reply pauses the run as Awaiting Approval, even when the run is set to No Approvals. The request shows the channel by its name, whether it's public or private, and its ID, for example Slack channel #general (public), C0123ABC; the thread; the text exactly as typed (Slack's formatting is shown, not rendered); whether it notifies everyone in the channel or a user group; the bot it posts as; and a deadline within 15 minutes, after which it isn't posted.

The person the run asks approves it: whoever started the run, the person a workflow step names, or the owner of the private schedule, webhook or trigger that started it. A workspace admin answering for someone else can deny a post but not approve it.

A schedule or webhook that isn't private has nobody to ask, except that its owner approves its runs' Slack posts, and nothing else: any other tool that needs approval is still refused, and the agent can't ask them questions. That includes agents its agent calls and workflow steps without a Person to ask. The owner is told the way they are about any run waiting on them, and approves on the run's page. They can approve only while they may grant Slack and can still answer runs: if only owners and admins may and they're neither, or they leave the workspace, become a viewer or can no longer sign in, a post is refused instead of waiting. A post already waiting on them is refused within a few minutes, and the agent is told why and carries on without it; until then, anyone who may answer the run can deny it. When you create the schedule or webhook, its form lists the posts you'll be asked about.

If Guest Machines can't confirm that a post was made, the run asks you how to continue and can look for the message in the channel, reading the messages posted while the post was being sent. In a busy channel it reads a few pages at most: when there was more to read, the result says It was not searched fully, so the message may still be there. It looks only while the agent may still post in that channel; once Slack is disabled, the grant changes or the channel is removed, look in Slack yourself. It never posts again on its own.

On Slack's page, under Your Slack account, choose Link Your Slack Account. Slack asks you to sign in to the connected Slack workspace, then sends you back with Your Slack account is linked. Linking only proves who you are in Slack, so Slack triggers recognize your messages as yours. Guest Machines keeps no Slack credential of yours, and agents still act only as the bot.

You must sign in to the Slack workspace this workspace connected, and a Slack account can be linked to only one member. Unlink removes your link; leaving the workspace removes it too.

Start an agent from Slack messages

Open Triggers → App Triggers, and under Your Slack triggers choose New Slack Trigger. You need to be someone who may grant Slack, an agent of your own without computer control, and Slack granted to that agent with Read messages on the channel and Allow Unattended Use.

  1. Name the trigger, choose the agent and the Channel from those the workspace made available, and write the task.
  2. Choose when it runs:
    • Only when someone mentions the bot is on by default. Turn it off to run for every message in the channel.
    • Who can start it: Members who linked Slack (the default) or Anyone in the Slack workspace.
  3. Choose Create Trigger, then Review and Turn On to check the task, the agent and what its runs can use, and Turn On Trigger.

Each message starts one run of your agent, one at a time. The run receives the channel, the message's text as information for the task (never as instructions), who sent it and whether it mentioned the bot. Bots, the bot's own posts, edits, direct messages and people from another Slack workspace never start it. The runs are yours: you see their results, and their replies wait for you to approve the exact text, even under No Approvals.

The trigger's card shows Receiving Slack messages while it's on, how many messages are waiting and the last run, and View History lists what became of each message. Editing a trigger turns it off until you review it again; the channel it watches can't change. Messages already waiting stay queued when the edit only widens which messages count. An edit that narrows them, such as switching from every message to mentions only, skips every message already waiting, even a mention the new settings would still match, because your next approval covers only what matches them. The edit form shows how many will be skipped before you save. If you can no longer grant Slack, your Slack triggers stop and their cards say why.

If someone removes the bot from the channel, or archives the channel, the trigger pauses and its card says why; triggers on other channels keep running. Add the bot back to the channel, then review the trigger and turn it on again. Slack normally tells Guest Machines right away; if it doesn't, the trigger pauses within the hour.

Recover what a trigger missed

If Slack limits the events it sends Guest Machines, the workspace's Slack account was disconnected while messages arrived, or the bot was removed from the channel, Slack triggers pause and their cards explain why. After an account that needed connecting again is connected, its triggers pause at their next check if messages arrived meanwhile. Review a trigger and turn it back on, then choose Recover Missed Messages to run for messages posted meanwhile, going back no more than six days. A recovery reads the channel one page of 15 messages a minute and matches messages by the trigger's settings; replies in threads aren't recovered. See recover what a trigger missed.

Disable, disconnect or remove

  • Disable, in Settings → Apps, stops every agent from using Slack, and its triggers can’t start runs meanwhile. The connection, its channels and every grant are kept, so Enable restores them without connecting again.
  • Disconnect Slack, on Slack's page, revokes every grant, stops its triggers, forgets the workspace's channels and asks Slack to revoke the bot's access. Slack stays enabled, so an owner or admin can connect it again.
  • Remove, in Settings → Apps, disconnects Slack for the whole workspace in the same way and takes it out of the workspace.

If someone uninstalls the bot or revokes its access in Slack, Slack's page shows that Slack disconnected it: every grant is revoked and triggers stop until an owner or admin connects it again.

None of these can recall a message that was already posted.

On this page