Skip to main content

Tracking Events Sent to Klaviyo

The full event catalog — every metric name, the status it maps to, and the properties each one carries.

Onward pushes 16 distinct tracking events to your Klaviyo account: 12 shipment tracking events that follow the delivery lifecycle, and 4 shipping exception events that fire when something goes wrong. This article covers every event, when it fires, and the data included with each one.

The event name is exactly what you search for in Klaviyo's flow builder, and it is also the label on that event's toggle in Settings > Track. The status key is the internal shipment status the event maps to — useful for conditional logic and for matching an event to the shipment status glossary.


Shipment Tracking Events

These events fire as a shipment moves through the delivery lifecycle. Each event corresponds to a specific carrier milestone.

Event Name

Status key

When It Fires

Onward Shipment Label Printed

label_printed

A shipping label has been printed for the order.

Onward Shipment Label Purchased

label_purchased

A shipping label has been purchased.

Onward Shipment Confirmed

confirmed

The carrier has confirmed receipt of the shipment.

Onward Shipment Carrier Picked Up

carrier_picked_up

The carrier has physically picked up the package.

Onward Shipment In Transit

in_transit

The package is in transit to the destination.

Onward Shipment Delayed

delayed

The carrier has reported a delay in transit.

Onward Shipment Out for Delivery

out_for_delivery

The package is on the delivery vehicle and out for delivery today.

Onward Shipment Available for Pickup

ready_for_pickup

The package is at a pickup location (e.g., post office, locker) waiting for the customer.

Onward Shipment Picked Up

picked_up

The customer has picked up the package from the pickup location.

Onward Shipment Delivered

delivered

The package has been successfully delivered.

Onward Shipment Returning to Sender

returning_to_sender

The carrier reports the package is on its way back to the sender.

Onward Delivery Error

failure

The carrier has reported a delivery failure (e.g., wrong address, damaged in transit, returned to sender).

Two shipment statuses have no Klaviyo event: buyer_action_required (the carrier needs something from the customer) and ready_for_recipient_pickup. Both appear on the Track Page, but neither will trigger a flow — so don't build one expecting them.

Typical Event Sequence

For a standard delivery, events fire in this order:

Label Printed/Purchased → Confirmed → Carrier Picked Up → In Transit → Out for Delivery → Delivered

Not every shipment triggers all events — it depends on the carrier and the shipment type. For example, some carriers skip "Confirmed" and go straight from label creation to "In Transit."


Shipping Exception Events

These events fire when Onward detects a potential shipping problem. Unlike tracking events (which come from carrier data), exception events are detected by Onward's monitoring system based on elapsed business days without updates.

Event Name

Exception key

What It Means

Onward Fulfillment Stalled

fulfillment_stalled

A shipping label was created but the carrier never picked the package up.

Onward Shipment Stalled

stalled

A shipment that was moving has stopped receiving tracking updates.

Onward Shipment Stuck

stuck

No tracking updates for a prolonged period — likely stuck in the carrier's network.

Onward Attempted Delivery

attempted_delivery

The carrier attempted delivery but couldn't complete it (e.g., no one home, access issue).

The exact thresholds that trigger each exception — and the rules that suppress duplicate alerts — are documented in one place: Shipping Exceptions & Alerts. They're deliberately not repeated here, so there's only one number to trust.


Event Data Properties

Every tracking event sent to Klaviyo includes a rich set of data properties you can use in your flows, templates, and segments.

Order Information

Property

Description

Example

order_id

The Shopify order ID.

"5678901234"

order_number

The order number shown to the customer.

"#1042"

order_total

The order total amount.

89.99

order_currency

The currency code of the order.

"USD"

order_tags

The order's Shopify tags (an array of strings, empty when the order has no tags).

["vip", "wholesale"]

customer_first_name

The customer's first name.

"Sarah"

Shipment Details

Property

Description

Example

shipment_id

Onward's internal shipment identifier.

123456

tracking_number

The carrier tracking number.

"1Z999AA10123456784"

tracking_url

The carrier's tracking URL.

"https://ups.com/track?num=..."

tracking_company

The carrier name.

"UPS"

estimated_delivery_at

The estimated delivery date (ISO 8601).

"2025-01-15T00:00:00Z"

shipment_status

The current shipment status.

"in_transit"

carrier_message

The carrier's status message.

"Package arrived at facility"

carrier_location

Where the event happened (city, state, country).

"Chicago, IL, US"

Additional Context

Property

Description

Example

track_page_url

Link to the customer's tracking page (if configured).

"https://store.com/pages/onward-track?key=..."

protected

Whether the order has Onward shipping protection.

true / false

is_international

Whether the shipment is international.

true / false

shipping_city

The destination city.

"Los Angeles"

shipping_country

The destination country code.

"US"

Line Items

Each event also includes an array of line_items with product details:

Property

Description

title

Product name.

quantity

Item quantity.

unit_price

Price per unit.

image_url

Product image URL.

product_id

Shopify product ID.

variant_id

Shopify variant ID.

Exception-Specific Properties

Shipping exception events include additional properties:

Property

Description

exception_type

The type of exception ("stalled", "stuck", "fulfillment_stalled", "attempted_delivery").

days_since_last_update

Business days since the last tracking update or fulfillment creation.


Using Events in Klaviyo Flows

Building a Flow

  1. In Klaviyo, go to Flows > Create Flow.

  2. Choose "Metric Triggered" as the trigger type.

  3. Search for the Onward event name (e.g., "Onward Shipment Delivered").

  4. Build your flow steps — email, SMS, time delay, conditional split, etc.

Personalizing Messages with Event Data

Use Klaviyo's template variables to insert event data into your messages. For example:

  • {{ event.order_number }} — The order number.

  • {{ event.tracking_url }} — A link to carrier tracking.

  • {{ event.track_page_url }} — A link to your branded tracking page.

  • {{ event.carrier_message }} — The latest carrier status message.

  • {{ event.estimated_delivery_at }} — The estimated delivery date.

Example Flow Ideas

Event

Flow Idea

Shipment Confirmed

Send "Your order is on its way!" with tracking link.

Out for Delivery

Send "Your package arrives today!" with delivery tips.

Delivered

Send "Your order was delivered!" with a review request or cross-sell.

Delayed

Send "We noticed a delay" with reassurance and support contact.

Delivery Error

Send "There was a delivery issue" with next steps and claims link (if protected).

Shipment Stalled

Send "Your shipment update" explaining the delay and what you're doing about it.

Fulfillment Stalled

Internal alert to your operations team to investigate unfulfilled orders.


Enabling and Disabling Events

Each event can be individually toggled on or off in Settings > Track under the "Klaviyo Notifications" section.

  • Enabled (default): The event is pushed to Klaviyo whenever it occurs.

  • Disabled: The event is not pushed. Klaviyo flows using this event as a trigger will stop receiving new entries.

Disabling an event does not affect events that have already been sent — only future occurrences are suppressed.

Did this answer your question?