Slack

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.1.0.0 - Added explicit eager first-page handling with lazy cursor continuation.
0.0.0.5 - Restarted the V2 contract so query rows stay provider-shaped and mutation rows use the top-level Flowgear object.
0.0.0.4 - Standardized the public V2 help article.
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 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 Connection so Access Token, Refresh Token, and Workspace Name are populated.
  • Re-authorize the app after you change scopes so Slack issues a token that includes the updated permissions.
  • Use the Connection test 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.
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 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, Mrkdwn, UnfurlLinks, and UnfurlMedia.
Return Type Description
Message Object Slack message response, including channel, ts, text, message, optional raw, and a top-level Flowgear object that carries the default operation success or failure metadata.

Usage Notes

  • ListConversations fetches its first provider page while the Node invoke is awaited. It follows later Slack cursors only as the output is consumed, so you do not need to manage pagination in the Workflow.
  • ListConversations returns zero rows when Slack returns no matching conversations.
  • ListConversations surfaces the first provider failure instead of normalizing permission, scope, membership, or authentication failures into result rows.
  • PostMessage requires Request to be a JSON object. DestinationId and Text are required.
  • PostMessage appends a top-level Flowgear object to the returned message payload instead of emitting top-level legacy status fields.
  • Access tokens refresh automatically when Slack indicates that the stored token has expired and a valid Refresh Token is available.

Known Issues

  • ListConversations depends 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.