Slack Post

Slack Post

Certified

Post a Slack message

Sends a message with text, blocks, or attachments. Accepts either raw JSON payload or messageText; channel and thread can also come from the payload. Requires chat: write.

yaml
type: io.kestra.plugin.slack.app.chats.Post

Post a simple text message

yaml
id: slack_post_message
namespace: company.team

tasks:
  - id: post_message
    type: io.kestra.plugin.slack.app.chats.Post
    token: "{{ secret('SLACK_TOKEN') }}"
    channel: "#general"
    messageText: "Hello from Kestra!"

Post a message with custom payload

yaml
id: slack_post_custom
namespace: company.team

tasks:
  - id: post_message
    type: io.kestra.plugin.slack.app.chats.Post
    token: "{{ secret('SLACK_TOKEN') }}"
    channel: "#general"
    payload: |
      {
        "text": "Workflow completed successfully",
        "blocks": [
          {
            "type": "section",
            "text": {
              "type": "mrkdwn",
              "text": "*Status:* :white_check_mark: Success"
            }
          }
        ]
      }

Post a message to a thread

yaml
id: slack_post_thread
namespace: company.team

tasks:
  - id: post_message
    type: io.kestra.plugin.slack.app.chats.Post
    token: "{{ secret('SLACK_TOKEN') }}"
    channel: "#general"
    messageText: "Main message"

  - id: reply_message
    type: io.kestra.plugin.slack.app.chats.Post
    token: "{{ secret('SLACK_TOKEN') }}"
    channel: "#general"
    messageText: "Reply in thread"
    timestamp: "{{ outputs.post_message.timestamp }}"
Properties

Slack token

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Channel to send message

Channel ID or name; can also be set inside the payload.

Message icon emoji

Emoji code (e.g., : wave: ) that overrides iconUrl.

Message icon URL

HTTPS image used as icon when iconEmoji is not provided.

Message Text or JSON String

The message content as a raw string. It can be plain text with markdown, or a JSON object. If not a valid JSON object, it is automatically wrapped in {"text": "..."}. This property is ignored if the payload property is set.

Slack message payload

Thread timestamp to reply to

Slack ts value for replying in a thread; must belong to the same channel.

Display username

Overrides the bot's default display name for this message.

Timestamp of posted message