How to connect ParcelPanel & Klaviyo via API?

This integration allows users to create personalized campaigns & flows based on tracking events from ParcelPanel.

Here is the instruction

Step 1
Go to Klaviyo adminAccountSettingsAPI Keys → copy the Public API Key

Step 2
Go to ParcelPanel adminIntegration → find Klaviyo → click Connect button → paste the Public API Key to connect

Back to your Klaviyo admin, there will be a new metric called ParcelPanel Event, you can check the details from this example we sent you.

Step 3
Click Create Flow button → Create from ScratchMetric → select ParcelPanel Event from the dropdown menu → TRIGGER FILTERS

Step 4
Configure the Trigger by your needs, ParcelPanel Events are coming with shipment status updates for each shipment, which are powerful segmentation triggers for Klaviyo Flow


1. It's case-sensitive.

2. The current supported status: Info received, In transit, Out for delivery, Delivered, Exception, Failed attempt, Expired.

Info receivedThe carrier received a shipping request and is about to pick up the shipment
In transitThe shipment is on the way
Out for deliveryThe shipment has arrived at the local point and is about to be delivered
DeliveredThe shipment has been delivered
ExceptionThe shipment might have been sent back to the sender, damaged, or lost
Failed attemptThe carrier attempted to deliver the shipment but failed
ExpiredNo tracking details updated for 30 days for express service or 60 days for postal service

For example: I want to create a workflow that automatically sends an email when my shipment was delivered.

Step 5
Configure the actions by your needs

Available Property

Property nameTemplate tagExample
shipment_status{{ event.shipment_status }}Delivered
tracking_link{{ event.tracking_link }}
expected_delivery_date{{ event.expected_delivery_date }}Nov 09, 2020 - Nov 19, 2020
tracking_number{{ event.tracking_number }}92055901755477000271990251
carrier_name{{ event.carrier_name }}USPS
carrier_contact{{ event.carrier_contact }}1-800-275-8777
last_check_point{{ event.last_check_point }}Arrived at USPS Regional Facility, SEMINOLE-ORLANDO FL DISTRIBUTION CENTER
last_checkpoint_time{{ event.last_checkpoint_time }}2020-11-16 00:50
transit_time{{ event.transit_time }}5
residence_time{{ event.residence_time }}3
order_number{{ event.order_number }}#1234
order_created_at{{ event.order_created_at }}2020-10-30 11:36:23
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
fulfillment_created_at{{ event.fulfillment_created_at }}2020-11-11 09:58:07
shipping_country{{ event.shipping_country }}Canada
shipping_province{{ event.shipping_province }}Ontario
shipping_city{{ event.shipping_city }}Ottawa
shipping_address1{{ event.shipping_address1 }}151 O'Connor Street
shipping_address2{{ event.shipping_address2 }}Null
shipping_zip{{ event.shipping_zip }}K2P 2L8

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 }}
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