docs-v2/content/flux/v0/stdlib/contrib/sranka/teams/endpoint.md

2.5 KiB

title description menu weight flux/v0/tags
teams.endpoint() function `teams.endpoint()` sends a message to a Microsoft Teams channel using data from table rows.
flux_v0_ref
name parent identifier
teams.endpoint contrib/sranka/teams contrib/sranka/teams/endpoint
301
notification endpoints
transformations

teams.endpoint() sends a message to a Microsoft Teams channel using data from table rows.

Usage

teams.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.

mapFn accepts a table row (r) and returns an object that must include the following fields:

  • title
  • text
  • summary

For more information, see teams.message parameters.

Function type signature
(
    url: string,
) => (
    mapFn: (r: A) => {B with title: C, text: string, summary: string},
) => (<-tables: stream[A]) => stream[{A with _sent: string}]

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

Parameters

url

({{< req >}}) Incoming webhook URL.

Examples

Send critical statuses to a Microsoft Teams channel

import "contrib/sranka/teams"

url = "https://outlook.office.com/webhook/example-webhook"
endpoint = teams.endpoint(url: url)

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

crit_statuses
    |> endpoint(
        mapFn: (r) =>
            ({
                title: "Disk Usage",
                text: "Disk usage is: **${r.status}**.",
                summary: "Disk usage is ${r.status}",
            }),
    )()