---
title: servicenow.endpoint() function
description: servicenow.endpoint() sends events to ServiceNow using data from input rows.
url: https://docs.influxdata.com/flux/v0/stdlib/contrib/bonitoo-io/servicenow/endpoint/
estimated_tokens: 2805
product: Flux
version: v0
---

# servicenow.endpoint() function

-   Flux 0.136.0+
-   View InfluxDB support

`servicenow.endpoint()` is a user-contributed function maintained by the [package author](#package-author-and-maintainer).

`servicenow.endpoint()` sends events to [ServiceNow](https://servicenow.com/) 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

```js
(
    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](/flux/v0/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

```js
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},
            }),
    )()
```

[notification endpoints](/flux/v0/tags/notification-endpoints/)
