
Slack Chats StartStream
CertifiedStart a streaming Slack message
Slack Chats StartStream
Start a streaming Slack message
Begins a stream that can be appended (AppendStream) and finalized (StopStream). Requires chat: write; provide channel plus optional thread and recipient identifiers when streaming into channels.
type: io.kestra.plugin.slack.app.chats.StartStreamExamples
Start a stream with markdown text
id: slack_start_stream
namespace: company.team
tasks:
- id: start_stream
type: io.kestra.plugin.slack.app.chats.StartStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "#general"
markdownText: "Starting analysis..."
Start a stream in a thread
id: slack_stream_thread
namespace: company.team
tasks:
- id: post_message
type: io.kestra.plugin.slack.app.chats.Post
token: "{{ secret('SLACK_TOKEN') }}"
channel: "#general"
messageText: "Starting new process"
- id: start_stream
type: io.kestra.plugin.slack.app.chats.StartStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "#general"
timestamp: "{{ outputs.post_message.timestamp }}"
markdownText: "Process details streaming..."
Start a stream and append content
id: slack_stream_workflow
namespace: company.team
tasks:
- id: start_stream
type: io.kestra.plugin.slack.app.chats.StartStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "#general"
markdownText: "Processing workflow..."
- id: append_stream
type: io.kestra.plugin.slack.app.chats.AppendStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "{{ outputs.start_stream.channel }}"
timestamp: "{{ outputs.start_stream.timestamp }}"
markdownText: "Step 1 completed"
- id: stop_stream
type: io.kestra.plugin.slack.app.chats.StopStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "{{ outputs.start_stream.channel }}"
timestamp: "{{ outputs.start_stream.timestamp }}"
markdownText: "All steps completed!"
Installation
Our standard Docker images already include this plugin. If you use a -slim image or another setup, install it with the following command:
kestractl plugins get io.kestra.plugin:plugin-slack --compatible-for $KESTRA_VERSION For kestractl, use your Kestra version with --compatible-for, or specify an exact plugin version.
For Kestra CLI, replace LATEST with a specific version or version range to pin the plugin version.
Properties
token *string
Slack token
assets
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.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset 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.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150channel string
Channel for the stream
Channel ID or name where the streaming message is posted.
markdownText string
Initial markdown content
Markdown body to seed the streaming message.
recipientTeamId string
Recipient team ID
Team ID for the recipient; required alongside recipientUserId for channel streams.
recipientUserId string
Recipient user ID
Required when streaming into channels to target a specific user.
timestamp string
Thread timestamp to reply to
Slack ts to nest the stream inside an existing thread.
Outputs
channel *string
Stream channel
timestamp *string
Stream message timestamp
Use with AppendStream and StopStream.