Offer configuration stays visible
Use Offers to decide what Klaviyo receives: product, price, buyer, checkout mode, invoice, and automation context.
Product surfaces
Integrations work best when the checkout surface, payment state, invoice record, and post-purchase automation all point at the same commercial object. These product screens show the Plandalf controls that should be configured before Klaviyo receives checkout, payment, tax, or workflow context.
Use Offers to decide what Klaviyo receives: product, price, buyer, checkout mode, invoice, and automation context.
Before Klaviyo enters the stack, operators still need checkout templates, products, prices, coupons, order bumps, upsells, and branded offer content they can inspect.
Klaviyo should fit into the work after checkout: fulfilment, records, CRM updates, support context, webhooks, and sequences.
Klaviyo can start the sale through a hosted checkout, embedded checkout, modal, inline flow, or buy button depending on the stack.
Builder paths
Use these stack guides when a builder needs the whole path: sales surface, Plandalf offer, payment handoff, automation, fulfilment, records, and downstream integrations.
Find full stack guides that pair Klaviyo with checkout, payment, automation, fulfilment, records, and downstream integrations.
Use Offers to package products, prices, checkout pages, invoices, coupons, payment options, and follow-up context.
Use hosted checkout when Klaviyo should hand the buyer to a branded Plandalf checkout page.
Use SDK checkout when Klaviyo belongs inside an app, custom site, or API-first stack.
Route checkout events, purchase events, payment state, invoices, and customer context into another tool.
Turn a completed checkout into access, receipts, CRM updates, support context, and records.
Klaviyo is an ecommerce-focused email and SMS platform with a powerful Flow builder that supports webhook actions natively. For promos, the standard pattern is embedding a countdown GIF into a flow email and enrolling subscribers from a List-triggered or Metric-triggered flow.
{{ person.email }} merge tag
passes straight into the <img src> query string, so each subscriber
sees their own deadline.Setup templates
Copy-paste setups for the most common ways to wire Klaviyo into Plandalf.
promo · email
Paste this <img> tag into a Text block (in source mode) or an HTML
block in your Klaviyo campaign or flow email. {{ person.email }}
is Klaviyo's merge tag for the recipient — Klaviyo substitutes it
at send time.
<img
src="{{ promo.countdown_url }}?ref={{ person.email }}"
alt="Time remaining on this offer"
/>
promo · automation
Placed Order or Subscribed to List.{{ promo.catch_url }}
POST, content type application/json, body:
{"email": "{{ person.email }}", "ref": "{{ person.email }}"}
Automation graph
How Klaviyo participates in Plandalf sequences: what events it exposes upward, and what actions Plandalf can perform on it.
Events Plandalf can subscribe to through webhooks, API work, checkout state, payment context, and connected integrations.
klaviyo.subscriber_addedklaviyo.automation_step_reachedklaviyo.form_submittedThings Plandalf sequences can do after checkout, payment, invoice, customer, or deadline events.
klaviyo.add_subscriberklaviyo.tagklaviyo.send_emailklaviyo.start_automationklaviyo.custom_api_callEmbeddable surfaces: Plandalf countdown image and buy button HTML · Per-recipient countdown GIF with merge-tag substitution
trigger: stripe.payment_succeeded
actions:
- klaviyo.add_subscriber:
list: paying-customers
tag: tier-${plan}
- plandalf.grant_entitlement: ${product_slug}Pair it with
Platforms whose roles complement Klaviyo inside a Plandalf sequence.
Klaviyo + ActiveCampaign
Capture a lead on ActiveCampaign, nurture it through Klaviyo.
Klaviyo + beehiiv
Capture a lead on beehiiv, nurture it through Klaviyo.
Klaviyo + Kit (ConvertKit)
Capture a lead on Kit (ConvertKit), nurture it through Klaviyo.
Klaviyo + Customer.io
Capture a lead on Customer.io, nurture it through Klaviyo.
Klaviyo + Drip
Capture a lead on Drip, nurture it through Klaviyo.
Klaviyo + Flodesk
Capture a lead on Flodesk, nurture it through Klaviyo.
Integration methods
Each method below is the minimum viable setup. Pick the one closest to how you already use Klaviyo with checkout, payments, invoices, webhooks, API work, SDK checkout, and integrations.
Drop the Plandalf embed script into a Klaviyo HTML block and tag any element with `data-plandalf-present` to open the configured flow on click.
<script src="https://cdn.plandalf.com/embed.js" async></script>
<button data-plandalf-present="offer_abc123">
Buy now
</button>Add an HTML block to any Klaviyo email and paste the Plandalf countdown URL. Klaviyo's merge tag `{{ person.email }}` substitutes per recipient so each subscriber sees a timer pegged to their own deadline.
<img
src="https://cdn.plandalf.com/timers/{TIMER_ID}.gif?ref={{ person.email }}"
alt="Time remaining on this offer"
width="600"
height="120"
/>Point a Klaviyo form's webhook / POST URL at Plandalf's intake endpoint and every submission starts whatever sequence you've mapped to it.
curl -X POST https://api.plandalf.com/v1/intake/klaviyo \
-H "Content-Type: application/json" \
-d '{"email": "{{ form.email }}", "source": "klaviyo"}'Inside Klaviyo's automation builder, add a Webhook step that POSTs the contact to a Plandalf sequence catch URL. Use this to mirror Klaviyo journey logic into Plandalf without re-building the segmentation.
{
"email": "{{ contact.email }}",
"sequence": "post-signup-onboarding",
"source": "klaviyo"
}For anything not covered by a native trigger, configure a Klaviyo webhook to POST to Plandalf. The payload is forwarded into the sequence as `${event}`.
curl -X POST https://api.plandalf.com/v1/webhooks/klaviyo \
-H "Authorization: Bearer $PLANDALF_API_KEY" \
-H "Content-Type: application/json" \
-d @event.jsonFAQ
Plandalf itself is free to connect. Klaviyo's native webhook step is on its paid tiers — on the free plan, route the trigger through Zapier instead, which still works end-to-end.
Under 10 minutes. OAuth (or paste an API key), pick the lists/segments you care about, and you're live. No code unless you want it.
Yes. Disconnecting only revokes the credentials — historical events Plandalf fired stay in your sequence logs, and Klaviyo's own records are untouched. You can reconnect any time and resume from the last seen event.
Plandalf stores the Klaviyo contact ID and the events Plandalf fired against that contact. Email content stays in Klaviyo; Plandalf doesn't mirror your audience or newsletter archive.
Use the generic `klaviyo.custom_api_call` action or the inbound `klaviyo.webhook` trigger. Anything Klaviyo's REST API can do, a Plandalf sequence can drive.
Plandalf respects Klaviyo's API rate limits and backs off on 429s. For very high-volume use cases, ask about a dedicated worker pool.
Klaviyo's homepage at https://www.klaviyo.com links to their developer docs. For Plandalf-side questions about the Klaviyo integration, see the Plandalf docs.
Sequence
Checkout started to abandonment recovery
Recover a checkout that opened but did not complete by sending the buyer and offer context to the email or automation tool.
Sequence
Deadline expired save offer
When a timer or promotion expires, route the buyer into a coupon, save-offer, or follow-up path without changing the live checkout manually.