Skip to main content

Tracking Events Sent to Klaviyo

Onward pushes 15 distinct tracking events to your Klaviyo account — 11 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.


Shipment Tracking Events

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

Event Name

When It Fires

Onward Shipment Label Printed

A shipping label has been printed for the order.

Onward Shipment Label Purchased

A shipping label has been purchased.

Onward Shipment Confirmed

The carrier has confirmed receipt of the shipment.

Onward Shipment Carrier Picked Up

The carrier has physically picked up the package.

Onward Shipment In Transit

The package is in transit to the destination.

Onward Shipment Out for Delivery

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

Onward Shipment Delivered

The package has been successfully delivered.

Onward Shipment Available for Pickup

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

Onward Shipment Picked Up

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

Onward Shipment Delayed

The carrier has reported a delay in transit.

Onward Delivery Error

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

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

When It Fires

Onward Fulfillment Stalled

A shipping label was created but the carrier hasn't picked up the package. Fires after 4 business days with no carrier pickup.

Onward Shipment Stalled

The shipment has had no tracking update for an extended period. Fires after 3 business days (domestic) or 5 business days (international).

Onward Shipment Stuck

The shipment has been stuck in transit with no updates for a prolonged period. Fires after 7 business days (domestic) or 20 business days (international).

Onward Attempted Delivery

The carrier attempted delivery but was unable to complete it (e.g., no one home, access issue). Fires immediately when the carrier reports the attempt.

How Exceptions Are Detected

  • Onward checks packages on a regular schedule, calculating business days (excluding weekends) since the last tracking update.

  • Domestic and international shipments have different thresholds because international shipping naturally takes longer.

  • Each exception fires once per package — you won't get duplicate alerts for the same issue (except attempted delivery, which has a 24-hour cooldown between alerts).

  • Exceptions are suppressed if the package has already been delivered or if the order has been refunded.


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"

customer_first_name

The customer's first name.

"Sarah"

Shipment Details

Property

Description

Example

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 Order Tracking > Settings 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?