
Slack AppendStream
CertifiedAppend to a Slack stream
Slack AppendStream
Append to a Slack stream
Adds markdown to an active streaming message started with StartStream. Requires the original channel and timestamp and chat: write; fails if the stream is already stopped.
type: io.kestra.plugin.slack.app.chats.AppendStreamExamples
Append to an existing stream
id: slack_append_stream
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 successfully"
Multiple appends to a stream
id: slack_multi_append_stream
namespace: company.team
tasks:
- id: start_stream
type: io.kestra.plugin.slack.app.chats.StartStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "#general"
markdownText: "Starting data processing..."
- id: append_step1
type: io.kestra.plugin.slack.app.chats.AppendStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "{{ outputs.start_stream.channel }}"
timestamp: "{{ outputs.start_stream.timestamp }}"
markdownText: "\\nFetching data from source..."
- id: append_step2
type: io.kestra.plugin.slack.app.chats.AppendStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "{{ outputs.start_stream.channel }}"
timestamp: "{{ outputs.start_stream.timestamp }}"
markdownText: "\\nProcessing 1000 records..."
- 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: "\\n✅ Processing complete!"
Stream progress updates
id: slack_stream_progress
namespace: company.team
tasks:
- id: start_stream
type: io.kestra.plugin.slack.app.chats.StartStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "#general"
markdownText: "Starting long-running process..."
- id: update_progress
type: io.kestra.plugin.slack.app.chats.AppendStream
token: "{{ secret('SLACK_TOKEN') }}"
channel: "{{ outputs.start_stream.channel }}"
timestamp: "{{ outputs.start_stream.timestamp }}"
markdownText: "\\nProgress: {{ taskrun.value }}%"
Properties
channel *string
Stream channel
Channel ID or name where the stream was started.
markdownText *string
Markdown to append
Additional markdown content appended to the stream.
timestamp *string
Stream message timestamp
Slack ts returned by StartStream.
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
{}1150Outputs
channel *string
Stream channel
timestamp *string
Stream message timestamp