Documentation

servicenow.endpoint() function

servicenow.endpoint() is a user-contributed function maintained by the package author.

servicenow.endpoint() sends events to ServiceNow using data from input rows.

Usage

servicenow.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 ServiceNow API request. Requires an r parameter.

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

  • description
  • severity
  • source
  • node
  • metricType
  • resource
  • metricName
  • messageKey
  • additionalInfo

For more information, see servicenow.event() parameters.

Function type signature
(
    password: string,
    url: string,
    username: string,
    ?source: A,
) => (
    mapFn: (
        r: B,
    ) => {
        C with
        severity: J,
        resource: I,
        node: H,
        metricType: G,
        metricName: F,
        messageKey: E,
        description: D,
    },
) => (<-tables: stream[B]) => stream[{B with _sent: string}] where J: Equatable

For more information, see Function type signatures.

Parameters

url

(Required) ServiceNow web service URL.

username

(Required) ServiceNow username to use for HTTP BASIC authentication.

password

(Required) ServiceNow password to use for HTTP BASIC authentication.

source

Source name. Default is "Flux".

Examples

Send critical events to ServiceNow

import "contrib/bonitoo-io/servicenow"
import "influxdata/influxdb/secrets"

username = secrets.get(key: "SERVICENOW_USERNAME")
password = secrets.get(key: "SERVICENOW_PASSWORD")

endpoint =
    servicenow.endpoint(
        url: "https://example-tenant.service-now.com/api/global/em/jsonv2",
        username: username,
        password: password,
    )

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

crit_events
    |> endpoint(
        mapFn: (r) =>
            ({
                node: r.host,
                metricType: r._measurement,
                resource: r.instance,
                metricName: r._field,
                severity: "critical",
                additionalInfo: {"devId": r.dev_id},
            }),
    )()

Was this page helpful?

Thank you for your feedback!


New in InfluxDB 3.6

Key enhancements in InfluxDB 3.6 and the InfluxDB 3 Explorer 1.4.

See the Blog Post

InfluxDB 3.6 is now available for both Core and Enterprise. This release introduces the 1.4 update to InfluxDB 3 Explorer, featuring the beta launch of Ask AI, along with new capabilities for simple startup and expanded functionality in the Processing Engine.

For more information, check out:

InfluxDB Docker latest tag changing to InfluxDB 3 Core

On February 3, 2026, the latest tag for InfluxDB Docker images will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments.

If using Docker to install and run InfluxDB, the latest tag will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments. For example, if using Docker to run InfluxDB v2, replace the latest version tag with a specific version tag in your Docker pull command–for example:

docker pull influxdb:2