Articles on: D: Local delivery date picker

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.


This feature is available on all plans.



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.


Connecting Klaviyo does not change anything on your storefront or in your existing orders. It only starts forwarding new events to Klaviyo — nothing is sent retroactively.



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.






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

scheduled (delivery, pickup, or shipping)

Confirms the exact date/slot the moment a booking is placed — clearer than Shopify's generic order confirmation

Pre-delivery reminder

reminder

Fires X hours before, based on your Reminder timing setting — reduces missed deliveries

"Arriving tomorrow" heads-up

tomorrow

Next-day nudge so the customer is home / ready for pickup

Post-delivery follow-up & review request

completed

Ask for a review or offer a reorder discount right after fulfillment

Pickup-ready reminder

pickup reminder / pickup tomorrow

Cuts down on no-show pickups

Availability win-back

date_not_available / zone_rejected

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)


  1. In DingDoong, enable Delivery → Reminder, set Reminder timing (e.g., 24 hours), and click Send test so the metric appears in Klaviyo.
  2. In Klaviyo, go to Flows → Create flow → Create from scratch.
  3. Set the trigger to Metric, and choose the DingDoong reminder metric.
  4. (Optional) Add flow filters or conditional splits on event properties such as delivery_date, time_slot, or delivery_zone to personalize the message.
  5. Add an Email or SMS action, write your message, and use event/profile properties (e.g., the delivery date) as merge tags.
  6. Turn the flow Live.


Because DingDoong sends events with the timing you configure, you usually don't need a "Time delay" step in Klaviyo — the reminder and tomorrow events already fire at the right moment.


Segments worth building


  • Customers with an upcoming delivery (recently fired scheduled, no completed yet) — great for promos or route notices.
  • High-frequency bookers (many completed events) — 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


Always click Send test events after enabling a new event. Klaviyo only lists a metric once it has received it at least once, so testing makes the event selectable when you build your flow.


Enable only the events you'll actually use in a flow — fewer, well-named metrics keep your Klaviyo account tidy.


Set Reminder timing to match your prep window (e.g., 24 hours for next-day delivery, 2 hours for same-day pickup).



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

Was this article helpful?

Share your feedback

Cancel

Thank you!