---
title: monitor.notify() function
description: monitor.notify() sends a notification to an endpoint and logs it in the notifications measurement in the _monitoring bucket.
url: https://docs.influxdata.com/flux/v0/stdlib/influxdata/influxdb/monitor/notify/
estimated_tokens: 2035
product: Flux
version: v0
---

# monitor.notify() function

-   Flux 0.39.0+
-   View InfluxDB support

`monitor.notify()` sends a notification to an endpoint and logs it in the `notifications` measurement in the `_monitoring` bucket.

##### Function type signature

```js
(
    <-tables: stream[E],
    data: A,
    endpoint: (<-: stream[{B with _time: C, _time: time, _status_timestamp: int, _measurement: string}]) => stream[D],
) => stream[D] where A: Record, D: Record, E: Record
```

For more information, see [Function type signatures](/flux/v0/function-type-signatures/).

## Parameters

### endpoint

(Required) A function that constructs and sends the notification to an endpoint.

### data

(Required) Notification data to append to the output.

This data specifies which notification rule and notification endpoint to associate with the sent notification. The data record must contain the following properties:

-   \_notification\_rule\_id
-   \_notification\_rule\_name
-   \_notification\_endpoint\_id
-   \_notification\_endpoint\_name The InfluxDB monitoring and alerting system uses `monitor.notify()` to store information about sent notifications and automatically assigns these values. If writing a custom notification task, we recommend using **unique arbitrary** values for data record properties.

### tables

Input data. Default is piped-forward data (`<-`).

## Examples

### Send critical status notifications to Slack

```js
import "influxdata/influxdb/monitor"
import "influxdata/influxdb/secrets"
import "slack"

token = secrets.get(key: "SLACK_TOKEN")

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

notification_data = {
    _notification_rule_id: "0000000000000001",
    _notification_rule_name: "example-rule-name",
    _notification_endpoint_id: "0000000000000002",
    _notification_endpoint_name: "example-endpoint-name",
}

monitor.from(range: -5m, fn: (r) => r._level == "crit")
    |> range(start: -5m)
    |> monitor.notify(endpoint: endpoint, data: notification_data)
```
