How to integrate with Klaviyo?

Seamlessly sync CWILL Tracking’s logistics events—such as shipment status updates and delivery delays—with Klaviyo to automate proactive post-purchase communications that turn shipping milestones into opportunities for building customer trust and loyalty.


Firstly, connect CWILL Tracking & Klaviyo. There are two optional integration methods:

Then, create personalized flows:

Additionally:

Migrating from the Old ParcelPanel Event metric to the New one


Integrate from CWILL Tracking admin (Recommended)

Go to CWILL Tracking adminIntegration → find Klaviyo → click the Connect button  → complete the authorization



Integrate from Klaviyo admin

Step 1

Go to CWILL Tracking adminIntegrationAPI Key section → copy the CWILL Tracking API Key


Step 2

Go to Klaviyo adminIntegrations → click the Explore apps button → find and click to install CWILL Tracking (formerly ParcelWILL)


Step 3

Paste the CWILL Tracking API Key → Connect → complete the authorization


After successfully connecting CWILL Tracking and Klaviyo, you can easily verify the connection in both the CWILL Tracking and Klaviyo admin.

CWILL Tracking admin

Klaviyo admin

A set of CWILL Tracking metrics will also appear in the Klaviyo Metrics section, where you can click to view detailed information from the sample we sent.



Create personalized flows

Step 1

Go to Klaviyo adminFlowsCreate flowBuild your own → fill in the Name and Tags as needed → Create flow


Step 2

Select ParcelPanel → select a specific metric → configure the trigger filters based on your needs

CWILL Tracking provides a range of metrics for different use cases. Be sure to review the CWILL Tracking Events and Triggers Overview help article for more details.

Note: Trigger filters are case-sensitive.


Example 1: I want to create a flow that automatically sends a thank-you email when a shipment is delivered.

In this case, select the CWILL Tracking – Shipment status update metric and set the trigger filter to shipment status equals Delivered.


Example 2: I want to create a flow that automatically sends a reassurance email when a shipment has been stalled for more than 5 days, regardless of its shipment status.

In this case, select the CWILL Tracking – Shipment stalled metric and configure the conditions in the CWILL Tracking admin as shown below. No trigger filters are required in Klaviyo.


Step 3

Configure the Actions based on your needs.


Available Property

Property nameTemplate tagExample
store_name{{ event.store_name }}YOURSTORENAME
store_url{{ event.store_url }}https://yourstorename.com
shipment_status{{ event.shipment_status }}Delivered
shipment_substatus{{ event.shipment_substatus }}Delivered to doorstep
tracking_link{{ event.tracking_link }}https://yourstorename.com/apps/parcelpanel?nums=1234&preview=parcelpanel
expected_delivery_date{{ event.expected_delivery_date }}Jan 12, 2025 - Jan 16, 2025
tracking_number{{ event.tracking_number }}YT2436021211003147
last_mile_tracking_number{{ event.last_mile_tracking_number }}9261290358097849005373
carrier_name{{ event.carrier_name }}YunExpress
carrier_contact{{ event.carrier_contact }}400-8575-500
carrier_url{{ event.carrier_url }}http://www.yuntrack.com/track/detail?id=YT2436021211003147
last_mile_carrier_name{{ event.last_mile_carrier_name }}USPS
last_mile_carrier_contact{{ event.last_mile_carrier_contact }}1 800-275-8777
last_mile_carrier_url{{ event.last_mile_carrier_url }}https://tools.usps.com/go/TrackConfirmAction?qtc_tLabels1=9261290358097849005373
last_check_point{{ event.last_check_point }}Delivered, In/At Mailbox, FAIRBANKS, AK 99701
last_checkpoint_time{{ event.last_checkpoint_time }}2025-01-13 14:36:00
pickup_location{{ event.pickup_location }}403 BANK STREET
transit_time{{ event.transit_time }}11
residence_time{{ event.residence_time }}1
order_number{{ event.order_number }}#1234
order_created_at{{ event.order_created_at }}2024-12-23 01:02:40
fulfillment_created_at{{ event.fulfillment_created_at }}2024-12-24 01:25:40
location{{ event.location }}Los Angeles Fulfillment Center
pickup_date{{ event.pickup_date }}2025-01-03 01:28:40
delivery_date{{ event.delivery_date }}2025-01-13 14:36:00
product_name{{ event.product_name }}Test product
customer_email{{ event.customer_email }}[email protected]
customer_phone{{ event.customer_phone }}+1 234 567 8900
first_name{{ event.first_name }}Tom
last_name{{ event.last_name }}Alix
shipping_country{{ event.shipping_country }}United States
shipping_province{{ event.shipping_province }}California
shipping_city{{ event.shipping_city }}Mountain View
shipping_address1{{ event.shipping_address1 }}1600 Amphitheatre Parkway
shipping_address2{{ event.shipping_address2 }}Null
shipping_zip{{ event.shipping_zip }}94043


Addition

In addition to the basic information about the order, the LineItems field contains an array of information about each line item in the order. You can reference this data for building templates, branching logic based on package contents, and so on. This is stored in a 0-indexed array, so you can easily access an individual item or loop over it to get the entire contents.

Property nameTemplate tagExample
product_name{{ event.lineitems.0.product_name }}Test product 1
quantity{{ event.lineitems.0.quantity }}1
variant_image{{ event.lineitems.0.variant_image }}https://shopify.com/path/to/image-variant.jpg
price{{ event.lineitems.0.price }}24.96
variant_name{{ event.lineitems.0.variant_name }}Test product 1 - Black / L
sku{{ event.lineitems.0.sku }}12345678-black-l
handle{{ event.lineitems.0.handle }}test-product-1



Migrating from the Old ParcelPanel Event metric to the New one

Notes:

1. If you’re already using the Klaviyo integration, you’ll see 6 metrics. New installs will see 5 metrics. The extra one is the ParcelPanel Event.

2. ParcelPanel Event is equivalent to CWILL Tracking – Shipment status update.

3. ParcelPanel Event will remain available long-term, so if you’re already using it, no action is required.

4. If you want to migrate from the ParcelPanel Event metric to CWILL Tracking – Shipment status update, you can use Klaviyo’s Flow - Clone feature, as shown below. All trigger filters and actions (including variables) will be preserved to ensure a seamless migration.



Related article: How to integrate with Klaviyo - Customer Hub?

Need help? Feel free to contact us via online chat or email, our world-class 24/7 support team is always glad to help you 🧐