SlackIncomingWebhook
Send a Slack message using an Incoming Webhook.
Add this task to send direct Slack notifications. Check the Slack documentation for more details.
type: "io.kestra.plugin.notifications.slack.SlackIncomingWebhook"
Examples
Send a Slack notification on a failed flow execution.
id: unreliable_flow
namespace: company.team
tasks:
- id: fail
type: io.kestra.plugin.scripts.shell.Commands
runner: PROCESS
commands:
- exit 1
errors:
- id: alert_on_failure
type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook
url: "{{ secret('SLACK_WEBHOOK') }}" # https://hooks.slack.com/services/xzy/xyz/xyz
payload: |
{
"text": "Failure alert for flow {{ flow.namespace }}.{{ flow.id }} with ID {{ execution.id }}"
}
Send a Slack message via incoming webhook with a text argument.
id: slack_incoming_webhook
namespace: company.team
tasks:
- id: send_slack_message
type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook
url: "{{ secret('SLACK_WEBHOOK') }}"
payload: |
{
"text": "Hello from the workflow {{ flow.id }}"
}
Send a Slack message via incoming webhook with a blocks argument, read more on blocks here.
id: slack_incoming_webhook
namespace: company.team
tasks:
- id: send_slack_message
type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook
url: "{{ secret('SLACK_WEBHOOK') }}"
payload: |
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Hello from the workflow *{{ flow.id }}*"
}
}
]
}
Send a Slack message with 'messageText' (handles Slack markdown, no escaping needed)
id: slack_incoming_webhook
namespace: company.team
inputs:
- id: prompt
type: STRING
defaults: Summarize top 5 news from my region.
tasks:
- id: news
type: io.kestra.plugin.openai.Responses
apiKey: "{{ kv('OPENAI_API_KEY') }}"
model: gpt-4.1-mini
input: "{{ inputs.prompt }}"
toolChoice: REQUIRED
tools:
- type: web_search_preview
search_context_size: low
user_location:
type: approximate
city: Berlin
region: Berlin
country: DE
- id: send_via_slack
type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook
url: https://kestra.io/api/mock
messageText: "Current news from Berlin: {{ outputs.news.outputText }}"
Send a Rocket Chat message via Slack incoming webhook.
id: rocket_chat_notification
namespace: company.team
tasks:
- id: send_rocket_chat_message
type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook
url: "{{ secret('ROCKET_CHAT_WEBHOOK') }}"
payload: |
{
"alias": "Kestra TEST",
"avatar": "https://avatars.githubusercontent.com/u/59033362?s=48",
"emoji": ":smirk:",
"roomId": "#my-channel",
"text": "Sample",
"tmshow": true,
"attachments": [
{
"collapsed": false,
"color": "#ff0000",
"text": "Yay!",
"title": "Attachment Example",
"title_link": "https://rocket.chat",
"title_link_download": false,
"fields": [
{
"short": false,
"title": "Test title",
"value": "Test value"
},
{
"short": true,
"title": "Test title",
"value": "Test value"
}
]
}
]
}
Properties
url *Requiredstring
1
Slack incoming webhook URL
Check the Create an Incoming Webhook documentation for more details.
messageText string
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.
options AbstractHttpOptionsTask-RequestOptions
Options
The options to set to customize the HTTP client
payload string
Slack message payload
Definitions
java.nio.charset.Charset
io.kestra.plugin.notifications.AbstractHttpOptionsTask-RequestOptions
connectTimeout string
duration
The time allowed to establish a connection to the server before failing.
connectionPoolIdleTimeout string
PT0S
duration
The time an idle connection can remain in the client's connection pool before being closed.
defaultCharset Charsetstring
UTF-8
The default charset for the request.
headers object
HTTP headers
HTTP headers to include in the request
maxContentLength integerstring
10485760
The maximum content length of the response.
readIdleTimeout string
PT5M
duration
The time allowed for a read connection to remain idle before closing it.
readTimeout string
PT10S
duration
The maximum time allowed for reading data from the server before failing.