Slack v2
Slack is a team communication platform used to organize conversations, channels, and messages across workspaces.
The Flowgear Slack Node lets you discover Slack conversations and post root messages by using a Slack OAuth connection and a curated Slack Web API surface.
Revision History
0.0.0.3 - Maintenance release.
0.0.0.4 - Maintenance release.
0.0.0.5 - ListConversations rows now return Slack conversation data without added metadata, and PostMessage returns operation metadata in a top-level Flowgear object.
0.1.0.0 - ListConversations now retrieves the first page before returning and loads later pages as the Workflow consumes rows.
0.1.0.2 - Updated Runtime compatibility.
Connection
The Connection stores the Slack OAuth settings and the runtime-managed token values used by the Node.
| Property | Type | Description |
|---|---|---|
Workspace Name |
String | Friendly Slack workspace name captured during authorization or connection testing. |
Client ID |
String | Slack app client identifier used for authorization and token refresh. |
Client Secret |
Masked | Slack app client secret used for authorization and token refresh. |
Scopes |
String | Space-delimited Slack bot scopes requested during installation. The default is channels:read chat:write chat:write.public groups:read. |
Access Token |
Masked | Cached Slack access token used for runtime API calls. |
Refresh Token |
Masked | Cached Slack refresh token used when token rotation is enabled. |
Access Token Expires At UTC |
String | UTC expiry timestamp recorded for the current access token. |
Setup Notes
- Create a Slack app and configure the bot scopes you need in
Scopes. - Authorize the Slack app through the Flowgear
ConnectionsoAccess Token,Refresh Token, andWorkspace Nameare populated. - Re-authorize the app after you change scopes so Slack issues a token that includes the updated permissions.
- Use the
Connectiontest action to confirm that the stored token can authenticate successfully with Slack.
Methods
The Slack Node exposes one method for listing conversations and one method for posting a root message.
ListConversations
Lists Slack conversations for the selected public and private channel families.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Slack Connection that contains the OAuth settings and runtime tokens. |
IncludePublicChannels |
Boolean | When true, public Slack channels are included. The default is true. |
IncludePrivateChannels |
Boolean | When true, private Slack channels visible to the app are included. The default is false. |
ExcludeArchived |
Boolean | When true, archived conversations are omitted. The default is true. |
| Return | Type | Description |
|---|---|---|
Conversations |
Array | One row per matching conversation. Each row includes fields such as id, name, isChannel, isPrivate, isArchived, isGeneral, optional numMembers, and raw. |
PostMessage
Posts one root Slack message to the selected destination.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Slack Connection that contains the OAuth settings and runtime tokens. |
Request |
Object | Structured Slack message request. Provide DestinationId and Text. You can also supply ThreadTs, ReplyBroadcast (default false), Mrkdwn (default true), UnfurlLinks (default true), and UnfurlMedia (default true). |
| Return | Type | Description |
|---|---|---|
Message |
Object | Slack message response, including channel, ts, text, message, optional raw, and a top-level Flowgear object that carries IsSuccess, Message, and Request metadata for the operation. |
Usage Notes
ListConversationsretrieves its first Slack page before returning and retrieves later pages only as the Workflow consumes rows, so you do not need to manage pagination in the Workflow.ListConversationsreturns zero rows when Slack returns no matching conversations.ListConversationssurfaces the first provider failure instead of normalizing permission, scope, membership, or authentication failures into result rows.PostMessagerequiresRequestto be a JSON object.DestinationIdandTextare required.PostMessageappends a top-levelFlowgearobject to the returned message payload.- Access tokens refresh automatically when Slack indicates that the stored token has expired and a valid
Refresh Tokenis available. - Transient transport failures,
HTTP 429, andHTTP 5xxresponses are retried automatically. When Slack returns aRetry-Afterheader, the Node waits for that delay before retrying. Errors such asinvalid_auth,missing_scope, andchannel_not_foundare not retried.
Known Issues
ListConversationsdepends on the stored Slack installation token carryingchannels:readand, for private channels,groups:read.- This version of the Node is limited to conversation discovery and root message posting. It does not expose message history, thread replies, files, canvases, events, or app-manifest operations.