Notification events and variables reference

Last updated: August 31, 2026

The catalog behind a notification trigger: every event you can fire on, and every {{token}} you can drop into a message. For the drawer that puts these together, see Create a notification trigger.

Trigger events

The Type selector groups the events you can fire on into five categories. Pick one, and the drawer's Settings block asks for that event's condition (a status, a threshold, a zone, a timing window — some take none).

Delivery

Event Fires when
Delivery Status Transition A delivery moves to a delivery status you choose.
Delivery Incident Report An incident report is created or resolved on a delivery.
Task Reassignment A task is reassigned — every time, or after a number of reassignments.
Autodispatch Failed Automatic dispatch fails for a delivery.
Delivery Cancellation Failed A cancellation attempt fails.
Delivery Creation Failed A delivery fails to be created.
Internal Driver Not Assigned No own-fleet driver is assigned within a set time of a reference status.
Invalid Proof of Delivery Photo A proof-of-delivery photo is flagged invalid.
Delivery Completed Too Early A delivery is completed earlier than a set threshold.
Tasks Attempts Exhausted A task runs out of delivery attempts.
Status Triggered Too Early A status is set earlier than expected.
Driver Stacking A driver is stacked across deliveries.
Time Elapsed Since Status A set amount of time passes since a delivery was (or wasn't) in a status.
Proof of Delivery Uploaded A proof-of-delivery is uploaded.
Courier Updated The courier on a delivery changes.
Timing Updated A delivery's timing changes.
AI Conversation Completed An AI conversation finishes.
Delivery Note Added A note is added to a delivery.

Driver

Event Fires when
Driver Geolocation A driver reaches a distance or dwell time near the pickup or dropoff for the statuses you choose.
Zone Geolocation A driver enters a zone you select.
Driver location inconsistent with delivery status The driver's location is too far from what the delivery status implies.
Dropoff Delayed - Dropoff ETA too far after specified dropoff time The dropoff ETA slips past the specified dropoff time by more than a threshold.
Pickup Delayed - Pickup ETA too far after specified pickup time The pickup ETA slips past the specified pickup time by more than a threshold.

Status

Event Fires when
"Stuck" Status A delivery stays in a status longer than a set duration.
Statuses changed too quickly Two statuses occur within a set number of seconds.
Live Monitoring Status A live-monitoring status condition is met.
Activity Status Transition An activity moves to a status or action you choose.
Custom Event Listener A custom event with a name you specify is emitted — from the API, or from another trigger.

Refund

Event Fires when
Refund Request A refund request enters a status you select.

Order

Available only when the orders feature is enabled for your organization.

Event Fires when
Address Validation Failed An order's address fails validation.
Nash order needs attention An order enters needs-attention.
Nash order ready to fulfill An order becomes ready to fulfill.
Order Not Dispatched Close to Pickup An order isn't dispatched within a set time of its pickup.
Delivery Window Booked Timeout A booked delivery window isn't actioned within its timeout.
Optimization Unassigned Order Optimization leaves an order unassigned.
Optimization Action Status An optimization action reaches a status.
API Based The trigger is fired through the API.
Order Modified Fields on an order change.

Note

Which events are available also depends on the features enabled for your organization — the Order category needs the orders feature, and a few individual events depend on options set up with Nash. The Type selector only lists what your organization can use.

Message variables

Type {{ in a Message to open the list of merge fields. Nash substitutes each token with the delivery's value when the message is sent. Use the tokens verbatim — the token text is never translated; only the label you see in the dropdown is.

Customer

Token Label
{{customer.first_name}} Customer First Name
{{customer.last_name}} Customer Last Name
{{customer.email}} Customer Email
{{customer.phone_number}} Customer Phone Number

Pickup

Token Label
{{pickup_business_name}} Pickup Business Name
{{pickup_business.phone_number}} Pickup Business Phone Number
{{pickup_address}} Pickup Address
{{pickup_datetime}} Pickup Datetime
{{pickup_eta}} Pickup ETA
{{pickup_location.email}} Pickup Email
{{pickup_instructions}} Pickup Instructions

Dropoff

Token Label
{{dropoff_business_name}} Dropoff Business Name
{{dropoff_address}} Dropoff Address
{{dropoff_datetime}} Dropoff Datetime
{{dropoff_eta}} Dropoff ETA
{{dropoff_instructions}} Dropoff Instructions
{{customer.email_address}} Dropoff Email

Driver and provider

Token Label
{{driver.name}} Driver Name
{{driver.phone_number}} Driver Phone Number
{{provider_name}} Provider Name

Delivery and organization

Token Label
{{org_name}} Organization Name
{{job_tracking_link}} Job Tracking Link
{{job_details_url}} Job Details URL
{{customer_feedback_link}} Customer Feedback Link (when feedback is enabled)
{{description}} Package Description
{{delivery_incident_report_type}} Delivery Incident Report Type
{{delivery_incident_report_message}} Delivery Incident Report Message
{{proof_of_delivery_photo_url}} Proof of Delivery Photo URL
{{pod_upload_url}} Proof of Delivery Upload URL

The customer-facing tracking page is delivered through {{job_tracking_link}} — drop it into a message and the recipient gets the link to the live tracking page. See Send customers a tracking link.

Identifiers

Token Label
{{job_id}} Job ID
{{job_cfg_id}} Job Configuration ID
{{job_external_identifier}} Job External Identifier
{{delivery_id}} Delivery ID
{{provider_delivery_id}} Provider's Delivery ID
{{reference_id}} Reference ID
{{request_id}} Request ID

Order (with the orders feature)

Token Label
{{nash_order_id}} Order ID
{{nash_order_external_id}} Order External ID
{{nash_order_portal_url}} Order Portal URL
{{nash_order_pickup_location.email}} Order Pickup Email
{{nash_order_dropoff_location.email}} Order Dropoff Email
{{nash_order_packing_slip_url}} Order Packing Slip URL (ZPL)
{{nash_order_packing_slip_pdf_url}} Order Packing Slip PDF URL
{{nash_order_validation_errors}} Order Validation Errors

Type- and channel-specific tokens

The list narrows or extends with the trigger type and the channel you're on, so the {{ menu always shows exactly what's available where you're typing.

Some trigger types add their own tokens:

Trigger type Adds
Refund Request {{refund_request_id}}, {{refund_request_status}}, {{refund_request_amount}}, {{refund_request_reason}}
Optimization Action Status {{optimization_action_status}}, {{optimization_action_label}}, {{optimization_action_scheduled_at}}, {{optimization_action_url}}
Activity Status Transition {{activity_status}}, {{activity_action}}, {{activity_scheduled_at}}, {{activity_url}}

Some channels add their own tokens:

Channel Adds
Email location-email tokens ({{pickup_location.email}}, {{customer.email_address}}, and the order location emails)
SMS, WhatsApp, Voice AI phone tokens ({{customer.phone_number}}, {{pickup_business.phone_number}}, {{courier.phone_number}})
Slack {{provider.slack_channel}}

Formatting

The Message field is plain text — there is no formatting toolbar. Any markdown you write is rendered downstream, per channel, when the message is sent: email is rendered as HTML, while SMS is delivered as plain text. See Format text with markdown in Nash notifications.

Related