---
title: "Get Notification Trigger Catalog"
method: GET
path: "/v1/notification-triggers/catalog"
tags: ["Notifications"]
---

# Get Notification Trigger Catalog

`GET /v1/notification-triggers/catalog`

The full notification-trigger catalog. Each entry describes a trigger's `type` slug, human `title`, the `value` used to subscribe automations, the `entityType` (route/delivery/task/order/activity), its `statuses` vocabulary, the JSON Schema of its create `parameters`, and the `supportedFilters` / `supportedActions`. The shared `filterCriteria` (dispatch strategies, contracts, zones, metadata conditions) and `actions` are described once at the top level. Designed for agents and humans to discover what can be automated and how.

## Response `200`

OK

- NotificationTriggerCatalogResponse — Full catalog response for GET /v1/notification-triggers/catalog.
  - `filterCriteria` object — Shared filter criteria available to every trigger, keyed by FilterCriterionKey.
  - `actions` TriggerAction[] — Available action types that can be configured on a trigger.
    - `key` 'send_message' | 'flag_delivery' | 'auto_resolve_flag' | 'add_custom_event', required — The actions a trigger can be configured to take when it fires.
    - `fields` string[] — Wire fields that configure this action.
  - `triggers` TriggerCatalogEntry[] — One entry per NotificationTriggerType member.
    - `type` 'delivery_incident_report' | 'status_changed_too_quickly' | 'dropoff_delayed' | 'driver_geolocation' | 'pickup_delayed' | 'driver_location_vs_delivery_status' | 'stuck_status' | 'task_reassignment' | 'delivery_status_transition' | 'autodispatch_failed' | 'address_validation_failed' | 'order_needs_attention' | 'order_ready_to_fulfill' | 'job_creation_failed' | 'delivery_cancellation_failed' | 'task_health_status' | 'internal_driver_not_assigned' | 'nash_ai_invalid_pod' | 'delivery_completed_too_early' | 'order_not_dispatched_close_to_pickup' | 'tasks_attempts_exhausted' | 'refund_request' | 'optimization_order_unassigned' | 'zone_geolocation' | 'api_based' | 'status_triggered_too_early' | 'optimization_action_status' | 'driver_stacking' | 'time_elapsed_since_status' | 'activity_status_transition' | 'demo' | 'custom_event_listener' | 'proof_of_delivery_uploaded' | 'courier_updated' | 'timing_updated' | 'ai_conversation_completed' | 'delivery_window_booked_timeout' | 'delivery_note_added' | 'order_modified' | 'route_status_transition' | 'catchment_violation' | 'late_departure' | 'vehicle_breakdown' | 'customer_not_home' | 'adhoc_break' | 'vehicle_overweight' | 'vehicle_oversize' | 'refuel_request', required
    - `title` string, required — Human-readable title.
    - `value` '18zdfialfe|Delivery Incident Report' | '8e2b5ead2b|Statuses changed too quickly' | 'z9aaa5b61b|Dropoff Delayed - Dropoff ETA too far after specified dropoff time' | 'a62ccd6cf7|Driver Geolocation' | '8adu432fxx|Pickup Delayed - Pickup ETA too far after specified pickup time' | '2d00e8337d|Driver location inconsistent with delivery status' | 'd9abb5b61b|"Stuck" Status' | 'xuf71kdfa7|Task Reassignment' | '50851e6311|Delivery Status Transition' | '0slfyzlxy3|Autodispatch Failed' | 'qd2910zx34|Address Validation Failed' | '20231018|Nash order needs attention' | '20231201|Nash order ready to fulfill' | 'ouut3gfaey|Job Creation Failed' | '6101a86efd|Delivery Cancellation Failed' | '72f25b6941|Live Monitoring Status' | 'a0240620|Internal Driver Not Assigned' | '8x567890|Invalid Proof of Delivery Photo' | '9f9uu7z0|Delivery Completed Too Early' | 'ix38123456|Order Not Dispatched Close to Pickup' | '86dc85e3|Tasks Attempts Exhausted' | '8dxl093456|Refund Request' | '19f1kx1j2|Optimization Unassigned Order' | 'pqr123f5s|Zone Geolocation' | '2ef442ca|API Based' | 'rt32km97j|Status Triggered Too Early' | '03dekfned|Optimization Action Status' | 'az8dfllk8|Driver Stacking' | 'b37098781|Time Elapsed Since Status' | '44t6kh981k|Activity Status Transition' | 'k3m8t9zqf|Demo' | 'c7e4f91a3b|Custom Event Listener' | 'f8d2a1b3c4|Proof of Delivery Uploaded' | 'e7c9b5d6a2|Courier Updated' | 'd4f6e8a1b9|Timing Updated' | 'c3b7d9e2f5|AI Conversation Completed' | 'a9f3e0c7d2|Delivery Window Booked Timeout' | 'b5e8f2a1d3|Delivery Note Added' | 'm4d1f1c8e6|Order Modified' | 'a8f3d91c4e|Route Status Transition' | '7c8a2f9d31|Catchment Violation' | '1a4d2b7c8e|Late Departure' | '9b2c8e1d4a|Vehicle Breakdown' | 'cnh4a2b8c1|Customer Not Home' | 'adb3f7e2c9|Ad-hoc Break' | 'vow8c1a2b9|Vehicle Overweight' | 'voz1b9c8a4|Vehicle Oversize' | 'rfl5d2c7e9|Refuel Request', required
    - `entityType` 'route' | 'delivery' | 'task' | 'order' | 'activity' | 'unknown', required — Primary entity a trigger relates to.
    - `category` 'route' | 'delivery' | 'task' | 'order' | 'activity' | 'unknown', required — Primary entity a trigger relates to.
    - `isFlag` boolean — Whether this is a flag-style trigger.
    - `creatable` boolean — Whether an agent can create this trigger via POST /v1/notification-triggers. False for system-generated triggers (e.g. route execution exceptions) that have no create variant — its parametersSchema is empty for that reason, not because it takes no parameters.
    - `description` string — Description of when the trigger fires.
    - `statuses` EntityStatus[] — The exact valid on_statuses for THIS trigger (subset of the EntityStatus enum); empty for non status-transition triggers.
    - `parametersSchema` object — JSON Schema of this trigger's create parameters.
    - `supportedActions` ActionKey[] — Action keys this trigger supports.
    - `supportedFilters` FilterCriterionKey[] — Filter-criteria keys this trigger supports.

## Other responses

- `422` — Unprocessable Content

---

[API](https://skmtc.net/usenash/apis/nash-api.md) · [All operations](https://skmtc.net/usenash/apis/nash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usenash/nash-api/revisions/09a23a95889b/schema)
