---
title: "Create Notification Trigger"
method: POST
path: "/v1/notification-triggers"
tags: ["Notifications"]
---

# Create Notification Trigger

`POST /v1/notification-triggers`

## Request

- Base URL: `https://api.sandbox.usenash.com`
- URL: `https://api.sandbox.usenash.com/v1/notification-triggers`
- Auth: none declared

Create a notification trigger on the authenticated organization. The request body is a discriminated union on `type`: each trigger type (see GET /v1/notification-triggers/templates) has its own typed `parameters` shape in the OpenAPI schema. An invalid `type` returns a 400 listing all valid types. Use the `Nash-Org-Id` header to scope creation to a specific org (e.g. a child org).

## Request body

- union: Root serializer for POST /v1/notification-triggers. Thin wrapper over the ``type``-discriminated union so flask-openapi3 can consume it as a body type; callers send the trigger object directly at the top level of the JSON body.
  - CreateDeliveryStatusTransitionTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'delivery_status_transition', required
    - `parameters` union, required
      - object
        - `deliveryStatus` string, nullable, required
        - `deliveryStatuses` string[], nullable: Delivery statuses that independently trigger the notification. This list takes precedence over deliveryStatus when both are supplied.
        - `sendScheduledMessage` boolean, nullable: If true, schedule the message to send at a later time instead of firing immediately.
        - `scheduledSendDeltaMinutes` integer, nullable: Minutes after the status transition to send the scheduled message (15 min to 3 days).
      - object
        - `deliveryStatuses` string[], nullable, required
        - `deliveryStatus` string, nullable: Legacy single delivery status that triggers the notification.
        - `sendScheduledMessage` boolean, nullable: If true, schedule the message to send at a later time instead of firing immediately.
        - `scheduledSendDeltaMinutes` integer, nullable: Minutes after the status transition to send the scheduled message (15 min to 3 days).
  - CreateDriverGeolocationTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'driver_geolocation', required
    - `parameters` union, required
      - DriverGeolocationWithinParams
        - `metricValue` number, required: Numeric threshold for the condition.
        - `deliveryStatus` string, required: Delivery status this rule applies to.
        - `hasCancellationReason` boolean, nullable
        - `firstTaskOnly` boolean, nullable
        - `statusHistoryIncludes` string, nullable
        - `statusHistoryDoesNotInclude` string, nullable
        - `condition` 'within'
        - `metricName` 'minutes' | 'miles' | 'kilometers'
        - `location` 'pickup_location' | 'dropoff_location', required
      - DriverGeolocationGreaterThanParams
        - `metricValue` number, required: Numeric threshold for the condition.
        - `deliveryStatus` string, required: Delivery status this rule applies to.
        - `hasCancellationReason` boolean, nullable
        - `firstTaskOnly` boolean, nullable
        - `statusHistoryIncludes` string, nullable
        - `statusHistoryDoesNotInclude` string, nullable
        - `condition` 'greater_than'
        - `metricName` 'minutes' | 'miles' | 'kilometers'
        - `location` 'pickup_location' | 'dropoff_location', required
      - DriverGeolocationStoppedForParams
        - `metricValue` number, required: Numeric threshold for the condition.
        - `deliveryStatus` string, required: Delivery status this rule applies to.
        - `hasCancellationReason` boolean, nullable
        - `firstTaskOnly` boolean, nullable
        - `statusHistoryIncludes` string, nullable
        - `statusHistoryDoesNotInclude` string, nullable
        - `condition` 'stopped_for'
        - `metricName` 'minutes'
  - CreateTaskReassignmentTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'task_reassignment', required
    - `parameters` TaskReassignmentParams, required
      - `metricValue` number, required
      - `metricName` 'number_of_times'
      - `sendOnEveryTaskReassignment` boolean, required
  - CreateDeliveryIncidentReportTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'delivery_incident_report', required
    - `parameters` DeliveryIncidentReportParams, required
      - `dirType` 'all' | 'refund_request'
      - `dirCreated` boolean
      - `dirResolved` boolean
  - CreateStuckStatusTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'stuck_status', required
    - `parameters` StuckStatusParams, required
      - `metricValue` number, required
      - `metricName` 'hours' | 'minutes', nullable
      - `deliveryStatus` string, required
      - `activateBeforePickup` boolean
      - `metricValue2` number, nullable
      - `metricName2` 'hours' | 'minutes', nullable
  - CreateStatusChangedTooQuicklyTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'status_changed_too_quickly', required
    - `parameters` StatusesChangedTooQuicklyParams, required
      - `metricValue` number, required
      - `metricName` 'seconds'
      - `deliveryStatus1` string, required
      - `deliveryStatus2` string, required
  - CreateDriverLocationVsDeliveryStatusTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'driver_location_vs_delivery_status', required
    - `parameters` DriverLocationVsDeliveryStatusParams, required
      - `metricValue` number, required
      - `metricName` 'miles'
      - `deliveryStatus` string, required
  - CreateDropoffDelayedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'dropoff_delayed', required
    - `parameters` DropoffDelayedParams, required
      - `metricValue` number, required
      - `metricName` 'minutes'
  - CreatePickupDelayedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'pickup_delayed', required
    - `parameters` PickupDelayedParams, required
      - `metricValue` number, required
      - `metricName` 'minutes'
  - CreateOrderNeedsAttentionTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'order_needs_attention', required
    - `parameters` OrderNeedsAttentionParams, required
      - `onlyOrdersWithDeliveryWindows` boolean
  - CreateAutodispatchFailedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'autodispatch_failed', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateAddressValidationFailedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'address_validation_failed', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateOrderReadyToFulfillTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'order_ready_to_fulfill', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateJobCreationFailedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'job_creation_failed', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateTaskHealthStatusTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'task_health_status', required
    - `parameters` TaskHealthStatusParams, required
      - `status` string, required
      - `healthStatus` string, required
  - CreateTasksAttemptsExhaustedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'tasks_attempts_exhausted', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateDeliveryCancellationFailedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'delivery_cancellation_failed', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateInternalDriverNotAssignedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'internal_driver_not_assigned', required
    - `parameters` InternalDriverNotAssignedParams, required
      - `minutes` number, required
      - `referenceStatus` 'job_created' | 'pickup_start_time'
  - CreateNashAiInvalidPodTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'nash_ai_invalid_pod', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateDeliveryCompletedTooEarlyTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'delivery_completed_too_early', required
    - `parameters` DeliveryCompletedTooEarlyParams, required
      - `metricValue` number, required
  - CreateStatusTriggeredTooEarlyTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'status_triggered_too_early', required
    - `parameters` StatusTriggeredTooEarlyParams, required
      - `metricValue` number, required
      - `deliveryStatus` string, required
  - CreateOrderNotDispatchedCloseToPickupTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'order_not_dispatched_close_to_pickup', required
    - `parameters` OrderNotDispatchedParams, required
      - `metricValue` number, required
  - CreateRefundRequestTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'refund_request', required
    - `parameters` RefundRequestParams, required
      - `statuses` string[], required
  - CreateOptimizationOrderUnassignedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'optimization_order_unassigned', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateZoneGeolocationTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'zone_geolocation', required
    - `parameters` ZoneGeolocationParams, required
      - `zoneIds` string[], nullable
  - CreateApiBasedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'api_based', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateOptimizationActionStatusTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'optimization_action_status', required
    - `parameters` OptimizationActionStatusParams, required
      - `optimizationActionStatus` 'failed' | 'success' | 'skipped', required
  - CreateDriverStackingTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'driver_stacking', required
    - `parameters` DriverStackingParams, required
      - `annotateAllDeliveries` boolean
      - `matchCourierAcrossProviders` boolean
  - CreateTimeElapsedSinceStatusTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'time_elapsed_since_status', required
    - `parameters` TimeElapsedSinceStatusParams, required
      - `checkAfterMinutes` integer, nullable
      - `deliveryStatus` string, required
      - `statusCondition` 'in' | 'not_in'
      - `deliveryStatusArray` string[], required
  - CreateActivityStatusTransitionTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'activity_status_transition', required
    - `parameters` ActivityStatusTransitionParams, required
      - `activityStatus` 'QUEUED' | 'IN_PROGRESS' | 'SUCCESS' | 'FAILED' | 'CANCELLED' | 'SKIPPED' | 'SCHEDULED', required: Status of an activity.
      - `activityActions` ActivityAction[], required
  - CreateDemoTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'demo', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateCustomEventListenerTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'custom_event_listener', required
    - `parameters` CustomEventListenerParams, required
      - `eventNames` string[], required
  - CreateProofOfDeliveryUploadedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'proof_of_delivery_uploaded', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateCourierUpdatedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'courier_updated', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateTimingUpdatedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'timing_updated', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateAiConversationCompletedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'ai_conversation_completed', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateDeliveryWindowBookedTimeoutTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'delivery_window_booked_timeout', required
    - `parameters` DeliveryWindowBookedTimeoutParams, required
      - `timeoutMinutes` integer, required
  - CreateOrderModifiedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'order_modified', required
    - `parameters` OrderModifiedParams
      - `modifiedFields` OrderModifiedField[], required: Order fields whose modification fires the trigger. The trigger fires when any of the selected fields changes on an order. Select one, several, or all fields.
  - CreateRouteStatusTransitionTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'route_status_transition', required
    - `parameters` RouteStatusTransitionParams
      - `routeStatus` 'created' | 'assigned' | 'started' | 'in_progress' | 'completed' | 'failed' | 'canceled': Status enum for Routes.
      - `routeStatuses` RouteStatus[], nullable: Fire only when a route transitions into one of these statuses. Omit to fire on every transition; an empty list is rejected (the handler treats a falsy list as no scope, so an empty list would silently fire on every transition rather than none).
  - CreateOrderTimeTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'order_pickup_start_time' | 'order_pickup_end_time' | 'order_dropoff_start_time' | 'order_dropoff_end_time' | 'order_cutoff_time', required
    - `parameters` OrderTimeParams: Offset from an Order window milestone. ``direction="at"`` fires exactly on the milestone; ``before``/``after`` shift it by ``offset_minutes``. Amount-plus-direction rather than a signed integer so the builder can render a number box and a dropdown without the sign ambiguity.
      - `direction` 'before' | 'at' | 'after'
      - `offsetMinutes` integer
  - CreateConversationMessageReceivedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'conversation_message_received', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateConversationAssignedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'conversation_assigned', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateConversationResolvedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'conversation_resolved', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateConversationReopenedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'conversation_reopened', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.
  - CreateConversationHandlerChangedTrigger
    - `name` string, required: Human-readable name for this trigger instance.
    - `notificationGroupIds` string[], required: IDs of the notification groups that will receive notifications when this trigger fires.
    - `description` string, nullable: Optional description of the trigger.
    - `enabled` boolean: Whether the trigger is enabled on creation. Defaults to true.
    - `message` string, nullable: Optional custom message body.
    - `flag` boolean, nullable: Whether firing this trigger should also flag the job for operator attention.
    - `autoResolveFlag` boolean, nullable: If true, a flag raised by this trigger resolves automatically when the flag condition clears.
    - `optionsGroupIds` string[], nullable: Options groups that scope when this trigger applies.
    - `contractIds` string[], nullable: Contract IDs that scope when this trigger applies.
    - `isInternal` boolean, nullable: Whether the trigger is for internal use only (not exposed to customers).
    - `zoneIds` string[], nullable: Zone IDs that scope when this trigger applies (separate from zone-geolocation parameters).
    - `customEventName` string, nullable: For triggers that emit a custom event when fired, the name of that event.
    - `conditionalLogic` object, nullable: Optional AND/OR conditional tree that gates when the trigger fires. Shape mirrors the Zod ConditionalStatement schema in nash-ui; currently passed through as JSON. A follow-up will type this explicitly.
    - `type` 'conversation_handler_changed', required
    - `parameters` NoParams: Empty parameters object for triggers that take no configuration.

## Response `200`

OK

- NotificationTriggerResponse: A notification trigger configured on an organization.
  - `id` string, required: Notification trigger ID
  - `type` string, required: Trigger type slug, matching a template from GET /v1/notification-triggers/templates, e.g. 'tasks_attempts_exhausted'.
  - `name` string, required: Human-readable name of this trigger instance
  - `description` string, nullable: Trigger description
  - `enabled` boolean, required: Whether the trigger is enabled
  - `notificationGroupIds` string[]: Notification group IDs that receive notifications when this trigger fires.

## Other responses

- `422`: Unprocessable Content

---

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