Self-hosted Klaviyo alternative for WooCommerce, Shopify, Stripe
Updated: · 11 min read · NetSendo Team
Why do stores look for a Klaviyo alternative?
Most stores start looking when the Klaviyo bill grows faster than revenue. Klaviyo prices by active profiles, which its pricing FAQ describes as "contacts who may receive marketing emails". Every customer who places an order and can be emailed adds to the bill, whether you email them weekly or twice a year. A self-hosted platform changes the model: you pay for a server and for each email or SMS sent, and the size of your customer list stops setting the price.
Klaviyo prices at 10k, 50k and 100k active profiles
Here is what Klaviyo's pricing calculator showed for the Email plan. The page redirected to /uk/pricing but displayed USD.
| Active profiles (Klaviyo tier) | Email plan (USD/month) | Email sends included per month |
|---|---|---|
| 10,000 (6,501–10,000) | $150 | 100,000 |
| 50,000 (45,001–50,000) | $720 | 500,000 |
| 100,000 (95,001–100,000) | $1,380 | 1,000,000 |
| 150,000 and more | Talk to sales | — |
As of 2026-10-17, USD, monthly. Email plan only; SMS and other products are billed on top. The free plan covers up to 250 active profiles, 500 email sends a month and $5 of mobile messages a month.
SMS on Klaviyo is a separate bill
SMS is not part of the Email plan. Klaviyo moved mobile messaging from credits to per-message dollar pricing: it applied to new and free accounts from July 13, 2026, and applies to existing paid plans from their first billing date after August 13, 2026 (Klaviyo help). Rates depend on the channel (SMS, MMS, WhatsApp or RCS), the destination country and, for US and Canadian SMS, the number type. Carrier fees are included in the rate. The help article does not publish the rates themselves; you see them in the app under billing.
What is Klaviyo best at?
Klaviyo is very good at e-commerce data, and an honest comparison has to start there. Its integrations turn store activity into events you can segment and automate on, and its analytics turn order history into predictions. If those are the reasons you chose Klaviyo, no self-hosted tool replaces them one for one.
- Store events out of the box. The WooCommerce integration syncs Started Checkout, Added to Cart, Placed Order, Fulfilled Order, Ordered Product, Cancelled Order, Refunded Order, Viewed Product and Active on Site, and Klaviyo says it syncs "in real time" (Klaviyo help). Each event carries product names, SKUs and categories.
- Predictive analytics. Klaviyo calculates historic and predicted customer lifetime value, churn risk, average time between orders and the expected date of the next order. You need at least 500 customers who have ordered, 180 days of order history, orders in the last 30 days and some customers with 3 or more orders (Klaviyo help).
- Many channels in one place. Email, SMS, MMS, WhatsApp, RCS and push, plus reviews and other add-ons. The pricing page mentions "350+ native integrations".
- Nothing to run. No server, no updates, no IP reputation to manage.
How does NetSendo map to Klaviyo?
NetSendo covers the core of an e-commerce email programme: getting buyers onto lists, abandoned-cart and post-purchase sequences, email and SMS in one funnel, and tags and custom fields for segmentation. Product catalogues, predictive analytics and several channels are missing. The table only lists features documented in the NetSendo README, API documentation, plugin files or the integrations page.
| What you use in Klaviyo | NetSendo | Status |
|---|---|---|
| WooCommerce integration | NetSendo for WooCommerce plugin: adds buyers to a list when an order completes, adds customers with pending (unpaid) orders to a second list, lets you override lists per product, and saves order ID, product and order total in custom fields. The current plugin (1.1.1) also loads the NetSendo Pixel, which tracks product views, add-to-cart and checkout | Partial: no historical order import, no product catalogue, no phone number |
| Shopify integration | A webhook endpoint that handles orders/paid, orders/create and customers/create. It adds the customer to a list and stores the order ID, number, total and currency |
Partial: no abandoned-checkout topic, no catalogue |
| Stripe, Polar | Products and checkout links created in NetSendo. A sales funnel adds each buyer to a list and applies a purchase tag | Works when NetSendo creates the checkout; it does not import an existing Stripe store's history |
| Any other store | A purchase webhook (POST /api/webhooks/purchase) that fires a purchase automation trigger, with filters for product, category and order value |
Documented |
| Flows | Automations (trigger → conditions → actions) and funnels (email, SMS, delay, wait until, condition, split, goal steps) | Documented; see the version note below |
| Abandoned cart flow | The pixel_cart_abandoned trigger, or a funnel that starts when someone joins the pending-orders list |
Partial: only for visitors NetSendo can identify |
| Browse abandonment | The pixel_product_viewed trigger |
Partial: identified visitors only |
| Segments | Lists, tags, custom fields and conditions (has tag, field value, opened or clicked a message) | Partial: no computed RFM or spend segments |
| Predictive analytics (CLV, churn risk) | Not available. NetSendo has CRM lead scoring, which is not the same thing | Gap |
| Product blocks and recommendations | Not available | Gap |
| SMS | Built in: Twilio, Vonage, MessageBird, Plivo or SMSAPI, billed by the provider. Funnels can mix SMS and email steps | Documented; inbound STOP handling is not documented |
| WhatsApp, push, reviews | Not available | Gap |
| A/B testing | Campaign A/B tests (GOLD) and a split step in funnels | Documented |
| AI | AI suite (OpenAI, Claude, Gemini, Grok, OpenRouter, Ollama); an MCP server with 77 tools in @netsendo/mcp-client 1.5.1 |
Documented |
| Reporting | Open, click and conversion statistics; funnel goal conversions | Partial: no per-flow revenue attribution documented |
Version note. NetSendo's changelog lists important fixes after release 2.1.3 (2026-09-14): funnel triggers now enrol subscribers, SMS and "wait until" funnel steps now run, and SMS sending itself was repaired. On 2026-10-17 these were still under "Unreleased". Use a release newer than 2.1.3 before you build the flows in this guide, and test them on a staging list first.
Two more limits matter for stores. The WooCommerce and Shopify integrations send name, email and order data, but no phone number. For SMS you have to collect numbers, with SMS consent, through a signup form, the REST API or n8n. And the Pixel can only attribute a cart to a person after that visitor has been linked to a subscriber, for example by submitting a NetSendo form.
How much does a self-hosted setup cost compared with Klaviyo?
On email alone, self-hosted infrastructure costs a fraction of Klaviyo's Email plan at every list size in this comparison. The figures below are an illustrative calculation, not a benchmark.
Assumptions:
- every profile gets 4 emails a month (Klaviyo includes 10× profiles, so a store that sends more still fits its plan);
- sending through Amazon SES at $0.10 per 1,000 emails (AWS);
- a DigitalOcean Basic droplet: 4 GiB for 10k and 50k profiles ($24), 8 GiB for 100k ($48) (DigitalOcean);
- a dedicated SES IP at $24.95 a month from 50k profiles;
- NetSendo SILVER (free licence) or GOLD ($97 a month, per the pricing page).
| Profiles | Emails/month | Klaviyo Email plan | NetSendo SILVER + infrastructure | NetSendo GOLD + infrastructure |
|---|---|---|---|---|
| 10,000 | 40,000 | $150 | $28 ($24 server + $4 SES) | $125 |
| 50,000 | 200,000 | $720 | $68.95 ($24 + $20 + $24.95 IP) | $165.95 |
| 100,000 | 400,000 | $1,380 | $112.95 ($48 + $40 + $24.95 IP) | $209.95 |
USD per month. Klaviyo checked 2026-10-17; AWS and DigitalOcean checked 2026-10-16. Excludes your admin time, monitoring and backup storage. NetSendo publishes no official sizing table, so server sizes are assumptions; measure your own load.
Monthly email cost at three list sizes. Klaviyo list prices from klaviyo.com (2026-10-17); self-hosted figures are the calculation above.
If your store sends 8 emails per profile instead of 4, add $4, $20 and $40 of SES at the three sizes. The gap stays large.
SMS is billed separately on both sides. With NetSendo you pay the SMS provider directly. Two examples for 10,000 SMS a month:
- US, Twilio: $0.0083 per segment plus a carrier fee of $0.0035–$0.0050 per segment on 10DLC numbers, so about $118–$133 for 10,000 single-segment messages, plus A2P 10DLC registration fees (Twilio).
- Poland, SMSAPI: prepaid SMS cost 0.17 to 0.11 PLN net each, depending on the top-up amount (SMSAPI). With a top-up between 500 and 1,999.99 PLN the rate is 0.16 PLN, so 1,600 PLN net (about $412) for 10,000 messages.
Klaviyo's help centre does not publish per-message SMS rates, so we cannot set them side by side. Compare your Klaviyo invoice with these provider prices. Our guide to email and SMS automation on your own server compares all five providers.
For more vendors and the full method, see what email marketing costs at 10k, 50k and 100k contacts.
How do store events reach NetSendo?
Store data reaches NetSendo through four doors: the WooCommerce plugin, Shopify webhooks, NetSendo's own Stripe and Polar checkouts, and a generic purchase webhook. Each one puts a customer on a list or fires an automation trigger, and from there a funnel sends email or SMS.
How store events become email and SMS in NetSendo. Based on the plugin, webhook handlers and automation catalogue on GitHub (2026-10-17).
Building an abandoned-cart flow in WooCommerce
This is the closest NetSendo equivalent of Klaviyo's abandoned-cart flow. It uses only documented features.
- Install the plugin. In your NetSendo panel, open Marketplace → WooCommerce and download the NetSendo for WooCommerce plugin. Install it in WordPress, enter your NetSendo URL and API key, and pick two default lists: Buyers for completed orders and Pending orders for unpaid ones (plugin readme).
- Create the funnel. Trigger: signup to the Pending orders list. Steps: wait 1 hour → reminder email → wait 1 day → condition "clicked the email" → if no, an SMS step (sent only to subscribers who have a phone number) → end.
- Stop it for buyers. Add an automation: when someone joins Buyers, run the Stop funnel action on the cart funnel. The plugin adds every order to Pending orders when it is placed, so without this step people who paid a minute later would get reminders.
- Optional: Pixel-based abandonment. The automation trigger
pixel_cart_abandonedfires for identified visitors who added to the cart or started checkout and then went quiet. Detection runs as the console commandpixel:detect-abandoned-carts(default: 1 hour of inactivity). In the repository on 2026-10-17 that command was not in the default scheduler, so check your instance and add it to cron if needed.
Shopify stores get the order webhooks but no abandoned-checkout event. Klaviyo is clearly ahead here.
How do you migrate from Klaviyo?
Plan a parallel run of two to four weeks. Klaviyo's own migration article gives the export side; NetSendo's import tools handle the rest.
- Set Klaviyo flows to Draft, don't delete them. Klaviyo warns that deleted flows and their data can't be recovered. Flow definitions don't export, so write down each flow's trigger, delays and messages, then rebuild them as NetSendo funnels.
- Export lists and segments. Use Lists & segments → Manage list → Export to CSV. Only Owner, Admin or Analyst users can export (Klaviyo help). Export your email list, your SMS subscribers with the SMS consent timestamp and phone number, any VIP or engaged segments, and the suppressed profiles.
- Export templates. Content → Templates → Export gives you the HTML of each template.
- Import into NetSendo with automations off. The import API accepts CSV, TSV or JSON, up to 5,000 rows per request, with a
dry_runpreview. Settrigger_automationstofalse, because it defaults totrueand would send your welcome flow to customers from years ago. Put suppressed addresses on the account-wide suppression list. Import SMS subscribers into an SMS-type list, where the phone number is required. - Keep proof of consent. Store the consent source and timestamp from Klaviyo in custom fields. You will need them if anyone asks how you got their number or address.
- Plan the SMS sender. You can port a phone number to your new provider; branded sender IDs can't be ported, so you register the same name with the new provider.
- Authenticate your domain and warm up. Set up SPF, DKIM and DMARC for your sending provider and ramp volume up gradually. See our deliverability guide for self-hosted senders.
- Remove Klaviyo. Remove the e-commerce integration (Klaviyo says this also removes the JavaScript it added), any snippets you added by hand, and links to Klaviyo-hosted pages.
When should you stay with Klaviyo?
Stay with Klaviyo if any of these apply:
- You rely on predictive analytics or product recommendations. NetSendo has no CLV or churn predictions and no product catalogue blocks.
- You run Shopify and depend on abandoned-checkout flows. NetSendo's Shopify integration handles orders and customers only.
- You need WhatsApp, push or reviews in the same tool.
- Nobody will run a server. Self-hosting means updates, backups, monitoring and your own deliverability.
- Your list is small. At a few thousand profiles the Klaviyo bill is modest, and the saving may not cover the time you spend on infrastructure.
If you want to self-host but aren't sure NetSendo is the right tool, compare it with listmonk, Mautic and others in the best self-hosted email marketing software. Unlike listmonk and Mautic, NetSendo is not open source: it is source-available under the NetSendo EULA, as explained in Is NetSendo open source?. Coming from Mailchimp instead? See the self-hosted Mailchimp alternative.
Bottom line
A self-hosted Klaviyo alternative swaps a per-profile bill for a server bill plus sending costs: in our calculation, about $113 instead of $1,380 a month for email at 100,000 profiles. In return you lose Klaviyo's event depth, predictive analytics and Shopify abandoned checkouts, and you run the infrastructure yourself. NetSendo fits WooCommerce stores and sellers of digital products who mainly need list building, cart recovery, post-purchase sequences and SMS through their own provider. Start on the free SILVER licence with the configuration docs, connect your AI tools through the agents page if you use them, and run both systems side by side until your new flows have proved themselves.
Frequently asked questions
Is there a self-hosted version of Klaviyo?
How much does Klaviyo cost for 100,000 profiles?
Why is Klaviyo so expensive?
Can NetSendo recover abandoned carts in WooCommerce?
Can NetSendo send SMS to my store customers?
Does NetSendo have predictive analytics like Klaviyo?
Is NetSendo free?
Try NetSendo on your own server
Self-hosted email & SMS marketing with a free Silver license. Install with Docker Compose in minutes.
Sources
- Klaviyo pricing (redirected to /uk/pricing, prices in USD) · checked 2026-10-17
- Klaviyo: FAQ on mobile messaging per-message pricing (2026) · checked 2026-10-17
- Klaviyo: Understanding predictive analytics · checked 2026-10-17
- Klaviyo: Data synced with the WooCommerce integration · checked 2026-10-17
- Klaviyo: How to migrate off of Klaviyo · checked 2026-10-17
- Klaviyo: How to export a list or segment to a CSV file · checked 2026-10-17
- NetSendo README (features, licence plans) · checked 2026-10-17
- NetSendo for WooCommerce plugin readme · checked 2026-10-17
- NetSendo for WooCommerce plugin source (Pixel tracking, order hooks) · checked 2026-10-17
- NetSendo Shopify webhook handler (supported topics) · checked 2026-10-17
- NetSendo automation catalogue (triggers and actions) · checked 2026-10-17
- NetSendo abandoned-cart detection command · checked 2026-10-17
- NetSendo changelog (funnel and SMS fixes after 2.1.3) · checked 2026-10-17
- NetSendo API documentation (import, suppressions, SMS) · checked 2026-10-17
- Twilio SMS pricing, United States · checked 2026-10-17
- SMSAPI price list (cennik) · checked 2026-10-17
- Amazon SES pricing · checked 2026-10-16
- DigitalOcean droplet pricing · checked 2026-10-16

