Portal Community

Output Ports

Every Slack node operation produces exactly two output ports:

PortOperationsDescription
successAll 42 operationsThe Slack API accepted the request and the operation completed without error. Output fields vary by operation — see tables below.
errorAll 42 operationsThe Slack API returned an error, the Bot Token was invalid, a required property was missing, or a network timeout occurred. Always includes errorCode and status.
Error output fields: On the error port, every operation returns at minimum: status (always "error"), errorCode (the Slack API error string such as channel_not_found, not_authed, invalid_auth), plus the relevant input field names that were provided so you can route on the error context.

message / send — Success Output

FieldTypeDescription
messageSentbooleantrue when the message was accepted by Slack.
channelstringChannel ID the message was posted to.
messageTsstringTimestamp of the sent message. Use this as the message identifier for updates, deletes, thread replies, and reactions.
threadTsstringThread root timestamp. Matches messageTs if this is a new thread root, or the parent message ts if posted as a reply.
incomingTextstringPass-through of the IncomingText input property value (empty string if not provided).
conversationIdstringPass-through of the ConversationId input property value (empty string if not provided).
statusstringAlways "success" on this port.
errorCodestringEmpty string on success.
payloadobjectRaw Slack API response object for advanced use.
{
  "messageSent": true,
  "channel": "C012AB3CD",
  "messageTs": "1748000000.000100",
  "threadTs": "1748000000.000100",
  "incomingText": "",
  "conversationId": "",
  "status": "success",
  "errorCode": "",
  "payload": { "ok": true, "channel": "C012AB3CD", "ts": "1748000000.000100", "message": { ... } }
}

message / sendAndWait — Success Output

This operation posts the message, then suspends the workflow. It resumes on the success port when a reply message arrives in the same channel or thread. The output contains the reply text from the responding user.

FieldTypeDescription
replyTextstringThe text content of the reply message that caused the workflow to resume.
replyUserIdstringSlack user ID of the person who sent the reply.
replyTsstringTimestamp of the reply message.
channelstringChannel ID where the reply was received.
originalMessageTsstringTimestamp of the original message that was sent before waiting.
statusstringAlways "success" on this port.
errorCodestringEmpty string on success. Set to "timeout" if the wait timed out before a reply arrived (routes to error port).
payloadobjectRaw reply event payload from Slack.

user / get — Success Output

FieldTypeDescription
userIdstringSlack user ID.
userNamestringSlack username (login handle).
isBotbooleantrue if this user is a bot account.
deletedbooleantrue if this account has been deactivated.
realNamestringUser's full real name.
displayNamestringUser's display name as shown in Slack.
emailstringUser's email address (requires users:read.email scope).
statusTextstringUser's current status text (e.g. "In a meeting").
statusEmojistringUser's current status emoji (e.g. ":spiral_calendar_pad:").
avatarUrlstringURL to the user's avatar image (512px version).
statusstringAlways "success" on this port.
errorCodestringEmpty string on success.
payloadobjectRaw Slack API user object.
{
  "userId": "U012AB3CD",
  "userName": "jane.smith",
  "isBot": false,
  "deleted": false,
  "realName": "Jane Smith",
  "displayName": "Jane Smith",
  "email": "jane.smith@acmecorp.com",
  "statusText": "Working from home",
  "statusEmoji": ":house_with_garden:",
  "avatarUrl": "https://avatars.slack-edge.com/2025-01-10/abc123_512.jpg",
  "status": "success",
  "errorCode": "",
  "payload": { ... }
}

channel / create — Success Output

FieldTypeDescription
idstringSlack channel ID of the newly created channel.
namestringNormalised channel name (lowercase, hyphens).
isPrivatebooleantrue if the channel was created as private.
createdintegerUnix timestamp of when the channel was created.
statusstringAlways "success" on this port.
errorCodestringEmpty string on success.
payloadobjectRaw Slack API channel object.
{
  "id": "C07XYZ1234",
  "name": "project-atlas-q2",
  "isPrivate": true,
  "created": 1748000000,
  "status": "success",
  "errorCode": "",
  "payload": { ... }
}

file / upload — Success Output

FieldTypeDescription
fileIdstringSlack file ID for the uploaded file (e.g. F01234567).
fileNamestringFilename as stored in Slack.
permalinkstringShareable URL to the file in the Slack web UI.
fileTypestringSlack file type identifier (e.g. csv, pdf).
statusstringAlways "success" on this port.
errorCodestringEmpty string on success.
payloadobjectRaw Slack API file object.
{
  "fileId": "F08ABCDE01",
  "fileName": "sales-report-2026-05.csv",
  "permalink": "https://acmecorp.slack.com/files/U012AB3CD/F08ABCDE01/sales-report-2026-05.csv",
  "fileType": "csv",
  "status": "success",
  "errorCode": "",
  "payload": { ... }
}

Other Operation Output Summaries

message / sendEphemeral

Returns messageSent (boolean), channel, messageTs, status, errorCode, payload. Ephemeral messages have no persistent ts in the channel history.

message / update

Returns channel, messageTs (the timestamp of the updated message), text (the new text as confirmed by Slack), status, errorCode, payload.

message / delete

Returns channel, messageTs (the deleted message's timestamp), status, errorCode.

message / getPermalink

Returns channel, permalink (the permanent URL string), status, errorCode, payload.

message / search

Returns matches (array of message objects — each with channel, ts, text, username), total (integer total result count), status, errorCode, payload.

channel / get

Returns the full channel object: id, name, isPrivate, topic, purpose, memberCount, created (Unix timestamp), status, errorCode, payload.

channel / getMany

Returns channels (array of channel summary objects), count (number returned), status, errorCode, payload.

channel / getHistory

Returns messages (array of message objects — each with ts, text, userId, type), hasMore (boolean), status, errorCode, payload.

channel / invite / join / kick / leave / archive / unarchive / open / close

These operations return channelId, status, errorCode, and payload. They confirm the action was applied without returning detailed data.

channel / getMembers

Returns members (array of user ID strings), count (integer), status, errorCode, payload.

channel / rename

Returns channelId, name (new channel name), status, errorCode, payload.

channel / getReplies

Returns messages (array of thread reply objects — each with ts, text, userId), count, status, errorCode, payload.

channel / setPurpose / setTopic

Returns channelId, purpose or topic (the value that was set), status, errorCode, payload.

file / get

Returns fileId, fileName, fileType, size (bytes), permalink, created (Unix timestamp), status, errorCode, payload.

file / getMany

Returns files (array of file summary objects), total, page, pageCount, status, errorCode, payload.

reaction / add / remove

Returns channel, timestamp, emoji, status, errorCode. These are confirmation-only responses.

reaction / get

Returns reactions (array of objects — each with name, count, users array if Full=true), status, errorCode, payload.

user / getMany

Returns users (array of user summary objects), count, status, errorCode, payload.

user / getProfile

Returns userId, displayName, realName, email, phone, title, statusText, statusEmoji, avatarUrl, status, errorCode, payload.

user / getStatus

Returns userId, statusText, statusEmoji, statusExpiration (Unix timestamp when status expires, 0 if no expiry), status, errorCode, payload.

user / updateProfile

Returns userId, displayName, status ("success"), errorCode, payload.

userGroup / create

Returns usergroupId, name, handle, description, dateCreate (Unix timestamp), status, errorCode, payload.

userGroup / disable / enable

Returns usergroupId, name, isEnabled (boolean), userCount (if IncludeCount=true), status, errorCode, payload.

userGroup / getMany

Returns userGroups (array of group objects — each with id, name, handle, description, userCount if IncludeCount=true, users array if IncludeUsers=true), count, status, errorCode, payload.

userGroup / getUsers

Returns users (array of Slack user ID strings), count, status, errorCode, payload.

userGroup / addUsers

Returns usergroupId, users (full updated member list), count, status, errorCode, payload.

userGroup / update

Returns usergroupId, name, handle, description, dateUpdate (Unix timestamp), status, errorCode, payload.

Error Port Output

All 44 operations route to the error port on failure with the following fields:

FieldTypeDescription
statusstringAlways "error".
errorCodestringSlack API error code string (e.g. channel_not_found, not_authed, invalid_auth, missing_scope, cant_kick_self).
payloadobjectRaw Slack API error response. Includes ok: false and error string.
{
  "status": "error",
  "errorCode": "channel_not_found",
  "payload": {
    "ok": false,
    "error": "channel_not_found"
  }
}