---
title: "Create alert configurations."
method: POST
path: "/alerts/configurations"
tags: ["Alerts"]
---

# Create alert configurations.

`POST /alerts/configurations`

## Request

- Base URL: `https://api.samsara.com`
- URL: `https://api.samsara.com/alerts/configurations`
- Auth: HTTP bearer

Creates an alert configuration.

 <b>Rate limit:</b> 100 requests/min (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).

To use this endpoint, select **Write Alerts** under the Alerts category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
 

 **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.

## Request body

- AlertsPostConfigurationsRequestBody: The configuration of a alert.
  - `actions` ActionObjectRequestBody[], required: An array of actions.
    - `actionParams` ActionParamsObjectRequestBody: The action type specific details. Set webhookIds for Slack or Webhook actions. Set recipients for Notifications. Set driverAppNotification for Driver App Push. Other action types don't need to set a param.
      - `driverAppNotification` DriverAppNotificationObjectRequestBody: Driver app notification settings
        - `inAppNotificationOptions` InAppNotificationOptionsObjectRequestBody: Options for in-app notifications
          - `canDictateAlertTitle` boolean: Whether the alert will dictate the title of the alert. Both canDictateAlertTitle and canPlayAlertSound should be enabled or disabled together.
          - `canPlayAlertSound` boolean: Whether the alert will play a sound. Both canDictateAlertTitle and canPlayAlertSound should be enabled or disabled together.
          - `customText` string: Custom text to display in the notification (320 character max).
          - `isEnabled` boolean, required: Whether in-app notifications are enabled.
        - `pushNotificationOptions` PushNotificationOptionsObjectRequestBody: Options for push notifications
          - `isEnabled` boolean, required: Whether push notifications are enabled.
      - `recipients` RecipientObjectRequestBody[]: Recipient of the action.
        - `contactId` string: The ID of the contact.
        - `notificationTypes` string[]: How the user/contact/role should be notified.
        - `roleId` string: The ID of the role.
        - `type` 'user' | 'contact' | 'role', required: The type of recipients Valid values: `user`, `contact`, `role`
        - `userId` string: The ID of the user.
      - `webhooks` WebhookParamsObjectRequestBody: The webhook configuration for an Action.
        - `payloadType` 'legacy' | 'enriched': This determines the alert webhook payload type to use. Learn more: https://developers.samsara.com/docs/webhook-reference. Valid values: `legacy`, `enriched`
        - `webhookIds` string[], required: The webhook IDs.
    - `actionTypeId` integer, required: The id of the of the action type. Reference the following list for the ids: The following action types are in Beta: Driver App Push = 5 Functions = 14 The following action types are Stable: Notification (Email, Text, Samsara Fleet Push) = 1 Dashboard Notification = 3 Webhook = 4 Slack = 6
  - `externalIds` object: A map of external ids
  - `isEnabled` boolean, required: Whether the alert is enabled or not.
  - `name` string, required: The custom name of the configuration.
  - `operationalSettings` OperationalSettingsObjectRequestBody: Settings on when the alert should be operational.
    - `timeRangeType` 'activeBetween' | 'inactiveBetween', required: The type of time ranges. Valid values: `activeBetween`, `inactiveBetween`
    - `timeRanges` TimeRangeObjectRequestBody[], required: The time ranges this alert applies to.
      - `daysOfWeek` string[], required: Which days this timezone applies to.
      - `endTime` string, required: The time of day at which the time range starts. In 24 hour kitchen clock format.
      - `startTime` string, required: The time of day at which the time range starts. In 24 hour kitchen clock format.
      - `timezone` string, required: The timezone of the time range uses [IANA timezone database](https://www.iana.org/time-zones) keys (e.g. `America/Los_Angeles`, `America/New_York`, `Europe/London`, etc.). You can find a mapping of common timezone formats to IANA timezone keys [here](https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html).
  - `scope` ScopeObjectRequestBody, required: What the triggers are scoped to. These are the objects this alert applies to.
    - `all` boolean, required: Whether it applies to all applicable objects.
    - `assets` TinyAssetObjectRequestBody[]: The assets these triggers are scoped to.
      - `assetId` string, required: ID of the asset.
      - `assetType` 'uncategorized' | 'trailer' | 'equipment' | 'unpowered' | 'vehicle', required: The operational context in which the asset interacts with the Samsara system. Examples: Vehicle (eg: truck, bus...), Trailer (eg: dry van, reefer, flatbed...), Powered Equipment (eg: dozer, crane...), Unpowered Equipment (eg: container, dumpster...), or Uncategorized. Valid values: `uncategorized`, `trailer`, `equipment`, `unpowered`, `vehicle`
    - `drivers` TinyDriverObjectRequestBody[]: The drivers these triggers are scoped to.
      - `driverId` string, required: ID of the driver.
    - `tags` GoaTagTinyResponseRequestBody[]: The tags these triggers are scoped to.
      - `id` string, required: ID of the tag
      - `name` string, required: Name of the tag.
      - `parentTagId` string: If this tag is part a hierarchical tag tree, this is the ID of the parent tag, otherwise this will be omitted.
    - `widgets` TinyWidgetObjectRequestBody[]: The widgets these triggers are scoped to.
      - `widgetId` string, required: ID of the widget.
  - `triggers` WorkflowTriggerObjectRequestBody[], required: An array of triggers.
    - `triggerParams` TriggerParamsObjectRequestBody: The trigger type specific details. Only the field that corresponds to the trigger type is filled in.
      - `ambientTemperature` AmbientTemperatureDetailsObjectRequestBody: Details specific to Ambient Temperature.
        - `cargoIsFull` boolean: Whether the cargo is full.
        - `doorsAreClosed` boolean: Whether the doors are closed.
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `operation` 'GREATER' | 'INSIDE_RANGE' | 'LESS' | 'OUTSIDE_RANGE', required: How to evaluate the threshold. Valid values: `GREATER`, `INSIDE_RANGE`, `LESS`, `OUTSIDE_RANGE`
        - `temperatureCelcius` integer, required: The temperature in Celcius threshold value.
      - `cellSignalLoss` CellSignalLossDetailsObjectRequestBody: Details specific to Cell Signal Loss
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `defLevel` DefLevelTriggerDetailsObjectRequestBody: Details specific to DEF Level
        - `defLevelPercent` integer, required: The DEF percentage threshold value.
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `operation` 'GREATER' | 'LESS', required: How to evaluate the threshold. Valid values: `GREATER`, `LESS`
      - `deviceMovement` DeviceMovementTriggerDetailsObjectRequestBody: Details specific to Device Movement
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `documentSubmitted` DriverDocumentSubmittedDetailsObjectRequestBody: Details specific to Driver Document Submitted
        - `templateIds` string[], required: Specific template IDs to be alerted on.
      - `dvirSubmittedDevice` DVIRSubmittedDeviceTriggerDetailsObjectRequestBody: Details specific to DVIR Submitted by Device
        - `dvirMinDurationMilliseconds` integer: The trigger will only fire if the selected DVIR types are submitted within the duration.
        - `dvirSubmissionTypes` string[]: Filter to these types of DVIR submissions.
      - `engineIdle` EngineIdleTriggerDetailsObjectRequestBody: Details specific to Engine Idle
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `engineOff` EngineOffDetailsObjectRequestBody: Details specific to Engine Off
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `engineOn` EngineOnDetailsObjectRequestBody: Details specific to Engine On
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `fuelLevel` FuelLevelTriggerDetailsObjectRequestBody: Details specific to Fuel Level Percentage
        - `fuelLevelPercent` integer, required: The fuel level percentage threshold value.
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `operation` 'LESS', required: How to evaluate the threshold. Valid values: `LESS`
      - `gatewayDisconnected` GatewayDisconnectedDetailsObjectRequestBody: Details specific to Gateway Disconnected
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting. Can only be either 900000 (15 minutes) or 3600000 (60 min).
      - `gatewayUnplugged` GatewayUnpluggedTriggerDetailsObjectRequestBody: Details specific to Gateway Unplugged
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `geofenceEntry` GeofenceEntryTriggerDetailsObjectRequestBody: Details specific to Geofence Entry
        - `location` LocationObjectRequestBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
          - `addressIds` string[]: All locations with selected address IDs will trigger.
          - `addressTypes` string[]: All locations with the selected address types will trigger.
          - `circle` CircleRequestBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
            - `latitude` number, double: Latitude of the address. Will be geocoded from formattedAddress if not provided.
            - `longitude` number, double: Longitude of the address. Will be geocoded from formattedAddress if not provided.
            - `name` string, required: The name of the cirlce.
            - `radiusMeters` integer, required: The radius of the circular geofence in meters.
          - `polygon` PolygonRequestBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
            - `name` string, required: The name of the polygon.
            - `vertices` VertexRequestBody[]: The vertices of the polygon geofence. These geofence vertices describe the perimeter of the polygon, and must consist of at least 3 vertices and less than 40.
              - …
          - `tagIds` string[]: All locations with selected tag will trigger.
      - `geofenceExit` GeofenceExitTriggerDetailsObjectRequestBody: Details specific to Geofence Exit
        - `location` LocationObjectRequestBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
          - `addressIds` string[]: All locations with selected address IDs will trigger.
          - `addressTypes` string[]: All locations with the selected address types will trigger.
          - `circle` CircleRequestBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
            - `latitude` number, double: Latitude of the address. Will be geocoded from formattedAddress if not provided.
            - `longitude` number, double: Longitude of the address. Will be geocoded from formattedAddress if not provided.
            - `name` string, required: The name of the cirlce.
            - `radiusMeters` integer, required: The radius of the circular geofence in meters.
          - `polygon` PolygonRequestBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
            - `name` string, required: The name of the polygon.
            - `vertices` VertexRequestBody[]: The vertices of the polygon geofence. These geofence vertices describe the perimeter of the polygon, and must consist of at least 3 vertices and less than 40.
              - …
          - `tagIds` string[]: All locations with selected tag will trigger.
      - `gpsSignalLoss` GpsSignalLossDetailsObjectRequestBody: Details specific to GPS Signal Loss
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `harshEvent` HarshEventTriggerDetailsObjectRequestBody: Details specific to Harsh Events
        - `types` string[], required: On which harsh events to trigger on.
      - `hosViolation` HOSViolationTriggerDetailsObjectRequestBody: Details specific to HOS Violation
        - `maxUntilViolationMilliseconds` integer, required: Alert if driver has this specified time until driving causes an HOS violation.
        - `violation` 'CaliforniaMealbreakMissed' | 'CycleHoursOn' | 'DailyDrivingHours' | 'DailyOnDutyHours' | 'Invalid' | 'RestbreakMissed' | 'ShiftDrivingHours' | 'ShiftHours' | 'ShiftOnDutyHours' | 'UnsubmittedLogs', required: The type of HOS violation. Valid values: `CaliforniaMealbreakMissed`, `CycleHoursOn`, `DailyDrivingHours`, `DailyOnDutyHours`, `Invalid`, `RestbreakMissed`, `ShiftDrivingHours`, `ShiftHours`, `ShiftOnDutyHours`, `UnsubmittedLogs`
      - `insideGeofence` InsideGeofenceTriggerDetailsObjectRequestBody: Details specific to Inside Geofence
        - `location` LocationObjectRequestBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
          - `addressIds` string[]: All locations with selected address IDs will trigger.
          - `addressTypes` string[]: All locations with the selected address types will trigger.
          - `circle` CircleRequestBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
            - `latitude` number, double: Latitude of the address. Will be geocoded from formattedAddress if not provided.
            - `longitude` number, double: Longitude of the address. Will be geocoded from formattedAddress if not provided.
            - `name` string, required: The name of the cirlce.
            - `radiusMeters` integer, required: The radius of the circular geofence in meters.
          - `polygon` PolygonRequestBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
            - `name` string, required: The name of the polygon.
            - `vertices` VertexRequestBody[]: The vertices of the polygon geofence. These geofence vertices describe the perimeter of the polygon, and must consist of at least 3 vertices and less than 40.
              - …
          - `tagIds` string[]: All locations with selected tag will trigger.
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `outOfRoute` OutOfRouteDetailsObjectRequestBody: Details specific to Out Of Route
        - `maxOffRouteMeters` integer, required: The minimum distance in meters a vehicle has to be from its active route path to be considered out of its route.
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `outsideGeofence` OutsideGeofenceTriggerDetailsObjectRequestBody: Details specific to Outside Geofence
        - `location` LocationObjectRequestBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
          - `addressIds` string[]: All locations with selected address IDs will trigger.
          - `addressTypes` string[]: All locations with the selected address types will trigger.
          - `circle` CircleRequestBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
            - `latitude` number, double: Latitude of the address. Will be geocoded from formattedAddress if not provided.
            - `longitude` number, double: Longitude of the address. Will be geocoded from formattedAddress if not provided.
            - `name` string, required: The name of the cirlce.
            - `radiusMeters` integer, required: The radius of the circular geofence in meters.
          - `polygon` PolygonRequestBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
            - `name` string, required: The name of the polygon.
            - `vertices` VertexRequestBody[]: The vertices of the polygon geofence. These geofence vertices describe the perimeter of the polygon, and must consist of at least 3 vertices and less than 40.
              - …
          - `tagIds` string[]: All locations with selected tag will trigger.
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `panicButton` PanicButtonDetailsObjectRequestBody: Details specific to Panic Button
        - `isFilteringOutPowerLoss` boolean, required: If true, only receive alerts when the panic button is pressed, otherwise receive alerts when the panic button is pressed or looses connection.
      - `reading` ReadingTriggerDetailsObjectRequestBody: Details specific to reading based Trigger, readings can be discovered through the Readings API.
        - `continuousThreshold` ReadingTriggerContinuousValueObjectRequestBody: Threshold to alert on if reading is continuous, either enum or continuous threshold may be set.
          - `operation` 'GREATER' | 'INSIDE_RANGE' | 'LESS' | 'OUTSIDE_RANGE', required: The operation to use when comparing the value to the threshold. Valid values: `GREATER`, `INSIDE_RANGE`, `LESS`, `OUTSIDE_RANGE`
          - `threshold` integer, required: The lower threshold of criticality.
          - `unit` 'ampere' | 'bar' | 'cad' | 'celsius' | 'chf' | 'day' | 'decimaldegrees' | 'eur' | 'fahrenheit' | 'foot' | 'gallon' | 'gallonperkilogram' | 'gallonsperhour' | 'galpermi' | 'gbp' | 'gforce' | 'gperliter' | 'gperm' | 'hertz' | 'hour' | 'imperialgallonperkilogram' | 'impgallon' | 'impgallonsperhour' | 'impgalpermi' | 'inch' | 'kelvin' | 'kgper100kmgaseousfuel' | 'kgpergallon' | 'kgperkm' | 'kgperliter' | 'kgpermi' | 'kilogram' | 'kilogramgaseousfuel' | 'kilometer' | 'kilopascal' | 'kilowatthour' | 'kmperhr' | 'kmperl' | 'kmperlgaseousfuel' | 'lbpermi' | 'liter' | 'litergaseousfuel' | 'literperkilogram' | 'literpertonne' | 'litersperhour' | 'lper100km' | 'lper100kmgaseousfuel' | 'lperkm' | 'lperm' | 'meter' | 'meterspersec' | 'mile' | 'milliknot' | 'millisecond' | 'millivolt' | 'minute' | 'mipergal' | 'miperhr' | 'miperimpgal' | 'month' | 'mpgusgalgaseousfuel' | 'mpkggaseousfuel' | 'mxn' | 'percent' | 'pound' | 'poundsPerSquareInch' | 'poundspergallon' | 'poundsperliter' | 'rpm' | 'second' | 'usd' | 'usgallongaseousfuel' | 'volt' | 'voltAmpere' | 'voltAmpereReactive' | 'watt' | 'watthour' | 'week': The unit of the threshold defined by reading type. If not provided base unit of the reading will be used. Valid values: `ampere`, `bar`, `cad`, `celsius`, `chf`, `day`, `decimaldegrees`, `eur`, `fahrenheit`, `foot`, `gallon`, `gallonperkilogram`, `gallonsperhour`, `galpermi`, `gbp`, `gforce`, `gperliter`, `gperm`, `hertz`, `hour`, `imperialgallonperkilogram`, `impgallon`, `impgallonsperhour`, `impgalpermi`, `inch`, `kelvin`, `kgper100kmgaseousfuel`, `kgpergallon`, `kgperkm`, `kgperliter`, `kgpermi`, `kilogram`, `kilogramgaseousfuel`, `kilometer`, `kilopascal`, `kilowatthour`, `kmperhr`, `kmperl`, `kmperlgaseousfuel`, `lbpermi`, `liter`, `litergaseousfuel`, `literperkilogram`, `literpertonne`, `litersperhour`, `lper100km`, `lper100kmgaseousfuel`, `lperkm`, `lperm`, `meter`, `meterspersec`, `mile`, `milliknot`, `millisecond`, `millivolt`, `minute`, `mipergal`, `miperhr`, `miperimpgal`, `month`, `mpgusgalgaseousfuel`, `mpkggaseousfuel`, `mxn`, `percent`, `pound`, `poundsPerSquareInch`, `poundspergallon`, `poundsperliter`, `rpm`, `second`, `usd`, `usgallongaseousfuel`, `volt`, `voltAmpere`, `voltAmpereReactive`, `watt`, `watthour`, `week`
          - `upperThreshold` integer: The upper threshold of criticality. Required for RANGE operations.
        - `entityType` string, required: The type of the entity associated with the reading.
        - `enumThreshold` ReadingTriggerEnumValueObjectRequestBody: Enum value to alert on if reading is discrete, either enum or continuous threshold may be set.
          - `number` integer: The numeric representation of the enum value.
          - `symbol` string: The symbol representation of the enum value.
        - `id` string, required: The ID of the reading.
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `routeStopEstimatedArrival` RouteStopEstimatedArrivalDetailsObjectRequestBody: Details specific to Route Stop Estimated Arrival
        - `alertBeforeArrivalMilliseconds` integer, required: Time threshold for when to send an alert. Sends an alert when the ETA is less than the threshold.
        - `hasLiveShareLink` boolean: If true, will include a live sharing link in the alert. Defaults to false.
        - `isAlertOnRouteStopOnly` boolean: If true, will only alert if the vehicle is en-route to the stop. Defaults to false.
        - `location` LocationObjectRequestBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
          - `addressIds` string[]: All locations with selected address IDs will trigger.
          - `addressTypes` string[]: All locations with the selected address types will trigger.
          - `circle` CircleRequestBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
            - `latitude` number, double: Latitude of the address. Will be geocoded from formattedAddress if not provided.
            - `longitude` number, double: Longitude of the address. Will be geocoded from formattedAddress if not provided.
            - `name` string, required: The name of the cirlce.
            - `radiusMeters` integer, required: The radius of the circular geofence in meters.
          - `polygon` PolygonRequestBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
            - `name` string, required: The name of the polygon.
            - `vertices` VertexRequestBody[]: The vertices of the polygon geofence. These geofence vertices describe the perimeter of the polygon, and must consist of at least 3 vertices and less than 40.
              - …
          - `tagIds` string[]: All locations with selected tag will trigger.
      - `safetyBehavior` SafetyBehaviorTriggerDetailsObjectRequestBody: Details specific to Safety Behavior
        - `behaviorCount` BehaviorCountDetailsRequestBody: Trigger when behavior count meets the specified condition.
          - `comparison` 'EQUAL_TO' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUAL_TO' | 'LESS_THAN' | 'LESS_THAN_OR_EQUAL_TO', required: The comparison to use when comparing the value to the threshold. Valid values: `EQUAL_TO`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL_TO`, `LESS_THAN`, `LESS_THAN_OR_EQUAL_TO`
          - `numBehaviors` integer, required: The number of behaviors to compare to.
          - `numDays` integer, required: The number of days to compare to.
        - `behaviors` string[], required: On which safety behaviors to trigger on.
        - `drivers` DriverOrTagIdsDetailsRequestBody: Trigger when driver or tag IDs meet the specified condition.
          - `driverIds` string[]: On which driver IDs to trigger on.
          - `tagIds` string[]: On which tag IDs to trigger on.
        - `safetyScore` SafetyScoreDetailsRequestBody: Trigger when safety score meets the specified condition.
          - `comparison` 'EQUAL_TO' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUAL_TO' | 'LESS_THAN' | 'LESS_THAN_OR_EQUAL_TO', required: The comparison to use when comparing the value to the threshold. Valid values: `EQUAL_TO`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL_TO`, `LESS_THAN`, `LESS_THAN_OR_EQUAL_TO`
          - `score` integer, required: The score to compare to.
        - `severities` string[]: On which event severity to trigger on.
        - `statuses` string[]: On which event status to trigger on.
      - `scheduledMaintenance` ScheduledMaintenanceTriggerDetailsObjectRequestBody: Details specific to Scheduled Maintenance by Date
        - `dueInDays` integer, required: Alert when maintenance is due in the specified number of days.
        - `scheduleId` string, required: The id of the maintenance schedule.
      - `scheduledMaintenanceByEngineHours` ScheduledMaintenanceByEngineHoursDetailsObjectRequestBody: Details specific to Scheduled Maintenance By Engine Hours
        - `dueInHours` integer, required: Alert when maintenance is due in the specified number of hours.
        - `scheduleId` string, required: The id of the maintenance schedule.
      - `scheduledMaintenanceOdometer` ScheduledMaintenanceOdometerTriggerDetailsObjectRequestBody: Details specific to Scheduled Maintenance by Odometer
        - `dueInMeters` integer, required: Alert when vehicle odometer has this many meters left until maintenance is due.
        - `scheduleId` string, required: The id of the maintenance schedule.
      - `speed` SpeedTriggerDetailsObjectRequestBody: Details specific to Speed
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `operation` 'GREATER' | 'LESS', required: How to evaluate the threshold. Valid values: `GREATER`, `LESS`
        - `speedKilometersPerHour` integer, required: The speed threshold value.
      - `suddenFuelLevelDrop` SuddenFuelLevelDropTriggerDetailsObjectRequestBody: Details specific to Sudden Fuel Level Drop
        - `minFuelLevelChangeInPercents` integer, required: The minimum fuel level change in percents to trigger on. Need to be between 5 to 100.
      - `suddenFuelLevelRise` SuddenFuelLevelRiseTriggerDetailsObjectRequestBody: Details specific to Sudden Fuel Level Rise
        - `minFuelLevelChangeInPercents` integer, required: The minimum fuel level change in percents to trigger on. Need to be between 5 to 100.
      - `tireFaultCode` TireFaultCodeDetailsObjectRequestBody: Details specific to Tire Fault Code. At least one fault code or fault code group must be selected.
        - `hasCautionaryTireFaultCodes` boolean: If true then alert over pressure, under pressure, across axle fault, or leak detected fault codes. Defaults to false.
        - `hasCriticalTireFaultCodes` boolean: If true then alert over temperature or extreme pressure over or under fault codes. Defaults to false.
        - `manufacturer` 'MANUFACTURER_BENDIX' | 'MANUFACTURER_CONTINENTAL' | 'MANUFACTURER_DORAN' | 'MANUFACTURER_HENDRICKSON' | 'MANUFACTURER_INVALID' | 'MANUFACTURER_PASSENGER_CAN' | 'MANUFACTURER_PRESSURE_PRO' | 'MANUFACTURER_SENSATA' | 'MANUFACTURER_SYSGRATION' | 'MANUFACTURER_UNIVERSAL_J1939' | 'MANUFACTURER_UNIVERSAL_R141', required: The tire manufacturer. Valid values: `MANUFACTURER_BENDIX`, `MANUFACTURER_CONTINENTAL`, `MANUFACTURER_DORAN`, `MANUFACTURER_HENDRICKSON`, `MANUFACTURER_INVALID`, `MANUFACTURER_PASSENGER_CAN`, `MANUFACTURER_PRESSURE_PRO`, `MANUFACTURER_SENSATA`, `MANUFACTURER_SYSGRATION`, `MANUFACTURER_UNIVERSAL_J1939`, `MANUFACTURER_UNIVERSAL_R141`
        - `specificTireFaultCodes` string[]: The list of specific tire fault codes to be alerted on.
      - `trainingAssignmentNearDueDate` TrainingAssignmentNearDueDateTriggerDetailsObjectRequestBody: Details specific to Training Assignment Near Due Date
        - `assignmentGroups` TrainingAssignmentNearDueDateTriggerAssignmentGroupObjectRequestBody[]: The assignment groups the trigger is configured for.
          - `assignmentGroupType` 'CATEGORY' | 'COURSE', required: Assignment group type. Valid values: `CATEGORY`, `COURSE`
          - `assignmentGroupUuid` string, uuid, required: The unique ID of the assignment group.
        - `conditionUnits` 'DAYS' | 'WEEKS', required: Whether the trigger is configured in days or weeks. Valid values: `DAYS`, `WEEKS`
        - `conditionValue` integer, required: The number of days or weeks near the due date to trigger on.
        - `timezone` string, required: The timezone that the alert will be set up in.
      - `unassignedDriving` UnassignedDrivingTriggerDetailsObjectRequestBody: Details specific to Unassigned Driving
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
      - `vehicleBatteryVoltage` VehicleBatterVoltageDetailsObjectRequestBody: Details specific to Vehicle Battery Voltage
        - `batteryVolts` integer, required: The battery volt threshold value.
        - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `operation` 'GREATER' | 'LESS', required: How to evaluate the threshold. Valid values: `GREATER`, `LESS`
      - `vehicleFaultCode` VehicleFaultCodeDetailsObjectRequestBody: Details specific to Vehicle Fault Code. At least one fault code or fault code group must be selected.
        - `hasAnyAmberWarningLampCodes` boolean: If true then alert on codes for less serious errors that do not warrant stopping. Defaults to false.
        - `hasAnyFaultCodes` boolean: If true this means that any code is alertable. Defaults to false.
        - `hasAnyMalfunctionIndicatorLampCodes` boolean: If true then alert on emission-related codes. Defaults to false.
        - `hasAnyProtectionLampCodes` boolean: If true then alert on codes for non-electric vehicle parts. Defaults to false.
        - `hasAnyRedStopLampCodes` boolean: If true then alert when the vehicle warrants stopping. Defaults to false.
        - `hasAnyTrailerAbsLampCodes` boolean: If true then alert when the ABS light is on. Defaults to false.
        - `minDurationMilliseconds` integer: The number of milliseconds the trigger needs to stay active before alerting.
        - `specificFaultCodes` SpecificVehicleFaultCodeObjectRequestBody[]: The list of specific fault codes to be alerted on.
          - `faultCode` string, required: The specific fault code name.
          - `type` 'INVALID_FAULT_CODE_TYPE' | 'J1939_DTC' | 'J1939_SPN' | 'PASSENGER_DTC', required: The specific fault code type. Valid values: `INVALID_FAULT_CODE_TYPE`, `J1939_DTC`, `J1939_SPN`, `PASSENGER_DTC`
    - `triggerTypeId` integer, required: The id of the trigger type. Reference the following list for the ids: Ambient Temperature = 1003 Asset Reading = 1062 DVIR Submitted for Asset = 5005 Driver Recorded = 5027 Sudden Fuel Level Rise = 5034 Sudden Fuel Level Drop = 5035 Training Assignment Due Soon = 8003 Training Assignment Past Due = 8004 Asset assignment past due = 8014 Vehicle Speed = 1000 Fuel Level (Percentage) = 1005 Vehicle DEF Level (Percentage) = 1006 Vehicle Battery = 1007 Gateway Unplugged = 1009 Dashcam Disconnected = 1012 Camera Connector Disconnected = 1046 Asset starts moving = 1013 Inside Geofence = 1014 Outside Geofence = 1020 Unassigned Driving = 1016 Driver HOS Violation = 1018 Vehicle Engine Idle = 1019 Asset Engine On = 1021 Asset Engine Off = 1022 Scheduled Maintenance = 1024 Scheduled Maintenance by Odometer = 1025 Scheduled Maintenance by Engine Hours = 1026 Out of Route = 1027 GPS Signal Loss = 1032 Cell Signal Loss = 1033 Fault Code = 1029 Tire Faults = 1043 Gateway Disconnected = 1030 Panic Button = 1034 Tampering Detected = 1045 If vehicle is severely speeding (as defined by your organization) = 5022 Driver Document Submitted = 5009 Driver App Sign In = 5012 Driver App Sign Out = 5013 Geofence Entry = 5016 Geofence Exit = 5017 Route Stop ETA Alert = 5018 A safety event occurred with a driver assigned = 5033 A safety event occurred = 5039 Scheduled Date And Time = 8001 The following trigger types are Deprecated: Harsh Event = 1023

## Response `200`

OK response.

- AlertsPostConfigurationsResponseBody
  - `data` PostResponseResWorkflowConfigurationObjectResponseBody, required: The configuration of a alert.
    - `actions` ActionObjectResponseBody[], required: An array of actions.
      - `actionParams` ActionParamsObjectResponseBody: The action type specific details. Set webhookIds for Slack or Webhook actions. Set recipients for Notifications. Set driverAppNotification for Driver App Push. Other action types don't need to set a param.
        - `driverAppNotification` DriverAppNotificationObjectResponseBody: Driver app notification settings
          - `inAppNotificationOptions` InAppNotificationOptionsObjectResponseBody: Options for in-app notifications
            - `canDictateAlertTitle` boolean: Whether the alert will dictate the title of the alert. Both canDictateAlertTitle and canPlayAlertSound should be enabled or disabled together.
            - `canPlayAlertSound` boolean: Whether the alert will play a sound. Both canDictateAlertTitle and canPlayAlertSound should be enabled or disabled together.
            - `customText` string: Custom text to display in the notification (320 character max).
            - `isEnabled` boolean, required: Whether in-app notifications are enabled.
          - `pushNotificationOptions` PushNotificationOptionsObjectResponseBody: Options for push notifications
            - `isEnabled` boolean, required: Whether push notifications are enabled.
        - `recipients` RecipientObjectResponseBody[]: Recipient of the action.
          - `contactId` string: The ID of the contact.
          - `notificationTypes` string[]: How the user/contact/role should be notified.
          - `roleId` string: The ID of the role.
          - `type` 'user' | 'contact' | 'role', required: The type of recipients Valid values: `user`, `contact`, `role`
          - `userId` string: The ID of the user.
        - `webhooks` WebhookParamsObjectResponseBody: The webhook configuration for an Action.
          - `payloadType` 'legacy' | 'enriched': This determines the alert webhook payload type to use. Learn more: https://developers.samsara.com/docs/webhook-reference. Valid values: `legacy`, `enriched`
          - `webhookIds` string[], required: The webhook IDs.
      - `actionTypeId` integer, required: The id of the of the action type. Reference the following list for the ids: The following action types are in Beta: Driver App Push = 5 Functions = 14 The following action types are Stable: Notification (Email, Text, Samsara Fleet Push) = 1 Dashboard Notification = 3 Webhook = 4 Slack = 6
    - `createdAtTime` string, required: The time the configuration was created in RFC 3339 format.
    - `externalIds` object: A map of external ids
    - `id` string, required: The unqiue Samsara id of the alert configuration.
    - `isEnabled` boolean, required: Whether the alert is enabled or not.
    - `lastModifiedAtTime` string, required: The time the configuration was last modified in RFC 3339 format.
    - `name` string, required: The custom name of the configuration.
    - `operationalSettings` OperationalSettingsObjectResponseBody: Settings on when the alert should be operational.
      - `timeRangeType` 'activeBetween' | 'inactiveBetween', required: The type of time ranges. Valid values: `activeBetween`, `inactiveBetween`
      - `timeRanges` TimeRangeObjectResponseBody[], required: The time ranges this alert applies to.
        - `daysOfWeek` string[], required: Which days this timezone applies to.
        - `endTime` string, required: The time of day at which the time range starts. In 24 hour kitchen clock format.
        - `startTime` string, required: The time of day at which the time range starts. In 24 hour kitchen clock format.
        - `timezone` string, required: The timezone of the time range uses [IANA timezone database](https://www.iana.org/time-zones) keys (e.g. `America/Los_Angeles`, `America/New_York`, `Europe/London`, etc.). You can find a mapping of common timezone formats to IANA timezone keys [here](https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html).
    - `scope` ScopeObjectResponseBody, required: What the triggers are scoped to. These are the objects this alert applies to.
      - `all` boolean, required: Whether it applies to all applicable objects.
      - `assets` TinyAssetObjectResponseBody[]: The assets these triggers are scoped to.
        - `assetId` string, required: ID of the asset.
        - `assetType` 'uncategorized' | 'trailer' | 'equipment' | 'unpowered' | 'vehicle', required: The operational context in which the asset interacts with the Samsara system. Examples: Vehicle (eg: truck, bus...), Trailer (eg: dry van, reefer, flatbed...), Powered Equipment (eg: dozer, crane...), Unpowered Equipment (eg: container, dumpster...), or Uncategorized. Valid values: `uncategorized`, `trailer`, `equipment`, `unpowered`, `vehicle`
      - `drivers` TinyDriverObjectResponseBody[]: The drivers these triggers are scoped to.
        - `driverId` string, required: ID of the driver.
      - `tags` GoaTagTinyResponseResponseBody[]: The tags these triggers are scoped to.
        - `id` string, required: ID of the tag
        - `name` string, required: Name of the tag.
        - `parentTagId` string: If this tag is part a hierarchical tag tree, this is the ID of the parent tag, otherwise this will be omitted.
      - `widgets` TinyWidgetObjectResponseBody[]: The widgets these triggers are scoped to.
        - `widgetId` string, required: ID of the widget.
    - `triggers` WorkflowTriggerObjectResponseBody[], required: An array of triggers.
      - `triggerParams` TriggerParamsObjectResponseBody: The trigger type specific details. Only the field that corresponds to the trigger type is filled in.
        - `ambientTemperature` AmbientTemperatureDetailsObjectResponseBody: Details specific to Ambient Temperature.
          - `cargoIsFull` boolean: Whether the cargo is full.
          - `doorsAreClosed` boolean: Whether the doors are closed.
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
          - `operation` 'GREATER' | 'INSIDE_RANGE' | 'LESS' | 'OUTSIDE_RANGE', required: How to evaluate the threshold. Valid values: `GREATER`, `INSIDE_RANGE`, `LESS`, `OUTSIDE_RANGE`
          - `temperatureCelcius` integer, required: The temperature in Celcius threshold value.
        - `cellSignalLoss` CellSignalLossDetailsObjectResponseBody: Details specific to Cell Signal Loss
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `defLevel` DefLevelTriggerDetailsObjectResponseBody: Details specific to DEF Level
          - `defLevelPercent` integer, required: The DEF percentage threshold value.
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
          - `operation` 'GREATER' | 'LESS', required: How to evaluate the threshold. Valid values: `GREATER`, `LESS`
        - `deviceMovement` DeviceMovementTriggerDetailsObjectResponseBody: Details specific to Device Movement
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `documentSubmitted` DriverDocumentSubmittedDetailsObjectResponseBody: Details specific to Driver Document Submitted
          - `templateIds` string[], required: Specific template IDs to be alerted on.
        - `dvirSubmittedDevice` DVIRSubmittedDeviceTriggerDetailsObjectResponseBody: Details specific to DVIR Submitted by Device
          - `dvirMinDurationMilliseconds` integer: The trigger will only fire if the selected DVIR types are submitted within the duration.
          - `dvirSubmissionTypes` string[]: Filter to these types of DVIR submissions.
        - `engineIdle` EngineIdleTriggerDetailsObjectResponseBody: Details specific to Engine Idle
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `engineOff` EngineOffDetailsObjectResponseBody: Details specific to Engine Off
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `engineOn` EngineOnDetailsObjectResponseBody: Details specific to Engine On
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `fuelLevel` FuelLevelTriggerDetailsObjectResponseBody: Details specific to Fuel Level Percentage
          - `fuelLevelPercent` integer, required: The fuel level percentage threshold value.
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
          - `operation` 'LESS', required: How to evaluate the threshold. Valid values: `LESS`
        - `gatewayDisconnected` GatewayDisconnectedDetailsObjectResponseBody: Details specific to Gateway Disconnected
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting. Can only be either 900000 (15 minutes) or 3600000 (60 min).
        - `gatewayUnplugged` GatewayUnpluggedTriggerDetailsObjectResponseBody: Details specific to Gateway Unplugged
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `geofenceEntry` GeofenceEntryTriggerDetailsObjectResponseBody: Details specific to Geofence Entry
          - `location` LocationObjectResponseBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
            - `addressIds` string[]: All locations with selected address IDs will trigger.
            - `addressTypes` string[]: All locations with the selected address types will trigger.
            - `circle` CircleResponseBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
              - …
            - `polygon` PolygonResponseBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
              - …
            - `tagIds` string[]: All locations with selected tag will trigger.
        - `geofenceExit` GeofenceExitTriggerDetailsObjectResponseBody: Details specific to Geofence Exit
          - `location` LocationObjectResponseBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
            - `addressIds` string[]: All locations with selected address IDs will trigger.
            - `addressTypes` string[]: All locations with the selected address types will trigger.
            - `circle` CircleResponseBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
              - …
            - `polygon` PolygonResponseBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
              - …
            - `tagIds` string[]: All locations with selected tag will trigger.
        - `gpsSignalLoss` GpsSignalLossDetailsObjectResponseBody: Details specific to GPS Signal Loss
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `harshEvent` HarshEventTriggerDetailsObjectResponseBody: Details specific to Harsh Events
          - `types` string[], required: On which harsh events to trigger on.
        - `hosViolation` HOSViolationTriggerDetailsObjectResponseBody: Details specific to HOS Violation
          - `maxUntilViolationMilliseconds` integer, required: Alert if driver has this specified time until driving causes an HOS violation.
          - `violation` 'CaliforniaMealbreakMissed' | 'CycleHoursOn' | 'DailyDrivingHours' | 'DailyOnDutyHours' | 'Invalid' | 'RestbreakMissed' | 'ShiftDrivingHours' | 'ShiftHours' | 'ShiftOnDutyHours' | 'UnsubmittedLogs', required: The type of HOS violation. Valid values: `CaliforniaMealbreakMissed`, `CycleHoursOn`, `DailyDrivingHours`, `DailyOnDutyHours`, `Invalid`, `RestbreakMissed`, `ShiftDrivingHours`, `ShiftHours`, `ShiftOnDutyHours`, `UnsubmittedLogs`
        - `insideGeofence` InsideGeofenceTriggerDetailsObjectResponseBody: Details specific to Inside Geofence
          - `location` LocationObjectResponseBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
            - `addressIds` string[]: All locations with selected address IDs will trigger.
            - `addressTypes` string[]: All locations with the selected address types will trigger.
            - `circle` CircleResponseBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
              - …
            - `polygon` PolygonResponseBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
              - …
            - `tagIds` string[]: All locations with selected tag will trigger.
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `outOfRoute` OutOfRouteDetailsObjectResponseBody: Details specific to Out Of Route
          - `maxOffRouteMeters` integer, required: The minimum distance in meters a vehicle has to be from its active route path to be considered out of its route.
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `outsideGeofence` OutsideGeofenceTriggerDetailsObjectResponseBody: Details specific to Outside Geofence
          - `location` LocationObjectResponseBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
            - `addressIds` string[]: All locations with selected address IDs will trigger.
            - `addressTypes` string[]: All locations with the selected address types will trigger.
            - `circle` CircleResponseBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
              - …
            - `polygon` PolygonResponseBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
              - …
            - `tagIds` string[]: All locations with selected tag will trigger.
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `panicButton` PanicButtonDetailsObjectResponseBody: Details specific to Panic Button
          - `isFilteringOutPowerLoss` boolean, required: If true, only receive alerts when the panic button is pressed, otherwise receive alerts when the panic button is pressed or looses connection.
        - `reading` ReadingTriggerDetailsObjectResponseBody: Details specific to reading based Trigger, readings can be discovered through the Readings API.
          - `continuousThreshold` ReadingTriggerContinuousValueObjectResponseBody: Threshold to alert on if reading is continuous, either enum or continuous threshold may be set.
            - `operation` 'GREATER' | 'INSIDE_RANGE' | 'LESS' | 'OUTSIDE_RANGE', required: The operation to use when comparing the value to the threshold. Valid values: `GREATER`, `INSIDE_RANGE`, `LESS`, `OUTSIDE_RANGE`
            - `threshold` integer, required: The lower threshold of criticality.
            - `unit` 'ampere' | 'bar' | 'cad' | 'celsius' | 'chf' | 'day' | 'decimaldegrees' | 'eur' | 'fahrenheit' | 'foot' | 'gallon' | 'gallonperkilogram' | 'gallonsperhour' | 'galpermi' | 'gbp' | 'gforce' | 'gperliter' | 'gperm' | 'hertz' | 'hour' | 'imperialgallonperkilogram' | 'impgallon' | 'impgallonsperhour' | 'impgalpermi' | 'inch' | 'kelvin' | 'kgper100kmgaseousfuel' | 'kgpergallon' | 'kgperkm' | 'kgperliter' | 'kgpermi' | 'kilogram' | 'kilogramgaseousfuel' | 'kilometer' | 'kilopascal' | 'kilowatthour' | 'kmperhr' | 'kmperl' | 'kmperlgaseousfuel' | 'lbpermi' | 'liter' | 'litergaseousfuel' | 'literperkilogram' | 'literpertonne' | 'litersperhour' | 'lper100km' | 'lper100kmgaseousfuel' | 'lperkm' | 'lperm' | 'meter' | 'meterspersec' | 'mile' | 'milliknot' | 'millisecond' | 'millivolt' | 'minute' | 'mipergal' | 'miperhr' | 'miperimpgal' | 'month' | 'mpgusgalgaseousfuel' | 'mpkggaseousfuel' | 'mxn' | 'percent' | 'pound' | 'poundsPerSquareInch' | 'poundspergallon' | 'poundsperliter' | 'rpm' | 'second' | 'usd' | 'usgallongaseousfuel' | 'volt' | 'voltAmpere' | 'voltAmpereReactive' | 'watt' | 'watthour' | 'week': The unit of the threshold defined by reading type. If not provided base unit of the reading will be used. Valid values: `ampere`, `bar`, `cad`, `celsius`, `chf`, `day`, `decimaldegrees`, `eur`, `fahrenheit`, `foot`, `gallon`, `gallonperkilogram`, `gallonsperhour`, `galpermi`, `gbp`, `gforce`, `gperliter`, `gperm`, `hertz`, `hour`, `imperialgallonperkilogram`, `impgallon`, `impgallonsperhour`, `impgalpermi`, `inch`, `kelvin`, `kgper100kmgaseousfuel`, `kgpergallon`, `kgperkm`, `kgperliter`, `kgpermi`, `kilogram`, `kilogramgaseousfuel`, `kilometer`, `kilopascal`, `kilowatthour`, `kmperhr`, `kmperl`, `kmperlgaseousfuel`, `lbpermi`, `liter`, `litergaseousfuel`, `literperkilogram`, `literpertonne`, `litersperhour`, `lper100km`, `lper100kmgaseousfuel`, `lperkm`, `lperm`, `meter`, `meterspersec`, `mile`, `milliknot`, `millisecond`, `millivolt`, `minute`, `mipergal`, `miperhr`, `miperimpgal`, `month`, `mpgusgalgaseousfuel`, `mpkggaseousfuel`, `mxn`, `percent`, `pound`, `poundsPerSquareInch`, `poundspergallon`, `poundsperliter`, `rpm`, `second`, `usd`, `usgallongaseousfuel`, `volt`, `voltAmpere`, `voltAmpereReactive`, `watt`, `watthour`, `week`
            - `upperThreshold` integer: The upper threshold of criticality. Required for RANGE operations.
          - `entityType` string, required: The type of the entity associated with the reading.
          - `enumThreshold` ReadingTriggerEnumValueObjectResponseBody: Enum value to alert on if reading is discrete, either enum or continuous threshold may be set.
            - `number` integer: The numeric representation of the enum value.
            - `symbol` string: The symbol representation of the enum value.
          - `id` string, required: The ID of the reading.
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `routeStopEstimatedArrival` RouteStopEstimatedArrivalDetailsObjectResponseBody: Details specific to Route Stop Estimated Arrival
          - `alertBeforeArrivalMilliseconds` integer, required: Time threshold for when to send an alert. Sends an alert when the ETA is less than the threshold.
          - `hasLiveShareLink` boolean: If true, will include a live sharing link in the alert. Defaults to false.
          - `isAlertOnRouteStopOnly` boolean: If true, will only alert if the vehicle is en-route to the stop. Defaults to false.
          - `location` LocationObjectResponseBody, required: A location. Polygon and Circle is deprecated, but may be set for old Alerts. At least one location must be selected.
            - `addressIds` string[]: All locations with selected address IDs will trigger.
            - `addressTypes` string[]: All locations with the selected address types will trigger.
            - `circle` CircleResponseBody: Information about a circular geofence. This field is only needed if the geofence is a circle.
              - …
            - `polygon` PolygonResponseBody: Information about a polygon geofence. This field is only needed if the geofence is a polygon.
              - …
            - `tagIds` string[]: All locations with selected tag will trigger.
        - `safetyBehavior` SafetyBehaviorTriggerDetailsObjectResponseBody: Details specific to Safety Behavior
          - `behaviorCount` BehaviorCountDetailsResponseBody: Trigger when behavior count meets the specified condition.
            - `comparison` 'EQUAL_TO' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUAL_TO' | 'LESS_THAN' | 'LESS_THAN_OR_EQUAL_TO', required: The comparison to use when comparing the value to the threshold. Valid values: `EQUAL_TO`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL_TO`, `LESS_THAN`, `LESS_THAN_OR_EQUAL_TO`
            - `numBehaviors` integer, required: The number of behaviors to compare to.
            - `numDays` integer, required: The number of days to compare to.
          - `behaviors` string[], required: On which safety behaviors to trigger on.
          - `drivers` DriverOrTagIdsDetailsResponseBody: Trigger when driver or tag IDs meet the specified condition.
            - `driverIds` string[]: On which driver IDs to trigger on.
            - `tagIds` string[]: On which tag IDs to trigger on.
          - `safetyScore` SafetyScoreDetailsResponseBody: Trigger when safety score meets the specified condition.
            - `comparison` 'EQUAL_TO' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUAL_TO' | 'LESS_THAN' | 'LESS_THAN_OR_EQUAL_TO', required: The comparison to use when comparing the value to the threshold. Valid values: `EQUAL_TO`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL_TO`, `LESS_THAN`, `LESS_THAN_OR_EQUAL_TO`
            - `score` integer, required: The score to compare to.
          - `severities` string[]: On which event severity to trigger on.
          - `statuses` string[]: On which event status to trigger on.
        - `scheduledMaintenance` ScheduledMaintenanceTriggerDetailsObjectResponseBody: Details specific to Scheduled Maintenance by Date
          - `dueInDays` integer, required: Alert when maintenance is due in the specified number of days.
          - `scheduleId` string, required: The id of the maintenance schedule.
        - `scheduledMaintenanceByEngineHours` ScheduledMaintenanceByEngineHoursDetailsObjectResponseBody: Details specific to Scheduled Maintenance By Engine Hours
          - `dueInHours` integer, required: Alert when maintenance is due in the specified number of hours.
          - `scheduleId` string, required: The id of the maintenance schedule.
        - `scheduledMaintenanceOdometer` ScheduledMaintenanceOdometerTriggerDetailsObjectResponseBody: Details specific to Scheduled Maintenance by Odometer
          - `dueInMeters` integer, required: Alert when vehicle odometer has this many meters left until maintenance is due.
          - `scheduleId` string, required: The id of the maintenance schedule.
        - `speed` SpeedTriggerDetailsObjectResponseBody: Details specific to Speed
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
          - `operation` 'GREATER' | 'LESS', required: How to evaluate the threshold. Valid values: `GREATER`, `LESS`
          - `speedKilometersPerHour` integer, required: The speed threshold value.
        - `suddenFuelLevelDrop` SuddenFuelLevelDropTriggerDetailsObjectResponseBody: Details specific to Sudden Fuel Level Drop
          - `minFuelLevelChangeInPercents` integer, required: The minimum fuel level change in percents to trigger on. Need to be between 5 to 100.
        - `suddenFuelLevelRise` SuddenFuelLevelRiseTriggerDetailsObjectResponseBody: Details specific to Sudden Fuel Level Rise
          - `minFuelLevelChangeInPercents` integer, required: The minimum fuel level change in percents to trigger on. Need to be between 5 to 100.
        - `tireFaultCode` TireFaultCodeDetailsObjectResponseBody: Details specific to Tire Fault Code. At least one fault code or fault code group must be selected.
          - `hasCautionaryTireFaultCodes` boolean: If true then alert over pressure, under pressure, across axle fault, or leak detected fault codes. Defaults to false.
          - `hasCriticalTireFaultCodes` boolean: If true then alert over temperature or extreme pressure over or under fault codes. Defaults to false.
          - `manufacturer` 'MANUFACTURER_BENDIX' | 'MANUFACTURER_CONTINENTAL' | 'MANUFACTURER_DORAN' | 'MANUFACTURER_HENDRICKSON' | 'MANUFACTURER_INVALID' | 'MANUFACTURER_PASSENGER_CAN' | 'MANUFACTURER_PRESSURE_PRO' | 'MANUFACTURER_SENSATA' | 'MANUFACTURER_SYSGRATION' | 'MANUFACTURER_UNIVERSAL_J1939' | 'MANUFACTURER_UNIVERSAL_R141', required: The tire manufacturer. Valid values: `MANUFACTURER_BENDIX`, `MANUFACTURER_CONTINENTAL`, `MANUFACTURER_DORAN`, `MANUFACTURER_HENDRICKSON`, `MANUFACTURER_INVALID`, `MANUFACTURER_PASSENGER_CAN`, `MANUFACTURER_PRESSURE_PRO`, `MANUFACTURER_SENSATA`, `MANUFACTURER_SYSGRATION`, `MANUFACTURER_UNIVERSAL_J1939`, `MANUFACTURER_UNIVERSAL_R141`
          - `specificTireFaultCodes` string[]: The list of specific tire fault codes to be alerted on.
        - `trainingAssignmentNearDueDate` TrainingAssignmentNearDueDateTriggerDetailsObjectResponseBody: Details specific to Training Assignment Near Due Date
          - `assignmentGroups` TrainingAssignmentNearDueDateTriggerAssignmentGroupObjectResponseBody[]: The assignment groups the trigger is configured for.
            - `assignmentGroupType` 'CATEGORY' | 'COURSE', required: Assignment group type. Valid values: `CATEGORY`, `COURSE`
            - `assignmentGroupUuid` string, uuid, required: The unique ID of the assignment group.
          - `conditionUnits` 'DAYS' | 'WEEKS', required: Whether the trigger is configured in days or weeks. Valid values: `DAYS`, `WEEKS`
          - `conditionValue` integer, required: The number of days or weeks near the due date to trigger on.
          - `timezone` string, required: The timezone that the alert will be set up in.
        - `unassignedDriving` UnassignedDrivingTriggerDetailsObjectResponseBody: Details specific to Unassigned Driving
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
        - `vehicleBatteryVoltage` VehicleBatterVoltageDetailsObjectResponseBody: Details specific to Vehicle Battery Voltage
          - `batteryVolts` integer, required: The battery volt threshold value.
          - `minDurationMilliseconds` integer, required: The number of milliseconds the trigger needs to stay active before alerting.
          - `operation` 'GREATER' | 'LESS', required: How to evaluate the threshold. Valid values: `GREATER`, `LESS`
        - `vehicleFaultCode` VehicleFaultCodeDetailsObjectResponseBody: Details specific to Vehicle Fault Code. At least one fault code or fault code group must be selected.
          - `hasAnyAmberWarningLampCodes` boolean: If true then alert on codes for less serious errors that do not warrant stopping. Defaults to false.
          - `hasAnyFaultCodes` boolean: If true this means that any code is alertable. Defaults to false.
          - `hasAnyMalfunctionIndicatorLampCodes` boolean: If true then alert on emission-related codes. Defaults to false.
          - `hasAnyProtectionLampCodes` boolean: If true then alert on codes for non-electric vehicle parts. Defaults to false.
          - `hasAnyRedStopLampCodes` boolean: If true then alert when the vehicle warrants stopping. Defaults to false.
          - `hasAnyTrailerAbsLampCodes` boolean: If true then alert when the ABS light is on. Defaults to false.
          - `minDurationMilliseconds` integer: The number of milliseconds the trigger needs to stay active before alerting.
          - `specificFaultCodes` SpecificVehicleFaultCodeObjectResponseBody[]: The list of specific fault codes to be alerted on.
            - `faultCode` string, required: The specific fault code name.
            - `type` 'INVALID_FAULT_CODE_TYPE' | 'J1939_DTC' | 'J1939_SPN' | 'PASSENGER_DTC', required: The specific fault code type. Valid values: `INVALID_FAULT_CODE_TYPE`, `J1939_DTC`, `J1939_SPN`, `PASSENGER_DTC`
      - `triggerTypeId` integer, required: The id of the trigger type. Reference the following list for the ids: Ambient Temperature = 1003 Asset Reading = 1062 DVIR Submitted for Asset = 5005 Driver Recorded = 5027 Sudden Fuel Level Rise = 5034 Sudden Fuel Level Drop = 5035 Training Assignment Due Soon = 8003 Training Assignment Past Due = 8004 Asset assignment past due = 8014 Vehicle Speed = 1000 Fuel Level (Percentage) = 1005 Vehicle DEF Level (Percentage) = 1006 Vehicle Battery = 1007 Gateway Unplugged = 1009 Dashcam Disconnected = 1012 Camera Connector Disconnected = 1046 Asset starts moving = 1013 Inside Geofence = 1014 Outside Geofence = 1020 Unassigned Driving = 1016 Driver HOS Violation = 1018 Vehicle Engine Idle = 1019 Asset Engine On = 1021 Asset Engine Off = 1022 Scheduled Maintenance = 1024 Scheduled Maintenance by Odometer = 1025 Scheduled Maintenance by Engine Hours = 1026 Out of Route = 1027 GPS Signal Loss = 1032 Cell Signal Loss = 1033 Fault Code = 1029 Tire Faults = 1043 Gateway Disconnected = 1030 Panic Button = 1034 Tampering Detected = 1045 If vehicle is severely speeding (as defined by your organization) = 5022 Driver Document Submitted = 5009 Driver App Sign In = 5012 Driver App Sign Out = 5013 Geofence Entry = 5016 Geofence Exit = 5017 Route Stop ETA Alert = 5018 A safety event occurred with a driver assigned = 5033 A safety event occurred = 5039 Scheduled Date And Time = 8001 The following trigger types are Deprecated: Harsh Event = 1023

## Other responses

- `401`: Unauthorized response.
- `404`: Not Found response.
- `405`: Method Not Allowed response.
- `413`: Content Too Large response.
- `429`: Too Many Requests response.
- `500`: Internal Server Error response.
- `501`: Not Implemented response.
- `502`: Bad Gateway response.
- `503`: Service Unavailable response.
- `504`: Gateway Timeout response.
- `default`: Bad Request response.

---

[API](https://skmtc.dev/samsara/apis/samsara-api.md) - [All operations](https://skmtc.dev/samsara/apis/samsara-api/llms.txt) - [OpenAPI document](https://skmtc.dev/samsara/apis/samsara-api/revisions/a9e35d4999be?raw)
