docs-v2/content/v2.0/reference/flux/stdlib/slack/endpoint.md

2.4 KiB

title description aliases menu weight v2.0/tags
slack.endpoint() function The `slack.endpoint()` function sends a message to Slack that includes output data.
/v2.0/reference/flux/functions/slack/endpoint/
v2_0_ref
name parent
slack.endpoint Slack
202
endpoints

The slack.endpoint() function sends a message to Slack that includes output data.

Function type: Output

import "slack"

slack.endpoint(
  url: "https://slack.com/api/chat.postMessage",
  token: "mySuPerSecRetTokEn"
)

Parameters

url

The Slack API URL. Defaults to https://slack.com/api/chat.postMessage.

{{% note %}} If using a Slack webhook, you'll receive a Slack webhook URL when you create an incoming webhook. {{% /note %}}

Data type: String

token

The Slack API token used to interact with Slack. Defaults to "".

{{% note %}} A token is only required if using the Slack chat.postMessage API. {{% /note %}}

Data type: String

Usage

slack.endpoint is a factory function that outputs another function. The output function requires a mapFn parameter.

mapFn

A function that builds the object used to generate the POST request. Requires an r parameter.

{{% note %}} You should rarely need to override the default mapFn parameter. To see the default mapFn value or for insight into possible overrides, view the slack.endpoint() source code. {{% /note %}}

Data type: Function

The returned object must include the following fields:

  • username
  • channel
  • workspace
  • text
  • iconEmoji
  • color

For more information, see slack.message()

Examples

Send critical statuses to a Slack endpoint
import "slack"
import "influxdata/influxdb/secrets"

token = secrets.get(key: "SLACK_TOKEN")
e = slack.endpoint(token: token)

crit_statuses = from(bucket: "example-bucket")
  |> range(start: -1m)
  |> filter(fn: (r) => r._measurement == "statuses" and status == "crit")

crit_statuses
  |> e(mapFn: (r) => ({
      username: r.username,
      channel: r.channel,
      workspace: r.workspace,
      text: r.text,
      iconEmoji: r.iconEmoji,
      color: r.color,
    })
  )()