Klaviyo
The Klaviyo integration allows Karla to provide your Klaviyo account with triggers of any sort, like shipment notifications or claims.
Steps
1. Open Klaviyo & navigate to Settings
2. Select API key and click on Create Private API Key
3. Name it “Karla Integration” and select the scope and confirm with Create
You should select the following scopes (Read/Write Access
):
- Events: to allow Karla to send events to your Klaviyo account
- Profiles: to allow Karla to access profile data
- List: to allow Karla to read Klaviyo lists to enable segmented campaigns
- Segments: to allow Karla to read Klaviyo segments to enable segmented campaigns
4. Copy the Private API key and send it to Karla
Building Klaviyo Flows
To cover the most important delivery journey events, we recommend first of all creating the flows for following events:
shipment_in_transit
shipment_carrier_delay
shipment_damaged
shipment_out_for_delivery
shipment_delivered
shipment_delivered_to_neighbour
shipment_delivered_to_letterbox
shipment_delivered_to_parcelshop
shipment_not_picked_up_returned
shipment_failed_returned
By creating these 10 flows you will be able to cover standard events happening for every order (shipment_in_transit
, shipment_out_for_delivery
), all delivered cases (shipment_delivered
, shipment_delivered_to_neighbour
, shipment_delivered_to_letterbox
, shipment_delivered_to_parcelshop
) and the events that hopefully do not happen too often, but where it is most important to be proactive with your customers (shipment_carrier_delay
, shipment_damaged
, shipment_not_picked_up_returned
, shipment_failed_returned
).
Karla provides other shipment events beyond these 10. See Event Groups for more information.
Pickup Reminder Flow
Inserting the tracking page link
To include the tracking page link in your Klaviyo emails you should use a dynamic link with order_number
and zip_code
variables, so that your customers always receive their personalised link:
For emails triggered through Klaviyo:
Karla events
https://app.gokarla.io/track/slug?orderNumber={{ event.order_number|default:'' }}&zipCode={{ event.zip_code|default:'' }}&ref=karla
https://yourshop.com/pages/tracking?orderNumber={{ event.order_number|default:'' }}&zipCode={{ event.zip_code|default:'' }}&ref=karla
Shipping Confirmation
Triggered by Shopify's Fulfilled_Order
Event.
https://app.gokarla.io/track/slug?orderNumber={{ event.extra.order_number|default:‘’ }}&zipCode={{ event.extra.shipping_address.zip|default:‘’ }}&ref=karla
https://yourshop.com/pages/tracking?orderNumber={{ event.order_number|default:'' }}&zipCode={{ event.zip_code|default:'' }}&ref=karla
A slug
is your unique identifier that represents your shop within the Karla system. This is used to properly route tracking information and ensure that shipment data is associated with the correct merchant account.
Testing the flows
Once you’ve set up the flows and the respective emails it is important you make sure that the integration is working as expected.
In the Email Template Editor go to Preview & Test
There make sure that in the profiles you see the information from the profiles from your shop and not from Karla’s test events. These should be infos like customer name, order number, shipping address etc.
You will see this information only after you have integrated your Shopify/Shopware Shop and Klaviyo with Karla. More on shop integrations
If you want to see how your customers will receive the emails, you can send a test email to your email-address.
Putting the flows live
After you have tested your flows, you can put them live upon the agreed go-live date.
Make sure you have requested the transactional status for your Karla flows (more on the transactional status here) and have disabled the Smart Sending feature, so that all of your customers receive there shipping updates.
Event Groups
Karla provides the following event groups to your Klaviyo instance in relation to your customer orders.
Claims
For any processed claim (e.g. damaged package, package not found...). See Claims.
claim_created
claim_updated
Shipments
For any processed shipment update.
shipment_carrier_delay
shipment_damaged
shipment_delayed_due_to_customer_request
shipment_delivered
shipment_delivered_all_events
shipment_delivered_to_letterbox
shipment_delivered_to_neighbour
shipment_delivered_to_parcel_locker
shipment_delivered_to_parcel_shop
shipment_delivery_failed
shipment_delivery_failed_address_issue
shipment_delivery_failed_forwarded_to_parcel_shop
shipment_delivery_second_attempt
shipment_failed_returned
shipment_pre_transit
shipment_in_transit
shipment_not_picked_up_then_returned
shipment_out_for_delivery
shipment_picked_up
shipment_refused_then_returned