docs-v2/content/flux/v0/stdlib/slack/endpoint.md

2.5 KiB

title description menu weight flux/v0/tags
slack.endpoint() function `slack.endpoint()` returns a function that can be used to send a message to Slack per input row.
flux_v0_ref
name parent identifier
slack.endpoint slack slack/endpoint
101
notification endpoints
transformations

slack.endpoint() returns a function that can be used to send a message to Slack per input row.

Each output row includes a _sent column that indicates if the message for that row was sent successfully.

Usage

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

mapFn

A function that builds the record used to generate the POST request.

mapFn accepts a table row (r) and returns a record that must include the following properties:

  • channel
  • color
  • text
Function type signature
(
    ?token: string,
    ?url: string,
) => (
    mapFn: (r: A) => {B with text: D, color: string, channel: C},
) => (<-tables: stream[A]) => stream[{A with _sent: string}]

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

url

Slack API URL. Default is https://slack.com/api/chat.postMessage.

If using the Slack webhook API, this URL is provided ine Slack webhook setup process.

token

Slack API token. Default is "".

If using the Slack Webhook API, a token is not required.

Examples

Send status alerts to a Slack endpoint

import "sampledata"
import "slack"

data =
    sampledata.int()
        |> map(fn: (r) => ({r with status: if r._value > 15 then "alert" else "ok"}))
        |> filter(fn: (r) => r.status == "alert")

data
    |> slack.endpoint(token: "mY5uP3rSeCr37T0kEN")(
        mapFn: (r) => ({channel: "Alerts", text: r._message, color: "danger"}),
    )()