Slack SlackIncomingWebhook

Slack SlackIncomingWebhook

Certified

Send a Slack message using an Incoming Webhook

Add this task to send direct Slack notifications. Check the Slack documentation for more details.

yaml
type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook

Send a Slack message via incoming webhook with a text argument with 'messageText' (handles Slack markdown, no escaping needed)

yaml
id: slack_incoming_webhook
namespace: company.team

tasks:
  - id: send_slack_message
    type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook
    url: "{{ secret('SLACK_WEBHOOK') }}"
    messageText: "Hello from the workflow {{ flow.id }}"

Send a Slack notification on a failed flow execution with payload.

yaml
id: unreliable_flow
namespace: company.team

tasks:
  - id: fail
    type: io.kestra.plugin.scripts.shell.Commands
    taskRunner:
      type: io.kestra.plugin.core.runner.Process
    commands:
      - exit 1

errors:
  - id: alert_on_failure
    type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook
    url: "{{ secret('SLACK_WEBHOOK') }}" # https://hooks.slack.com/services/xzy/xyz/xyz
    messageText: "Failure alert for flow {{ flow.namespace }}.{{ flow.id }} with ID {{ execution.id }}"

Send a Slack message via incoming webhook with a blocks argument, read more on blocks here.

yaml
id: slack_incoming_webhook
namespace: company.team

tasks:
  - id: send_slack_message
    type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook
    url: "{{ secret('SLACK_WEBHOOK') }}"
    payload: |
      {
        "blocks": [
          {
            "type": "header",
            "text": {
              "type": "plain_text",
              "text": "Workflow completed: {{ flow.id }}"
            }
          },
          {
            "type": "divider"
          },
          {
            "type": "section",
            "fields": [
              {
                "type": "mrkdwn",
                "text": "*Namespace:*\n{{ flow.namespace }}"
              },
              {
                "type": "mrkdwn",
                "text": "*Execution ID:*\n{{ execution.id }}"
              },
              {
                "type": "mrkdwn",
                "text": "*Status:*\n{{ execution.state }}"
              },
              {
                "type": "mrkdwn",
                "text": "*Start time:*\n{{ execution.startDate }}"
              }
            ]
          },
          {
            "type": "context",
            "elements": [
              {
                "type": "mrkdwn",
                "text": "Triggered by Kestra"
              }
            ]
          }
        ]
      }

Send a Slack message through an outbound HTTP proxy.

yaml
id: slack_via_proxy
namespace: company.team

tasks:
  - id: send_slack_message
    type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook
    url: "{{ secret('SLACK_WEBHOOK') }}"
    messageText: "Hello from behind a proxy!"
    options:
      proxy:
        address: "10.10.10.254"
        port: 3128
        type: HTTP

Send a Slack message through an authenticated outbound HTTP proxy.

yaml
id: slack_via_authenticated_proxy
namespace: company.team

tasks:
  - id: send_slack_message
    type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook
    url: "{{ secret('SLACK_WEBHOOK') }}"
    messageText: "Hello from behind an authenticated proxy!"
    options:
      proxy:
        address: "10.10.10.254"
        port: 3128
        type: HTTP
        username: "{{ secret('PROXY_USER') }}"
        password: "{{ secret('PROXY_PASSWORD') }}"

Send a Rocket Chat message via Slack incoming webhook.

yaml
id: rocket_chat_notification
namespace: company.team
tasks:
  - id: send_rocket_chat_message
    type: io.kestra.plugin.slack.notifications.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
Min length1

Slack incoming webhook URL

Check the Create an Incoming Webhook documentation for more details.

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

The options to set to customize the HTTP client

Definitions
connectTimeoutstring

The time allowed to establish a connection to the server before failing

connectionPoolIdleTimeoutstring
DefaultPT0S

The time an idle connection can remain in the client's connection pool before being closed

defaultCharsetstring
DefaultUTF-8

The default charset for the request

headersobject

HTTP headers

HTTP headers to include in the request

maxContentLengthintegerstring
Default10485760

The maximum content length of the response

proxy

Proxy configuration

The proxy configuration used to route outbound HTTP requests. Useful when Kestra runs in a network that requires an outbound proxy to reach the internet.

addressstring

Proxy host

The hostname or IP address of the proxy server.

passwordstring

Proxy password

The password for proxy authentication (optional).

portintegerstring

Proxy port

The port of the proxy server.

typestring
DefaultHTTP
Possible Values
HTTPSOCKS

Proxy type

The type of proxy: HTTP or SOCKS.

usernamestring

Proxy username

The username for proxy authentication (optional).

readIdleTimeoutstring
DefaultPT5M

The time allowed for a read connection to remain idle before closing it

readTimeoutstring
DefaultPT10S

The maximum time allowed for reading data from the server before failing

Slack message payload

Reference (ref) of the pluginDefaults to apply to this task.