preview We're still working on this feature, but we'd love for you to try it out!
This feature is currently provided as part of a preview program pursuant to our pre-release policies .
This page provides a comprehensive reference for communication actions available in the workflow automation actions catalog. These actions enable you to integrate communication platforms into your workflow definitions, including sending messages to Slack channels, retrieving reactions, and more.
Prerequisites Before using communication actions in workflow automation, ensure you have:
A Slack workspace with appropriate permissions. A Slack bot token configured as a secret in workflow automation. Access to the Slack channels where you want to send messages. See Add Slack configuration for information on how to set up Slack integration.
Slack actions Post a message to Slack channel Sends a message to a slack channel, with an optional file attachment.
Inputs Outputs Example
Input Field
Optionality
Type
Example
token
Required
secret
${{ :secrets:slackToken }}
channel
Required
string
my-slack-channel
text
Required
string
Hello World!
threadTs
Optional
string
<digits>.<digits>
attachment
Optional
map
attachment.filename
Required
string
file.txt
attachment.content
Required
string
Hello\nWorld!
Important token : The Slack bot token to use. This should be passed as a secret syntax. Refer to Add Slack configuration for instructions on setting up a token.channel : The name of the channel, or a channelID, to send the message. See Slack API for more information.text : The message to be posted to Slack in the specified channel.threadTs : Timestamp belonging to parent message, used to create a message reply in a thread.attachment : Allow attaching a file with a message onto the specified channel.attachment.filename : Specify the filename for the uploaded file in Slack.attachment.content : The content of the file to upload as UTF8.Output Field
Type
Example
threadTs
string
<digits>.<digits>
channelID
string
<string>
Important threadTs : Timestamp of message. May be used in future postMessage calls to post a reply in a thread.channelID : Id of the channel where message is posted.Example 1: Post a message to a slack channel
Workflow example
- name : send_slack_message
action : slack.chat.postMessage
token : $ { { : secrets : slackToken } }
channel : $ { { .workflowInputs.channel } }
text : $ { { .workflowInputs.text } }
Expected inputs:
"value" : "This is my message *with bold text* and `code backticks`"
Expected output:
"threadTs" : "1718897637.400609" ,
"channelID" : "C063JK1RHN1"
Example 2: Attach a file
Workflow example
action : slack.chat.postMessage
token : $ { { : secrets : slackToken } }
text : "Please find the attached file:"
Expected output:
"threadTs" : "1718897637.400609" ,
"channelID" : "C063JK1RHN1"
Get a reaction of a message from Slack channel Get a reaction of a message from Slack channel.
Inputs Outputs Example
Input Field
Optionality
Type
Example
token
Required
secret
${{ :secrets:slackToken }}
channelID
Required
string
C063JK1RHN1
timeout
Optional
int
60
threadTs
Required
string
<digits>.<digits>
selectors
Optional
list
[{\"name\": \"reactions\", \"expression\": \".reactions \"}]
Important token : The Slack bot token to use. This should be passed as a secret syntax. Refer to Add Slack configuration for instructions on setting up a token.channelID : The channelID to get the message reactions.timeout : The time in seconds for how long to wait for any reaction. Default is 60s, maximum allowed is 600s (10min).threadTs : Timestamp belonging to message, used to get reaction of that message.selectors : The selectors to get the only specified parameters as output.Output Field
Type
Example
reactions
list
<list>
Important reactions : List of elements with all the reactions captured or an empty list if timeout occurred.Example 1: Slack get reactions
Workflow example
action : slack.chat.getReactions
token : $ { { : secrets : slackToken } }
channelID : $ { { .steps.promptUser.outputs.channelID } }
threadTs : $ { { .steps.promptUser.outputs.threadTs } }
timeout : $ { { .workflowInputs.timeout } }
selectors : $ { { .workflowInputs.selectors } }
Expected inputs:
"value" : "1718897637.400609"
"value" : "[{\"name\": \"reactions\", \"expression\": \".reactions \"}]"
Expected output:
Or if it is timed out: