Skip to main content

Slack Connector

Slack Slack is a messaging platform. This component allows posting messages to Slack channels, managing conversations, files, and users, and receiving real-time events through webhooks and polling triggers.

API Documentation​

This component was built using the following API References:

Connections​

OAuth 2.0​

Authenticate requests to Slack using OAuth 2.0.

The vast majority of actions in this component use OAuth 2.0 for authentication.

Prerequisites​

Setup Steps​

  1. Navigate to the Slack Developer App Portal
  2. Click Create New App
  3. Choose to create the app From scratch
  4. Give the app a name and select the workspace. It will be configured to be multi-workspace capable in a moment
  5. Select OAuth & Permissions from the sidebar
    1. Under Redirect URLs, add https://oauth2.integrations.acme.com/callback.
    2. At the bottom, add some User Token Scopes if the integration will send messages on behalf of users, or Bot Token Scopes if a Slack "bot" will send the messages. The scopes required depend on what types of things the Slack integration will need to do (create channels, send messages, etc). For sending messages to a channel as a bot, add these scopes: chat:write chat:write.public. To send messages as a user, see the section below.
  6. Next, select Distribute App under Manage Distribution. Confirm that "removed hard coded information" is checked and select Activate Public Distribution.
  7. Finally, open Basic Information. Copy the Client ID, Client Secret and Signing Secret.

Public Distribution Requirement​

Activate public distribution before deploying to customers. Without it, the app is locked to the single workspace. Users in any other Slack workspace cannot install or authenticate with the integration.

What users see without public distribution: If a user in another workspace attempts to install the app, they reach a Slack error page before the OAuth consent screen loads. The installation is blocked entirely.

This activation step does not require Slack's review or approval. It is a configuration toggle that must be explicitly enabled.

Separately, if the app is intended to be listed in the Slack App Directory, a formal Slack review is required. App Directory listing is optional. Apps with public distribution enabled can be distributed to customers and installed in any workspace without being listed in the directory.

Configure the Connection​

Add a Slack step to the integration. This creates a connection config variable. Open the connection config variable.

  • Enter the Client ID, Signing Secret and Client Secret from the Slack app
  • For Scopes, enter the required scopes based on what Slack actions the integration includes:
    • For sending messages to a channel, enter the scopes chat:write chat:write.public to assign a bot token that can write messages to public channels. See below for information on sending messages to private channels.
    • Conversation and channel-related actions require admin.conversations:write.
    • Enter scopes with spaces in between them (e.g. chat:write users:read users:read.email)

A list of all Slack OAuth scopes and what each does are available in the Slack documentation.

Sending messages to private channels​

The chat:write.public scope allows the bot to send messages to public channels. To send messages to private channels, or to be more selective about what channels the bot can send messages to, the bot must be invited to specific channels.

If a bot does not have chat:write.public or tries to write to a private channel it's not a part of, a not_in_channel error will be received from Slack when attempting to send a message to that channel.

Sending messages as a user​

Slack applications typically send messages as bot users. To instead send messages as a user, edit the Auth URL and add chat:write to a user_scope query parameter on the Authorization URL to get a User token. To manage channels, add the channels:write scope.

The Auth URL, then, will look something like this: https://slack.com/oauth/v2/authorize?user_scope=chat:write

Dynamically changing the bot's name​

The bot's username and icon are set when creating the Slack app. To override the bot's username within the integration, request the chat:write.customize scope in addition to chat:write.

Enterprise Grid​

A Slack app can be installed into a single workspace, which is the default described above, or across an entire Enterprise Grid organization. Installing per workspace on a Grid workspace needs no extra configuration.

To install org-wide instead:

  1. In the Slack app, select OAuth & Permissions and confirm at least one Bot Token Scope is set
  2. Select Org Level Apps from the sidebar, choose Opt-In, then confirm Yes, Opt-in
  3. Have an Org Admin install the app to the organization rather than to a single workspace

Two things change once the token is org-level:

  • Team ID becomes required. Slack can no longer infer which workspace to act on, so actions that expose a Team ID input need a value. The List Teams action returns the available IDs, and the Team ID input offers them in a dropdown. A workspace-level token accepts and ignores Team ID, so it is safe to always set it.
  • Admin scopes become available. Admin actions only work on an org-level install. List Teams requires admin.teams:read and Search Conversation requires admin.conversations:read. Other admin.* methods can be reached through the Raw Request action once the matching scope is added.

GovSlack​

Slack offers GovSlack for government organizations that require compliance with FIPS 140-2, FedRAMP, ITAR, etc. To use the Slack component with GovSlack, change the beginning of OAuth auth URL, token URL, and revoke URL from https://slack.com to https://slack-gov.com. The component will automatically point API requests towards the Slack Gov API endpoint.

This connection uses OAuth 2.0, a common authentication mechanism for integrations. Read about how OAuth 2.0 works here.

InputCommentsDefault
Authorize URLThe OAuth 2.0 Authorization URL for Slack. To request access to the API on behalf of a User, append a user_scope query parameter to the end of the Authorize URL (e.g., https://slack.com/oauth/v2/authorize?user_scope=chat:write,channels:read,groups:read,im:read,mpim:read). For GovSlack, change the domain from slack.com to slack-gov.com.https://slack.com/oauth/v2/authorize
Token URLThe OAuth 2.0 Token URL for Slack. For GovSlack, change the domain from slack.com to slack-gov.com.https://slack.com/api/oauth.v2.access
Revoke URLThe OAuth 2.0 Revocation URL for Slack. For GovSlack, change the domain from slack.com to slack-gov.com.https://slack.com/api/auth.revoke
Scopes (Bot)A space-delimited set of one or more scopes used to obtain the Bot token. To access the API as a User, append a user_scope query parameter to the Authorize URL and set the 'Is User' flag to true.chat:write chat:write.public chat:write.customize channels:read groups:read im:read mpim:read
Client IDThe client ID issued by Slack for the OAuth 2.0 application.
Client SecretThe client secret issued by Slack for the OAuth 2.0 application.
Signing SecretThe signing secret used to verify the authenticity of inbound webhook requests from Slack.
Is UserWhen true, requests access to the API as a User instead of a Bot. When enabled, the Authorize URL must include a user_scope query parameter. Leaving this false grants a Bot token instead.false

Webhook URL​

Authenticate requests to Slack using a Webhook URL.

The Slack Message from Webhook and the Slack Block Message from Webhook actions are the only Slack actions that do not authenticate with OAuth. Instead, these actions use Slack Incoming Webhooks.

Prerequisites​

  • A Slack workspace with administrator access
  • Ability to create Slack apps in the workspace

Setup Steps​

To generate a Slack incoming webhook URL:

  1. Navigate to the Slack App Portal
  2. Click Create New App, adding an app to the workspace
  3. Under Add features and functionality select Incoming Webhooks
  4. Activate Incoming Webhooks and then Add New Webhook to Workspace
  5. Select the channel where messages will be posted
  6. Copy the Webhook URL. It should be of the form https://hooks.slack.com/services/foo/bar/baz

Configure the Connection​

  • Enter the Webhook URL into the connection configuration
InputCommentsDefault
Webhook URLThe Slack webhook URL. Instructions for generating a Slack webhook are available on the Slack component docs page.

Triggers​

Events API Webhook​

Receive and validate event notifications from Slack's Events API for manually configured webhook subscriptions. Handles URL verification challenges automatically.

InputCommentsDefault
ConnectionThe Slack connection to use.

New and Updated Messages​

Checks for new messages in a selected Slack channel on a configured schedule. Messages are emitted in the 'created' bucket; the 'updated' bucket is preserved for shape parity but is always empty because Slack's conversations.history endpoint returns immutable history (use the Events API Webhook trigger to receive message_changed events).

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel IDThe static ID of the Slack channel.
Show New RecordsWhen true, new messages in the channel are included in the trigger output.true
Show Updated RecordsWhen true, includes updated messages in the trigger output. Reserved for shape consistency with other polling triggers — Slack messages are immutable through conversations.history, so the updated bucket is always empty (use the webhook trigger to receive message_changed events).true
Look-back DateThe date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each record created on or after this date once.

Slash Command Webhook​

Receive slash command and modal interaction requests from Slack for manually configured webhook endpoints.

InputCommentsDefault
Response BodyThe response body to return to Slack. Leave empty for no response body.
Content TypeThe content type of the response returned to Slack.text/plain

Actions​

Archive Conversation​

Archive an existing conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.

Close Conversation​

Close an existing conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Conversation NameThe display name for the Slack conversation.

Conversation Exists​

Returns true if the conversation already exists.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.

Create Conversation​

Create a new conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Conversation NameThe display name for the Slack conversation.
Is PrivateWhen true, the Slack conversation will be private.false
Team IDThe unique identifier for the Slack team. Required when an org-level token is used; ignored on a workspace-level token.

Delete Message​

Delete the content and metadata of an existing message.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel IDThe static ID of the Slack channel.
Message IDThe unique identifier of a message or thread to reply to (thread_ts).

Delete Pending Scheduled Message​

Delete the content and metadata of a pending scheduled message from a queue.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel IDThe static ID of the Slack channel.
Message IDThe unique identifier of a message or thread to reply to (thread_ts).

Get Conversation History​

Get the history of a conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
Fetch AllWhen true, fetches all pages of results.false
PaginationCursor and page-size controls for paging through results.
LimitThe maximum number of results to return.
CursorThe pagination cursor from a previous request.
Include All MetadataWhen true, includes all metadata in results.false
Time RangeTimestamp bounds and inclusivity for the messages returned in results.
OldestOnly messages after this Unix timestamp will be included in results.
LatestOnly messages before this Unix timestamp will be included in results. Default is current time.
InclusiveWhen true, includes messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified.false

Get User By Email​

Get a user's information by email.

InputCommentsDefault
ConnectionThe Slack connection to use.
EmailThe email address of the user.

Get User By ID​

Get a user's information by ID.

InputCommentsDefault
ConnectionThe Slack connection to use.
User IDThe unique identifier for the Slack user.

Invite User to Conversation​

Invite a user to an existing conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
User IDThe unique identifier for the Slack user.

Leave Conversation​

Leave an existing conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.

List Conversation Members​

List all members of a conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
Fetch AllWhen true, fetches all pages of results.false
PaginationCursor and page-size controls for paging through results.
LimitThe maximum number of results to return.
CursorThe pagination cursor from a previous request.

List Conversations​

List all conversations.

InputCommentsDefault
ConnectionThe Slack connection to use.
Fetch AllWhen true, fetches all pages of results.false
PaginationCursor and page-size controls for paging through results.
LimitThe maximum number of results to return.
CursorThe pagination cursor from a previous request.
Team IDThe unique identifier for the Slack team. Required when an org-level token is used; ignored on a workspace-level token.
Exclude ArchivedWhen true, archived results will be excluded from the result set.false
Channel TypesWhich channel types to include in results: public, private, multi-party IM, and IM channels.
Include Public ChannelsWhen true, includes public channels in results.true
Include Private ChannelsWhen true, includes private channels in results.false
Include Multi-Party IM ChannelsWhen true, includes multi-party IM (mpim) channels in results.false
Include IM ChannelsWhen true, includes direct message (IM) channels in results.false

List Files​

List all available files.

InputCommentsDefault
ConnectionThe Slack connection to use.
Fetch AllWhen true, fetches all pages of results.false
CursorThe pagination cursor from a previous request.

List Scheduled Messages​

List all scheduled messages.

InputCommentsDefault
ConnectionThe Slack connection to use.

List Teams​

List the workspaces in an Enterprise Grid organization along with their team IDs.

InputCommentsDefault
ConnectionThe Slack connection to use.
Fetch AllWhen true, fetches all pages of results.false
PaginationCursor and page-size controls for paging through results.
LimitThe maximum number of results to return.
CursorThe pagination cursor from a previous request.

List User Conversations​

List all conversations for a user.

InputCommentsDefault
ConnectionThe Slack connection to use.
User IDThe unique identifier for the Slack user.
Fetch AllWhen true, fetches all pages of results.false
PaginationCursor and page-size controls for paging through results.
LimitThe maximum number of results to return.
CursorThe pagination cursor from a previous request.
Team IDThe unique identifier for the Slack team. Required when an org-level token is used; ignored on a workspace-level token.

List Users​

List all users in the workspace.

InputCommentsDefault
ConnectionThe Slack connection to use.
Fetch AllWhen true, fetches all pages of results.false
PaginationCursor and page-size controls for paging through results.
LimitThe maximum number of results to return.
CursorThe pagination cursor from a previous request.
Team IDThe unique identifier for the Slack team. Required when an org-level token is used; ignored on a workspace-level token.

Open View​

Open a view for a user.

InputCommentsDefault
ConnectionThe Slack connection to use.
Trigger IDThe short-lived token used to exchange for posting a view to the user.
ViewA view payload. This must be a JSON-encoded string.
{
"type": "modal",
"title": {
"type": "plain_text",
"text": "Modal title"
},
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "It's Block Kit...but in a modal"
},
"block_id": "section1",
"accessory": {
"type": "button",
"text": {
"type": "plain_text",
"text": "Click me"
},
"action_id": "button_abc",
"value": "Button value",
"style": "danger"
}
},
{
"type": "input",
"label": {
"type": "plain_text",
"text": "Input label"
},
"element": {
"type": "plain_text_input",
"action_id": "input1",
"placeholder": {
"type": "plain_text",
"text": "Type in here"
},
"multiline": false
},
"optional": false
}
],
"close": {
"type": "plain_text",
"text": "Cancel"
},
"submit": {
"type": "plain_text",
"text": "Save"
},
"private_metadata": "Shhhhhhhh",
"callback_id": "view_identifier_12"
}

Post Block Message​

Post a block-formatted message to a Slack channel.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
BlocksA JSON array containing blocks (objects) that make up the desired message. Use Slack's Block Kit Builder to build block messages.
{
"blocks": [
{
"type": "section",
"text": {
"type": "plain_text",
"text": "Hello world"
}
}
]
}
Alt MessageThe fallback message used when the block message cannot be rendered.
Bot UsernameThe username of the bot the message will be sent from. This requires the 'chat:write.customize' scope.
Message IDThe unique identifier of a message or thread to reply to (thread_ts).

Post Ephemeral Message​

Post an ephemeral message to a user or channel.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
User IDThe unique identifier for the Slack user.
MessageThe message to send the Slack channel.
Bot UsernameThe username of the bot the message will be sent from. This requires the 'chat:write.customize' scope.

Post Message​

Post a message to a Slack channel.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
MessageThe message to send the Slack channel.
Bot UsernameThe username of the bot the message will be sent from. This requires the 'chat:write.customize' scope.
Message IDThe unique identifier of a message or thread to reply to (thread_ts).

Post Slack Block Message From Webhook​

Post a block-formatted message to a Slack channel from a webhook URL.

InputCommentsDefault
ConnectionThe Slack connection to use.
Alt MessageThe fallback message used when the block message cannot be rendered.
BlocksA JSON array containing blocks (objects) that make up the desired message. Use Slack's Block Kit Builder to build block messages.
{
"blocks": [
{
"type": "section",
"text": {
"type": "plain_text",
"text": "Hello world"
}
}
]
}

Post Slack Message From Webhook​

Post a message to a Slack channel from a webhook URL.

InputCommentsDefault
ConnectionThe Slack connection to use.
MessageThe message to send the Slack channel.

Publish View​

Publish a static view for a user.

InputCommentsDefault
ConnectionThe Slack connection to use.
User IDThe unique identifier for the Slack user.
ViewA view payload. This must be a JSON-encoded string.
{
"type": "modal",
"title": {
"type": "plain_text",
"text": "Modal title"
},
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "It's Block Kit...but in a modal"
},
"block_id": "section1",
"accessory": {
"type": "button",
"text": {
"type": "plain_text",
"text": "Click me"
},
"action_id": "button_abc",
"value": "Button value",
"style": "danger"
}
},
{
"type": "input",
"label": {
"type": "plain_text",
"text": "Input label"
},
"element": {
"type": "plain_text_input",
"action_id": "input1",
"placeholder": {
"type": "plain_text",
"text": "Type in here"
},
"multiline": false
},
"optional": false
}
],
"close": {
"type": "plain_text",
"text": "Cancel"
},
"submit": {
"type": "plain_text",
"text": "Save"
},
"private_metadata": "Shhhhhhhh",
"callback_id": "view_identifier_12"
}

Push View​

Push a view onto the stack of a root view.

InputCommentsDefault
ConnectionThe Slack connection to use.
Trigger IDThe short-lived token used to exchange for posting a view to the user.
ViewA view payload. This must be a JSON-encoded string.
{
"type": "modal",
"title": {
"type": "plain_text",
"text": "Modal title"
},
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "It's Block Kit...but in a modal"
},
"block_id": "section1",
"accessory": {
"type": "button",
"text": {
"type": "plain_text",
"text": "Click me"
},
"action_id": "button_abc",
"value": "Button value",
"style": "danger"
}
},
{
"type": "input",
"label": {
"type": "plain_text",
"text": "Input label"
},
"element": {
"type": "plain_text_input",
"action_id": "input1",
"placeholder": {
"type": "plain_text",
"text": "Type in here"
},
"multiline": false
},
"optional": false
}
],
"close": {
"type": "plain_text",
"text": "Cancel"
},
"submit": {
"type": "plain_text",
"text": "Save"
},
"private_metadata": "Shhhhhhhh",
"callback_id": "view_identifier_12"
}

Raw Request​

Send raw HTTP request to Slack.

InputCommentsDefault
ConnectionThe Slack connection to use.
URLThe path portion of the Slack API URL only (e.g., /team.info). The base URL is taken from the connection (https://slack.com/api, or the Slack Gov equivalent) and is already included. For example, to call https://slack.com/api/team.info, enter only /team.info here.
MethodThe HTTP method to use.
DataThe HTTP body payload to send to the URL.
Form DataThe Form Data to be sent as a multipart form upload.
File DataFile Data to be sent as a multipart form upload.
File Data File NamesFile names to apply to the file data inputs. Keys must match the file data keys above.
Query ParameterA list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.
HeaderA list of headers to send with the request.
Response TypeThe type of data you expect in the response. You can request json, text, or binary data.json
TimeoutThe maximum time that a client will await a response to its request
Retry Delay (ms)The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.0
Retry On All ErrorsIf true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.false
Max Retry CountThe maximum number of retries to attempt. Specify 0 for no retries.0
Use Exponential BackoffSpecifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.false

Rename Conversation​

Rename an existing conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Conversation NameThe display name for the Slack conversation.
New Conversation NameThe display name for the Slack conversation.

Search All​

Searches for messages and files matching a query.

InputCommentsDefault
ConnectionThe Slack connection to use.
QueryThe search query. May contain boolean operators (AND, OR, NOT) and modifiers.
PaginationPage and page-size controls.
CountThe number of items to return per page.
PageThe page number of results to return (1-based).1
HighlightWhen true, enables query highlight markers in results.false
SortThe method to sort the results. For example, member_count will sort by the number of members in the channel.score
Sort DirectionThe direction to sort the results. For example, desc will sort the results in descending order.desc
Team IDThe encoded team ID to search in. Required when an org-level token is used.

Search Conversation​

Search for public or private channels in an Enterprise organization.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
PaginationCursor and page-size controls for paging through results.
LimitThe maximum number of results to return.
CursorThe pagination cursor from a previous request.
Connected Team IDsAn array of encoded team IDs identifying external orgs to search through.
Search Channel TypesThe type of channel to include or exclude in the search. For example, private will search private channels, while private_exclude will exclude them.
SortThe method to sort the results. For example, member_count will sort by the number of members in the channel.member_count
Sort DirectionThe direction to sort the results. For example, desc will sort the results in descending order.desc
Team IDsAn array of team IDs identifying internal workspaces to search through.
Total Count OnlyWhen true, returns only the total_count of channels. Omits channel data and allows access for admins without channel manager permissions.false

Search Files​

Searches for files matching a query.

InputCommentsDefault
ConnectionThe Slack connection to use.
QueryThe search query. May contain boolean operators (AND, OR, NOT) and modifiers.
PaginationPage and page-size controls.
CountThe number of items to return per page.
PageThe page number of results to return (1-based).1
HighlightWhen true, enables query highlight markers in results.false
SortThe method to sort the results. For example, member_count will sort by the number of members in the channel.score
Sort DirectionThe direction to sort the results. For example, desc will sort the results in descending order.desc
Team IDThe encoded team ID to search in. Required when an org-level token is used.

Search Messages​

Searches for messages matching a query.

InputCommentsDefault
ConnectionThe Slack connection to use.
QueryThe search query. May contain boolean operators (AND, OR, NOT) and modifiers.
PaginationPage and page-size controls.
CountThe number of items to return per page.
PageThe page number of results to return (1-based).1
HighlightWhen true, enables query highlight markers in results.false
SortThe method to sort the results. For example, member_count will sort by the number of members in the channel.score
Sort DirectionThe direction to sort the results. For example, desc will sort the results in descending order.desc
Team IDThe encoded team ID to search in. Required when an org-level token is used.

Set Conversation Purpose​

Set the purpose of an existing conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
Conversation PurposeThe purpose statement describing the conversation's intent.

Set Conversation Topic​

Set the topic of an existing conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel Name or IDThe name or static ID of the Slack channel.
User IDThe unique identifier for the Slack user.
Conversation TopicThe topic shown at the top of the conversation.

Update Message​

Update the contents of an existing message.

InputCommentsDefault
ConnectionThe Slack connection to use.
Channel IDThe static ID of the Slack channel.
Message IDThe unique identifier of a message or thread to reply to (thread_ts).
MessageThe message to send the Slack channel.

Update View​

Update an existing view.

InputCommentsDefault
ConnectionThe Slack connection to use.
ViewA view payload. This must be a JSON-encoded string.
{
"type": "modal",
"title": {
"type": "plain_text",
"text": "Modal title"
},
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "It's Block Kit...but in a modal"
},
"block_id": "section1",
"accessory": {
"type": "button",
"text": {
"type": "plain_text",
"text": "Click me"
},
"action_id": "button_abc",
"value": "Button value",
"style": "danger"
}
},
{
"type": "input",
"label": {
"type": "plain_text",
"text": "Input label"
},
"element": {
"type": "plain_text_input",
"action_id": "input1",
"placeholder": {
"type": "plain_text",
"text": "Type in here"
},
"multiline": false
},
"optional": false
}
],
"close": {
"type": "plain_text",
"text": "Cancel"
},
"submit": {
"type": "plain_text",
"text": "Save"
},
"private_metadata": "Shhhhhhhh",
"callback_id": "view_identifier_12"
}
View IDThe unique identifier of the view to be updated. Either view_id or external_id is required.
External IDA custom external identifier assigned to the view. Either view_id or external_id is required.

Upload File​

Upload a new file to a Slack conversation.

InputCommentsDefault
ConnectionThe Slack connection to use.
File ContentThe binary data of the file to upload.
File NameThe name to assign to the uploaded file.
File TitleThe title of the file as it will appear in the channel.
ChannelsA comma-separated list of channel IDs that the file will be shared in.
Initial CommentThe message text introducing the file in the specified channels when uploaded.
Thread ReplyAnother message's ts value to upload this file as a reply. Never use a reply's ts value — use the parent instead.