Pipory
Node reference

Slack (Bot)

Slack (Bot) node reference - all 47 operations, the credential it needs, and a worked example.

Calls the Slack Web API with a bot token across 47 operations, grouped by resource: messages (post, ephemeral, update, delete, schedule, list/delete scheduled, thread replies, permalink, channel history), reactions (add, remove, read), channels (create, list, info, join, leave, invite, remove user, list members, set topic/purpose, rename, archive, unarchive, open DM), users (look up by email, get info, list), pins and bookmarks, files (upload from URL, upload snippet, info, list, delete), user groups, and workspace info (team info, custom emoji, credential test).

Credential: Slack bot token - see Credentials.

Scopes

Each operation below lists the scope it needs. Scopes are granted by the workspace admin when the Slack app is installed, on the app's OAuth & Permissions page. If a run fails with a permission error, the node names the missing scope in the error - grant it and re-run; you do not need to rebuild the workflow.

Operations (47)

Messages

OperationWhat it doesScope
postMessagePost messagechat:write
postEphemeralMessagePost ephemeral messagechat:write
updateMessageUpdate messagechat:write
deleteMessageDelete messagechat:write
scheduleMessageSchedule messagechat:write
listScheduledMessagesList scheduled messages(none — the chat:write app's own token)
deleteScheduledMessageDelete scheduled messagechat:write
getThreadRepliesGet thread replieschannels:history (+ groups:history, im:history, mpim:history)
getMessagePermalinkGet message permalink(any valid token)
getChannelHistoryGet channel historychannels:history (+ groups:history, im:history, mpim:history)

Reactions

OperationWhat it doesScope
addReactionAdd reactionreactions:write
removeReactionRemove reactionreactions:write
getReactionsGet reactions on a messagereactions:read

Channels

OperationWhat it doesScope
createChannelCreate channelchannels:manage (+ groups:write for private channels)
listChannelsList channelschannels:read (+ groups:read, im:read, mpim:read)
getChannelInfoGet channel infochannels:read (+ groups:read, im:read, mpim:read)
joinChannelJoin channelchannels:join
leaveChannelLeave channelchannels:write (+ groups:write, im:write, mpim:write)
inviteUsersInvite users to channelchannels:manage (+ groups:write, im:write, mpim:write)
removeUserFromChannelRemove user from channelchannels:manage (+ groups:write, im:write, mpim:write)
listChannelMembersList channel memberschannels:read (+ groups:read, im:read, mpim:read)
setTopicSet channel topicchannels:manage (+ groups:write, im:write, mpim:write)
setChannelPurposeSet channel purposechannels:manage (+ groups:write, im:write, mpim:write)
renameChannelRename channelchannels:manage (+ groups:write, im:write, mpim:write)
archiveChannelArchive channelchannels:manage (+ groups:write, im:write, mpim:write)
unarchiveChannelUnarchive channelchannels:manage (+ groups:write, im:write, mpim:write)
openDirectMessageOpen direct messageim:write (+ mpim:write for group DMs)

Users

OperationWhat it doesScope
findUserByEmailFind user by emailusers:read.email
getUserInfoGet user infousers:read
listUsersList usersusers:read

Pins & bookmarks

OperationWhat it doesScope
addPinPin a messagepins:write
removePinUnpin a messagepins:write
listPinsList pinned itemspins:read
addBookmarkAdd bookmarkbookmarks:write
listBookmarksList bookmarksbookmarks:read
removeBookmarkRemove bookmarkbookmarks:write

Files

OperationWhat it doesScope
uploadFileUpload file (from URL)files:write
uploadSnippetUpload snippetfiles:write
getFileInfoGet file infofiles:read
listFilesList filesfiles:read
deleteFileDelete filefiles:write

User groups

OperationWhat it doesScope
listUserGroupsList user groupsusergroups:read
createUserGroupCreate user groupusergroups:write
updateUserGroupMembersUpdate user group membersusergroups:write

Workspace

OperationWhat it doesScope
getTeamInfoGet workspace infoteam:read
listCustomEmojiList custom emojiemoji:read
testAuthTest credential (auth.test)(any valid token)

Example

Drop a failed run's log into #ops-alerts as a snippet

A monitoring workflow catches a failed job and needs to share the log without flooding the channel with a 200-line message. Uploading it as a snippet keeps the channel readable and gives the team a permalink to reference.

Set Operation to uploadSnippet, then fill in:

FieldValueNotes
channelC01ABCD2EFGChannel ID or name the snippet is shared into - required for this operation
content{{job.logTail}}The snippet body; Handlebars resolves against the run context
filenamejob-{{job.id}}.logDefaults to snippet.txt when blank
titleFailed run {{job.id}}Defaults to the filename when blank

Sets {{snippet.fileId}} and {{snippet.permalink}}, plus {{snippet.operation}}. A following Slack node can post the link with {{snippet.permalink}}. Note this operation returns no message ts and no channel key.