Slack
Provides integration with Slack by using a curated Slack Web API surface for conversation discovery and message posting.
Revision History
0.0.0.3 - Current release.
Connection
The Connection stores the Slack OAuth settings and the runtime-managed token values used by the Node.
| Property | Type | Description |
|---|---|---|
Workspace Name |
String | The friendly Slack workspace name captured during authorization or connection testing. |
Client ID |
String | The Slack app client identifier used for authorization and token refresh. |
Client Secret |
Masked | The Slack app client secret used for authorization and token refresh. |
Scopes |
String | The space-delimited Slack bot scopes requested during installation. The default value is channels:read chat:write chat:write.public groups:read. |
Access Token |
Masked | The cached Slack access token used for runtime API calls. |
Refresh Token |
Masked | The cached Slack refresh token used when token rotation is enabled. |
Access Token Expires At UTC |
String | The 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 | The Slack Connection that contains the OAuth settings and runtime tokens. |
IncludePublicChannels |
Boolean | When true, public Slack channels are included. |
IncludePrivateChannels |
Boolean | When true, private Slack channels visible to the app are included. |
ExcludeArchived |
Boolean | When true, archived conversations are omitted. |
| 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 | The Slack Connection that contains the OAuth settings and runtime tokens. |
Request |
Object | The structured Slack message request. Provide DestinationId and Text. You can also supply ThreadTs, ReplyBroadcast, Mrkdwn, UnfurlLinks, and UnfurlMedia. |
| Return | Type | Description |
|---|---|---|
Message |
Object | The normalized Slack message response, including channel, ts, text, message, and raw. |
Usage Notes
ListConversationsfollows Slack cursor paging internally, so you do not need to manage pagination in the Workflow.ListConversationsreturns zero rows when Slack returns no matching conversations. Provider failures return one normalized error row instead, so empty results remain distinguishable from permission or authentication failures.PostMessagerequiresRequestto be a JSON object.DestinationIdandTextare required.- Outputs include the standard Flowgear response fields
status,statusMessage, anderrorMessage. - Access tokens refresh automatically when Slack indicates that the stored token has expired and a valid
Refresh Tokenis available.
Examples
Post a message
Use a Request object similar to the following:
{
"DestinationId": "C12345678",
"Text": "Hello from Flowgear",
"Mrkdwn": true,
"UnfurlLinks": true,
"UnfurlMedia": true,
"ReplyBroadcast": false
}
Known Issues
ListConversationsdepends on the stored Slack installation token carrying the required conversation scopes.- 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.