Klaviyo Integration: Send booking & storefront events to Klaviyo
Klaviyo Integration: Send booking & storefront events to Klaviyo
Connect DingDoong to your Klaviyo account so every delivery, pickup, and shipping event — plus storefront actions like date selection — flows into Klaviyo. You can then build email and SMS flows (reminders, "your order is on its way", win-back) triggered by real DingDoong data.
Overview
DingDoong pushes two kinds of events to Klaviyo: server events (booking lifecycle — scheduled, rescheduled, reminder, tomorrow, completed) for delivery, pickup, and shipping; and client events (storefront behavior — widget viewed, date selected, and more). Once connected, these events appear as metrics in Klaviyo and can trigger any flow or segment you build there.
Before you start
- DingDoong is installed and active on your Shopify store.
- You have a Klaviyo account with access to API keys (Klaviyo admin → Settings → API keys).
- You have both a Private API key and your Public API key (Site ID) ready.
How to set up the Klaviyo integration
Here's how, step by step:
Step 1: Open the Klaviyo integration settings
In the DingDoong admin, go to General settings → Integrations → Klaviyo. You'll see a connection card with a Not connected badge.

Step 2: Get your Klaviyo API keys
In a new tab, open your Klaviyo API keys page. Copy your Private API key and your Public API key (also called the Site ID).

Step 3: Paste the keys and test the connection
Back in DingDoong, paste the Private API key and Public API key into the two fields, then click Test connection. When the keys are valid, the badge turns green and shows Connected, and your keys are saved (the private key is stored masked).

Step 4: Choose which booking (server) events to send
Once connected, open the Event configuration card. Use the tabs to switch between Delivery, Pickup, and Shipping, then tick the lifecycle events you want to send: Scheduled, Rescheduled, Reminder, Tomorrow, and Completed. Use Select all to enable an entire tab at once.
Step 5: Choose which storefront (client) events to send
In the Storefront events section, enable the client-side events you want to track: Widget viewed, Date selected, Zone rejected, Date not available, and Surcharge applied.
Step 6: Send a test event to Klaviyo
Any event you enable shows a Needs test badge until Klaviyo has seen it. Click Send test events (the count shows how many are pending), or use the per-event Send test link. This registers the metric in Klaviyo so it's available when you build a flow. Enabled events flip to Sent once received.
Step 7: Fine-tune timing and triggers
Adjust the remaining options to match how you operate:
- Reminder timing — how many hours before the booking the reminder event fires (2, 6, 12, 24, or 48 hours).
- Delivery count period — the look-back window used for delivery-count data (30, 60, 90, 180, or 365 days).
- Completed event trigger — what marks an order as completed: Shopify fulfilled, In-app fulfilled, or Both.

How it looks in Klaviyo
After you send a test (or a real event occurs), the metric appears in Klaviyo under Analytics → Metrics. You can then use it as a flow trigger or a segment condition — for example, a "Pickup reminder" flow triggered by the pickup reminder event.

Recommended Klaviyo flows
Once your events reach Klaviyo, you can trigger flows off them. Here are the most useful flows to build first, and which DingDoong event to use as the trigger metric.
Flow | Trigger metric | Why it works |
|---|---|---|
Order confirmation with delivery/pickup date |
| Confirms the exact date/slot the moment a booking is placed — clearer than Shopify's generic order confirmation |
Pre-delivery reminder |
| Fires X hours before, based on your Reminder timing setting — reduces missed deliveries |
"Arriving tomorrow" heads-up |
| Next-day nudge so the customer is home / ready for pickup |
Post-delivery follow-up & review request |
| Ask for a review or offer a reorder discount right after fulfillment |
Pickup-ready reminder |
| Cuts down on no-show pickups |
Availability win-back |
| Follow up with shoppers who couldn't book their preferred date or fell outside your zone |
How to build a flow in Klaviyo (example: pre-delivery reminder)
- In DingDoong, enable Delivery → Reminder, set Reminder timing (e.g., 24 hours), and click Send test so the metric appears in Klaviyo.
- In Klaviyo, go to Flows → Create flow → Create from scratch.
- Set the trigger to Metric, and choose the DingDoong reminder metric.
- (Optional) Add flow filters or conditional splits on event properties such as
delivery_date,time_slot, ordelivery_zoneto personalize the message. - Add an Email or SMS action, write your message, and use event/profile properties (e.g., the delivery date) as merge tags.
- Turn the flow Live.
reminder and tomorrow events already fire at the right moment.Segments worth building
- Customers with an upcoming delivery (recently fired
scheduled, nocompletedyet) — great for promos or route notices. - High-frequency bookers (many
completedevents) — target for loyalty or subscription offers. - Shoppers who hit availability limits (
date_not_available/zone_rejected) — gauge demand for new dates or zones.
Common scenarios
Send a reminder email the day before a delivery
Enable Delivery → Reminder, set Reminder timing to 24 hours, send a test, then in Klaviyo build a flow triggered by that reminder metric.
Track storefront drop-off when a date is unavailable
Enable Date not available and Zone rejected under Storefront events. Use these metrics in Klaviyo to segment shoppers who hit availability limits, then follow up or adjust your schedule.
Only send events for pickup, not delivery or shipping
Open the Pickup tab and use Select all, and leave the Delivery and Shipping tabs unchecked. Only pickup events will flow to Klaviyo.
Tips & Best practices
Troubleshooting
The connection test fails
Double-check that you pasted the Private key in the private field and the Public key (Site ID) in the public field — they are easy to swap. Confirm the private key hasn't been revoked in Klaviyo and that your account has API access. If it still fails, the connection message will explain whether the keys were rejected or Klaviyo was unreachable.
My event isn't showing up in Klaviyo
Make sure the event is enabled (checked) and that you've clicked Send test for it — an event with a Needs test badge hasn't been registered in Klaviyo yet. Server events also only fire when a matching real booking occurs (e.g., a pickup completed event needs a pickup order that is fulfilled per your Completed event trigger).
An event shows "Needs test" even though it's enabled
Enabling an event just turns it on; it stays Needs test until Klaviyo receives it once. Click the per-event Send test link or the top Send test events button to register it.
FAQ
Do events get sent for past orders?
No. Only new events are forwarded to Klaviyo after you connect. Nothing is sent retroactively.
How do I disconnect Klaviyo or undo this?
In the Klaviyo connection card, click Disconnect. This removes the stored keys and stops all events from being sent. Your enabled-event selections and timing settings are kept, so reconnecting later restores your configuration.
What's the difference between server events and storefront events?
Server (booking) events describe the order lifecycle — scheduled, rescheduled, reminder, tomorrow, completed — per delivery/pickup/shipping channel. Storefront (client) events describe shopper behavior in the widget, like viewing it or selecting a date.
Updated on: 01/07/2026
Thank you!