diff --git a/content/v2.0/reference/flux/functions/built-in/transformations/range.md b/content/v2.0/reference/flux/functions/built-in/transformations/range.md
index bb7a142b4..371cce541 100644
--- a/content/v2.0/reference/flux/functions/built-in/transformations/range.md
+++ b/content/v2.0/reference/flux/functions/built-in/transformations/range.md
@@ -26,26 +26,24 @@ range(start: -15m, stop: now())
## Parameters
### start
-Specifies the oldest time to be included in the results.
+The earliest time to include in results.
+Use a relative duration or absolute time.
+For example, `-1h` or `2019-08-28T22:00:00Z`.
+Durations are relative to `now()`.
-Relative start times are defined using negative durations.
-Negative durations are relative to now.
-Absolute start times are defined using timestamps.
-
-_**Data type:** Duration or Timestamp_
+_**Data type:** Duration | Time_
### stop
-Specifies the newest time to be included in the results. Defaults to `now`.
+The latest time to include in results.
+Use a relative duration or absolute time.
+For example, `-1h` or `2019-08-28T22:00:00Z`.
+Durations are relative to `now()`.
+Defaults to `now()`.
-Relative stop times are defined using negative durations.
-Negative durations are relative to now.
-Absolute stop times are defined using timestamps.
-
-_**Data type:** Duration or Timestamp_
+_**Data type:** Duration | Time_
{{% note %}}
-Flux only honors [RFC3339 timestamps](/v2.0/reference/flux/language/types#timestamp-format)
-and ignores dates and times provided in other formats.
+Time values in Flux must be in [RFC3339 format](/v2.0/reference/flux/language/types#timestamp-format).
{{% /note %}}
## Examples
diff --git a/content/v2.0/reference/flux/functions/http/_index.md b/content/v2.0/reference/flux/functions/http/_index.md
new file mode 100644
index 000000000..575108bfb
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/http/_index.md
@@ -0,0 +1,22 @@
+---
+title: Flux HTTP package
+list_title: HTTP package
+description: >
+ The Flux HTTP package provides functions for transferring data using the HTTP protocol.
+ Import the `http` package.
+menu:
+ v2_0_ref:
+ name: HTTP
+ parent: Flux packages and functions
+weight: 202
+v2.0/tags: [functions, http, package]
+---
+
+The Flux HTTP package provides functions for transferring data using the HTTP protocol.
+Import the `http` package:
+
+```js
+import "http"
+```
+
+{{< children type="functions" show="pages" >}}
diff --git a/content/v2.0/reference/flux/functions/http/endpoint.md b/content/v2.0/reference/flux/functions/http/endpoint.md
new file mode 100644
index 000000000..6b316bf27
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/http/endpoint.md
@@ -0,0 +1,63 @@
+---
+title: http.endpoint() function
+description: >
+ The `http.endpoint()` function sends output data to an HTTP URL using the POST request method.
+menu:
+ v2_0_ref:
+ name: http.endpoint
+ parent: HTTP
+weight: 202
+---
+
+The `http.endpoint()` function sends output data to an HTTP URL using the POST request method.
+
+_**Function type:** Output_
+
+```js
+import "http"
+
+http.endpoint(
+ url: "http://localhost:1234/"
+)
+```
+
+## Parameters
+
+### url
+The URL to POST to.
+
+_**Data type:** String_
+
+### mapFn
+A function that builds the object used to generate the POST request.
+
+{{% 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
+[`http.endpoint()` source code](https://github.com/influxdata/flux/blob/master/stdlib/http/http.flux)._
+{{% /note %}}
+
+_**Data type:** Function_
+
+The returned object must include the following fields:
+
+- `headers`
+- `data`
+
+_For more information, see [`http.post()`](/v2.0/reference/flux/functions/http/post/)_
+
+## Examples
+
+##### Send critical statuses to an HTTP endpoint
+```js
+import "monitor"
+import "http"
+
+endpoint = http.endpoint(url: "http://myawsomeurl.com/api/notify")
+
+from(bucket: "example-bucket")
+ |> range(start: -1m)
+ |> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
+ |> map(fn: (r) => { return {status: r._status} })
+ |> monitor.notify(endpoint: endpoint)
+```
diff --git a/content/v2.0/reference/flux/functions/http/post.md b/content/v2.0/reference/flux/functions/http/post.md
new file mode 100644
index 000000000..214c15833
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/http/post.md
@@ -0,0 +1,64 @@
+---
+title: http.post() function
+description: >
+ The `http.post()` function submits an HTTP POST request to the specified URL with headers and data.
+ The HTTP status code is returned.
+menu:
+ v2_0_ref:
+ name: http.post
+ parent: HTTP
+weight: 202
+---
+
+The `http.post()` function submits an HTTP POST request to the specified URL with
+headers and data and returns the HTTP status code.
+
+_**Function type:** Output_
+
+```js
+import "http"
+
+http.post(
+ url: "http://localhost:9999/",
+ headers: {x:"a", y:"b", z:"c"},
+ data: bytes(v: "body")
+)
+```
+
+## Parameters
+
+### url
+The URL to POST to.
+
+_**Data type:** String_
+
+### headers
+Headers to include with the POST request.
+
+_**Data type:** Object_
+
+### data
+The data body to include with the POST request.
+
+_**Data type:** Bytes_
+
+## Examples
+
+##### Send the last reported status to a URL
+```js
+import "json"
+import "http"
+
+lastReported =
+ from(bucket: "example-bucket")
+ |> range(start: -1m)
+ |> filter(fn: (r) => r._measurement == "statuses")
+ |> last()
+ |> map(fn: (r) => { return {status: r._status} })
+
+http.post(
+ url: "http://myawsomeurl.com/api/notify",
+ headers: {Authorization: "Bearer mySuPerSecRetTokEn"},
+ data: bytes(v: lastReported)
+)
+```
diff --git a/content/v2.0/reference/flux/functions/monitor/_index.md b/content/v2.0/reference/flux/functions/monitor/_index.md
new file mode 100644
index 000000000..12271be11
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/monitor/_index.md
@@ -0,0 +1,22 @@
+---
+title: Flux InfluxDB Monitor package
+list_title: InfluxDB Monitor package
+description: >
+ The Flux Monitor package provides tools for monitoring and alerting with InfluxDB.
+ Import the `influxdata/influxdb/monitor` package.
+menu:
+ v2_0_ref:
+ name: InfluxDB Monitor
+ parent: Flux packages and functions
+weight: 202
+v2.0/tags: [functions, monitor, alerts, package]
+---
+
+The Flux monitor package provides tools for monitoring and alerting with InfluxDB.
+Import the `influxdata/influxdb/monitor` package:
+
+```js
+import "influxdata/influxdb/monitor"
+```
+
+{{< children type="functions" show="pages" >}}
diff --git a/content/v2.0/reference/flux/functions/monitor/check.md b/content/v2.0/reference/flux/functions/monitor/check.md
new file mode 100644
index 000000000..ce8de7b7f
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/monitor/check.md
@@ -0,0 +1,95 @@
+---
+title: monitor.check() function
+description: >
+ The `monitor.check()` function function checks input data and assigns a level
+ (`ok`, `info`, `warn`, or `crit`) to each row based on predicate functions.
+menu:
+ v2_0_ref:
+ name: monitor.check
+ parent: InfluxDB Monitor
+weight: 202
+---
+
+The `monitor.check()` function function checks input data and assigns a level
+(`ok`, `info`, `warn`, or `crit`) to each row based on predicate functions.
+
+_**Function type:** Transformation_
+
+```js
+import "influxdata/influxdb/monitor"
+
+monitor.check(
+ crit: (r) => r._value > 90.0,
+ warn: (r) => r._value > 80.0,
+ info: (r) => r._value > 60.0,
+ ok: (r) => r._value <= 20.0,
+ messageFn: (r) => "The current level is ${r._level}",
+ data: {}
+)
+```
+
+`monitor.check()` stores statuses in the `_level` column and writes results
+to the `statuses` measurement in the `_monitoring` bucket.
+
+## Parameters
+
+### crit
+Predicate function that determines `crit` status.
+Default is `(r) => false`.
+
+_**Data type:** Function_
+
+### warn
+Predicate function that determines `warn` status.
+Default is `(r) => false`.
+
+_**Data type:** Function_
+
+### info
+Predicate function that determines `info` status.
+Default is `(r) => false`.
+
+_**Data type:** Function_
+
+### ok
+Predicate function that determines `ok` status.
+Default is `(r) => true`.
+
+_**Data type:** Function_
+
+### messageFn
+A function that constructs a message to append to each row.
+The message is stored in the `_message` column.
+
+_**Data type:** Function_
+
+### data
+Data to append to the output.
+**InfluxDB populates check data.**
+
+_**Data type:** Object_
+
+## Examples
+
+### Monitor disk usage
+```js
+import "influxdata/influxdb/monitor"
+
+from(bucket: "telegraf")
+ |> range(start: -1h)
+ |> filter(fn: (r) =>
+ r._measurement == "disk" and
+ r._field = "used_percent"
+ )
+ |> monitor.check(
+ crit: (r) => r._value > 90.0,
+ warn: (r) => r._value > 80.0,
+ info: (r) => r._value > 70.0,
+ ok: (r) => r._value <= 60.0,
+ messageFn: (r) =>
+ if r._level == "crit" then "Critical alert!! Disk usage is at ${r._value}%!"
+ else if r._level == "warn" then "Warning! Disk usage is at ${r._value}%."
+ else if r._level == "info" then "Disk usage is at ${r._value}%."
+ else "Things are looking good."
+ )
+```
diff --git a/content/v2.0/reference/flux/functions/monitor/deadman.md b/content/v2.0/reference/flux/functions/monitor/deadman.md
new file mode 100644
index 000000000..6f52a49a1
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/monitor/deadman.md
@@ -0,0 +1,46 @@
+---
+title: monitor.deadman() function
+description: >
+ The `monitor.deadman()` function detects when a group stops reporting data.
+menu:
+ v2_0_ref:
+ name: monitor.deadman
+ parent: InfluxDB Monitor
+weight: 202
+cloud_all: true
+---
+
+The `monitor.deadman()` function detects when a group stops reporting data.
+It takes a stream of tables and reports if groups have been observed since time `t`.
+
+_**Function type:** Transformation_
+
+```js
+import "influxdata/influxdb/monitor"
+
+monitor.deadman(t: 2019-08-30T12:30:00Z)
+```
+
+`monitor.deadman()` retains the most recent row from each input table and adds a `dead` column.
+If a record appears **after** time `t`, `monitor.deadman()` sets `dead` to `false`.
+Otherwise, `dead` is set to `true`.
+
+## Parameters
+
+### t
+The time threshold for the deadman check.
+
+_**Data type:** Time_
+
+## Examples
+
+### Detect if a host hasn't reported in the last five minutes
+```js
+import "influxdata/influxdb/monitor"
+import "experimental"
+
+from(bucket: "example-bucket")
+ |> range(start: -10m)
+ |> group(columns: ["host"])
+ |> monitor.deadman(t: experimental.subDuration(d: 5m, from: now() ))
+```
diff --git a/content/v2.0/reference/flux/functions/monitor/from.md b/content/v2.0/reference/flux/functions/monitor/from.md
new file mode 100644
index 000000000..2c97ed710
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/monitor/from.md
@@ -0,0 +1,67 @@
+---
+title: monitor.from() function
+description: >
+ The `monitor.from()` function retrieves check statuses stored in the `_monitoring` bucket.
+menu:
+ v2_0_ref:
+ name: monitor.from
+ parent: InfluxDB Monitor
+weight: 202
+---
+
+The `monitor.from()` function retrieves check statuses stored in the `_monitoring` bucket.
+
+_**Function type:** Input_
+
+```js
+import "influxdata/influxdb/monitor"
+
+monitor.from(
+ start: -1h,
+ stop: now(),
+ fn: (r) => true
+)
+```
+
+
+## Parameters
+
+### start
+The earliest time to include in results.
+Use a relative duration or absolute time.
+For example, `-1h` or `2019-08-28T22:00:00Z`.
+Durations are relative to `now()`.
+
+_**Data type:** Duration | Time_
+
+### stop
+The latest time to include in results.
+Use a relative duration or absolute time.
+For example, `-1h` or `2019-08-28T22:00:00Z`.
+Durations are relative to `now()`.
+Defaults to `now()`.
+
+_**Data type:** Duration | Time_
+
+{{% note %}}
+Time values in Flux must be in [RFC3339 format](/v2.0/reference/flux/language/types#timestamp-format).
+{{% /note %}}
+
+### fn
+A single argument predicate function that evaluates `true` or `false`.
+Records or rows (`r`) that evaluate to `true` are included in output tables.
+Records that evaluate to _null_ or `false` are not included in output tables.
+
+_**Data type:** Function_
+
+## Examples
+
+### View critical check statuses from the last hour
+```js
+import "influxdata/influxdb/monitor"
+
+monitor.from(
+ start: -1h,
+ fn: (r) => r._level == "crit"
+)
+```
diff --git a/content/v2.0/reference/flux/functions/monitor/logs.md b/content/v2.0/reference/flux/functions/monitor/logs.md
new file mode 100644
index 000000000..5b13f9c14
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/monitor/logs.md
@@ -0,0 +1,63 @@
+---
+title: monitor.logs() function
+description: >
+ The `monitor.logs()` function retrieves notification events stored in the `_monitoring` bucket.
+menu:
+ v2_0_ref:
+ name: monitor.logs
+ parent: InfluxDB Monitor
+weight: 202
+---
+
+The `monitor.logs()` function retrieves notification events stored in the `_monitoring` bucket.
+
+_**Function type:** Input_
+
+```js
+import "influxdata/influxdb/monitor"
+
+monitor.logs(
+ start: -1h,
+ stop: now(),
+ fn: (r) => true
+)
+```
+
+## Parameters
+
+### start
+The earliest time to include in results.
+Use a relative duration or absolute time.
+For example, `-1h` or `2019-08-28T22:00:00Z`.
+Durations are relative to `now()`.
+
+_**Data type:** Duration | Time_
+
+### stop
+The latest time to include in results.
+Use a relative duration or absolute time.
+For example, `-1h` or `2019-08-28T22:00:00Z`.
+Durations are relative to `now()`.
+Defaults to `now()`.
+
+_**Data type:** Duration | Time_
+
+{{% note %}}
+Time values in Flux must be in [RFC3339 format](/v2.0/reference/flux/language/types#timestamp-format).
+{{% /note %}}
+
+### fn
+A single argument predicate function that evaluates `true` or `false`.
+Records or rows (`r`) that evaluate to `true` are included in output tables.
+Records that evaluate to _null_ or `false` are not included in output tables.
+
+_**Data type:** Function_
+
+## Examples
+
+### Query notification events from the last hour
+```js
+import "influxdata/influxdb/monitor"
+
+monitor.logs(start: -1h)
+```
diff --git a/content/v2.0/reference/flux/functions/monitor/notify.md b/content/v2.0/reference/flux/functions/monitor/notify.md
new file mode 100644
index 000000000..5f7dfec22
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/monitor/notify.md
@@ -0,0 +1,52 @@
+---
+title: monitor.notify() function
+description: >
+ The `monitor.notify()` function sends a notification to an endpoint and logs it
+ in the `notifications` measurement in the `_monitoring` bucket.
+menu:
+ v2_0_ref:
+ name: monitor.notify
+ parent: InfluxDB Monitor
+weight: 202
+---
+
+The `monitor.notify()` function sends a notification to an endpoint and logs it
+in the `notifications` measurement in the `_monitoring` bucket.
+
+_**Function type:** Output_
+
+```js
+import "influxdata/influxdb/monitor"
+
+monitor.notify(
+ endpoint: endpoint,
+ data: {}
+)
+```
+
+## Parameters
+
+### endpoint
+A function that constructs and sends the notification to an endpoint.
+
+_**Data type:** Function_
+
+### data
+Data to append to the output.
+**InfluxDB populates notification data.**
+
+_**Data type:** Object_
+
+## Examples
+
+### Send a notification to Slack
+```js
+import "influxdata/influxdb/monitor"
+import "slack"
+
+endpoint = slack.endpoint(name: "slack", channel: "#flux")
+
+from(bucket: "system")
+ |> range(start: -5m)
+ |> monitor.notify(endpoint: endpoint)
+```
diff --git a/content/v2.0/reference/flux/functions/secrets/_index.md b/content/v2.0/reference/flux/functions/secrets/_index.md
new file mode 100644
index 000000000..d27834ccf
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/secrets/_index.md
@@ -0,0 +1,22 @@
+---
+title: Flux InfluxDB Secrets package
+list_title: InfluxDB Secrets package
+description: >
+ The Flux InfluxDB Secrets package provides functions for working with sensitive secrets managed by InfluxDB.
+ Import the `influxdata/influxdb/secrets` package.
+menu:
+ v2_0_ref:
+ name: InfluxDB Secrets
+ parent: Flux packages and functions
+weight: 202
+v2.0/tags: [functions, secrets, package]
+---
+
+InfluxDB Secrets Flux functions provide tools for working with sensitive secrets managed by InfluxDB.
+Import the `influxdata/influxdb/secrets` package:
+
+```js
+import "influxdata/influxdb/secrets"
+```
+
+{{< children type="functions" show="pages" >}}
diff --git a/content/v2.0/reference/flux/functions/secrets/get.md b/content/v2.0/reference/flux/functions/secrets/get.md
new file mode 100644
index 000000000..ff669f891
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/secrets/get.md
@@ -0,0 +1,44 @@
+---
+title: secrets.get() function
+description: >
+ The `secrets.get()` function retrieves a secret from the InfluxDB secret store.
+menu:
+ v2_0_ref:
+ name: secrets.get
+ parent: InfluxDB Secrets
+weight: 202
+---
+
+The `secrets.get()` function retrieves a secret from the InfluxDB secret store.
+
+_**Function type:** Miscellaneous_
+
+```js
+import "influxdata/influxdb/secrets"
+
+secrets.get(key: "KEY_NAME")
+```
+
+## Parameters
+
+### key
+The secret key to retrieve.
+
+_**Data type:** String_
+
+## Examples
+
+### Populate sensitive credentials with secrets
+```js
+import "sql"
+import "influxdata/influxdb/secrets"
+
+username = secrets.get(key: "POSTGRES_USERNAME")
+password = secrets.get(key: "POSTGRES_PASSWORD")
+
+sql.from(
+ driverName: "postgres",
+ dataSourceName: "postgresql://${username}:${password}@localhost",
+ query:"SELECT * FROM example-table"
+)
+```
diff --git a/content/v2.0/reference/flux/functions/slack/_index.md b/content/v2.0/reference/flux/functions/slack/_index.md
new file mode 100644
index 000000000..82e48c738
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/slack/_index.md
@@ -0,0 +1,22 @@
+---
+title: Flux Slack package
+list_title: Slack package
+description: >
+ The Flux Slack package provides functions for sending data to Slack.
+ Import the `slack` package.
+menu:
+ v2_0_ref:
+ name: Slack
+ parent: Flux packages and functions
+weight: 202
+v2.0/tags: [functions, slack, package]
+---
+
+The Flux Slack package provides functions for sending data to Slack.
+Import the `slack` package:
+
+```js
+import "slack"
+```
+
+{{< children type="functions" show="pages" >}}
diff --git a/content/v2.0/reference/flux/functions/slack/endpoint.md b/content/v2.0/reference/flux/functions/slack/endpoint.md
new file mode 100644
index 000000000..ea3ecbb7a
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/slack/endpoint.md
@@ -0,0 +1,85 @@
+---
+title: slack.endpoint() function
+description: >
+ The `slack.endpoint()` function sends a message to Slack that includes output data.
+menu:
+ v2_0_ref:
+ name: slack.endpoint
+ parent: Slack
+weight: 202
+---
+
+The `slack.endpoint()` function sends a message to Slack that includes output data.
+
+_**Function type:** Output_
+
+```js
+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](https://api.slack.com/incoming-webhooks#create_a_webhook).
+{{% /note %}}
+
+_**Data type:** String_
+
+### token
+The [Slack API token](https://get.slack.help/hc/en-us/articles/215770388-Create-and-regenerate-API-tokens)
+used to interact with Slack.
+Defaults to `""`.
+
+{{% note %}}
+A token is only required if using the Slack chat.postMessage API.
+{{% /note %}}
+
+_**Data type:** String_
+
+### mapFn
+A function that builds the object used to generate the POST request.
+
+{{% 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](https://github.com/influxdata/flux/blob/master/stdlib/slack/slack.flux)._
+{{% /note %}}
+
+_**Data type:** Function_
+
+The returned object must include the following fields:
+
+- `username`
+- `channel`
+- `workspace`
+- `text`
+- `iconEmoji`
+- `color`
+
+_For more information, see [`slack.message()`](/v2.0/reference/flux/functions/slack/message/)_
+
+## Examples
+
+##### Send critical statuses to a Slack endpoint
+```js
+import "monitor"
+import "slack"
+
+endpoint = slack.endpoint(token: "mySuPerSecRetTokEn")
+
+from(bucket: "example-bucket")
+ |> range(start: -1m)
+ |> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
+ |> map(fn: (r) => { return {r with status: r._status} })
+ |> monitor.notify(endpoint: endpoint)
+```
diff --git a/content/v2.0/reference/flux/functions/slack/message.md b/content/v2.0/reference/flux/functions/slack/message.md
new file mode 100644
index 000000000..70606b866
--- /dev/null
+++ b/content/v2.0/reference/flux/functions/slack/message.md
@@ -0,0 +1,124 @@
+---
+title: slack.message() function
+description: >
+ The `slack.message()` function sends a single message to a Slack channel.
+ The function works with either with the chat.postMessage API or with a Slack webhook.
+menu:
+ v2_0_ref:
+ name: slack.message
+ parent: Slack
+weight: 202
+---
+
+The `slack.message()` function sends a single message to a Slack channel.
+The function works with either with the [chat.postMessage API](https://api.slack.com/methods/chat.postMessage)
+or with a [Slack webhook](https://api.slack.com/incoming-webhooks).
+
+_**Function type:** Output_
+
+```js
+import "slack"
+
+slack.message(
+ url: "https://slack.com/api/chat.postMessage",
+ token: "mySuPerSecRetTokEn",
+ username: "Fluxtastic",
+ channel: "#flux",
+ workspace: "",
+ text: "This is a message from the Flux slack.message() function.",
+ iconEmoji: "wave",
+ color: "good"
+)
+```
+
+## 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](https://api.slack.com/incoming-webhooks#create_a_webhook).
+{{% /note %}}
+
+_**Data type:** String_
+
+### token
+The [Slack API token](https://get.slack.help/hc/en-us/articles/215770388-Create-and-regenerate-API-tokens)
+used to interact with Slack.
+Defaults to `""`.
+
+{{% note %}}
+A token is only required if using the Slack chat.postMessage API.
+{{% /note %}}
+
+_**Data type:** String_
+
+### username
+The username to use when posting the message to a Slack channel. Required
+
+_**Data type:** String_
+
+### channel
+The name of channel to post the message to. Required
+
+_**Data type:** String_
+
+### workspace
+The name of the Slack workspace to use if there are multiple.
+Defaults to `""`.
+
+_**Data type:** String_
+
+### text
+The text to display in the Slack message. Required
+
+_**Data type:** String_
+
+### iconEmoji
+The name of emoji to use as the user avatar when posting the message to Slack.
+Required
+
+_**Data type:** String_
+
+{{% note %}}
+#### Things to know about iconEmoji
+- **Do not** enclose the name in colons `:` as you do in the Slack client.
+- `iconEmoji` only appears as the user avatar when using the Slack chat.postMessage API.
+{{% /note %}}
+
+### color
+The color to include with the message.
+Required
+
+**Valid values include:**
+
+- `good`
+- `warning`
+- `danger`
+- Any valid RGB hex color code. For example, `#439FE0`.
+
+_**Data type:** String_
+
+## Examples
+
+##### Send the last reported status to Slack
+```js
+import "slack"
+
+lastReported =
+ from(bucket: "example-bucket")
+ |> range(start: -1m)
+ |> filter(fn: (r) => r._measurement == "statuses")
+ |> last()
+ |> map(fn: (r) => { return {status: r._status} })
+
+slack.message(
+ url: "https://slack.com/api/chat.postMessage",
+ token: "mySuPerSecRetTokEn",
+ username: "johndoe",
+ channel: "#system-status",
+ text: "The last reported status was \"${lastReported.status}\"."
+)
+```
diff --git a/content/v2.0/reference/release-notes/flux.md b/content/v2.0/reference/release-notes/flux.md
index 5d7e5d90c..c241a7cc4 100644
--- a/content/v2.0/reference/release-notes/flux.md
+++ b/content/v2.0/reference/release-notes/flux.md
@@ -11,13 +11,34 @@ aliases:
---
{{% note %}}
-_The latest release of InfluxDB v2.0 alpha includes **Flux v0.40.2**.
+_The latest release of InfluxDB v2.0 alpha includes **Flux v0.41.0**.
Though newer versions of Flux may be available, they will not be included with
InfluxDB until the next InfluxDB v2.0 release._
{{% /note %}}
---
+## v0.41.0 [2019-08-26]
+
+### Features
+- Add ability to validate URLs before making `http.post` requests.
+- Evaluate string interpolation.
+- Implement the `secrets.get` function.
+- Added secret service interface.
+- Add secrets package that will construct a secret object.
+- Added a SecretService interface and a new dependencies package and a basic test of functionality.
+- Add Slack endpoint.
+
+### Bug fixes
+- Make `reset()` check for non-nil data before calling `Release()`.
+- Add test case for `notify` function.
+- Add missing math import to test case.
+- Make packages aware of options.
+- Resolved `holtWinters` panic.
+- Use non-pointer receiver for `interpreter.function`.
+
+---
+
## v0.40.2 [2019-08-22]
### Bug fixes