FAQ
What does it cost?
Both editions are paid. Lite is $99 and covers the whole engine: the order and account triggers, all 28 conditions, multi-step workflows with delays, email, tags, order notes, webhooks, the simulator, dry run, the logs and the console commands. Pro is $179 and adds abandoned cart tracking, scheduled contact scans, SMS, discount codes, order status and user group actions, the unsubscribe action, send windows, run limits and cooldowns, tag-triggered workflows, and cancelling another workflow's pending runs. Installation has the full table.
Can I start on Lite and upgrade later?
Yes. Switch the edition in the Plugin Store or under Settings → Plugins, and the Pro features unlock in place. Your workflows, contacts and history are untouched.
Going the other way is handled too. If you move from Pro to Lite, workflows that use Pro features stop starting, and the log says why. They do not keep running with their Pro steps silently skipped.
How is this different from an abandoned-cart plugin?
An abandoned-cart plugin does one job: email people who left a cart. Lyfe's abandoned-cart recovery (Pro) is one workflow among many. The same engine sends post-purchase follow-ups, review requests, replenishment reminders, welcome sequences, refund follow-ups and win-backs, with conditions on the order and the customer, any number of steps, and a delay before each one. It also handles the part abandoned-cart emails usually get wrong: a stop-if step before each reminder, and a second workflow that cancels pending reminders the moment the customer buys.
How is this different from Klaviyo or another email platform?
Klaviyo and similar services copy your customer and order data to their servers and charge by the number of contacts. Lyfe runs inside your Craft install. Workflows, contacts, consent and history are tables in your own database, and email goes out through the mail transport Craft already uses.
What Lyfe does not do is what those platforms are built around: a drag-and-drop email designer, newsletter campaigns, A/B testing, predictive analytics and revenue attribution. Lyfe's emails are Twig templates, its reporting is per-workflow run counts plus the recovered value of abandoned carts, and it is aimed at lifecycle automation rather than broadcast campaigns.
Does my customer data leave my server?
Not unless you send it. Everything Lyfe stores is in your database. The only outbound requests it makes are the ones you configure: email through Craft's mailer, SMS through Twilio or your chosen gateway, and webhook steps you add yourself.
Will it slow down or break checkout?
It cannot break it. Every piece of Lyfe that runs during a customer's request is wrapped separately, and a failure is logged rather than raised, so one problem cannot stop the order, the payment or the other listeners.
It can add a little time if you ask it to. When an order completes, Lyfe checks which workflows apply, which is a few quick database queries. If a workflow's first step is set to run "immediately", that step runs in the same request, so an immediate email adds the time it takes to send. Give the first step a delay of a minute or more and the work moves to the scheduler, off the customer's request entirely. The presets already have delays where it matters.
Which email service does it use?
Craft's. Lyfe hands messages to Craft's mailer, so whatever transport you configured in Craft's email settings (SMTP, Postmark, Mailgun, Amazon SES, or any other adapter) delivers Lyfe's email too. You can set a separate from-name, from-address and reply-to for Lyfe, and wrap every message in your own layout template.
Does it work with multiple stores?
Yes. Each workflow can be limited to one store or left on All stores. Order and cart triggers respect that. Some things are shared across stores: contacts are one list identified by email address, lifetime spend and order count add up every store's orders (in whatever currencies they were placed), and scheduled scans, account and tag triggers are not tied to a store. Discount code steps can use a discount from any store.
How does it handle consent and GDPR?
Each contact has separate consent for marketing email and SMS. Lyfe never sends marketing email to
a contact who has unsubscribed, never texts a contact who has not opted in, and records each
refusal in the message log so you can show what was withheld and why. Every contact has a personal
unsubscribe link, {{ unsubscribeUrl }}, that opens a page where they choose which channels to
keep; you can replace that page with your own template.
You decide the defaults. New contacts are subscribed to marketing email unless you turn that off, which you should if your customers must opt in first. SMS defaults to off. Emails marked Transactional (receipts, shipping notices) go to unsubscribed contacts too, so reserve that flag for mail that genuinely is transactional.
Lyfe gives you the mechanics. Whether your use of them is lawful for your customers, and what you
put in your privacy policy, is for you to decide. Contacts can be deleted from the control panel,
and lyfe/run/prune removes old run, message and log history on the schedule you set.
What if I want to try a workflow without emailing real customers?
Use the simulator to see what a workflow would do with a real order, step by step, without sending anything. To watch real traffic, turn on Dry run for the workflow, or Global dry run for everything: runs happen as normal, and every email and text lands in the message log as "simulated" with its rendered content.
Can marketers on my team edit workflows safely?
Yes. Give them Create, edit and delete workflows. They can write emails, change conditions and timing, and pause or enable workflows. Steps they write render in Craft's Twig sandbox against plain order and contact data (or, without the sandbox, as plain text), and they cannot add webhooks. An admin can approve a step after reading it, which lets it use full Twig. Who can write what explains the details.
Can I add my own triggers, conditions or actions?
Yes. Each is a registry that a module can add to with an event, and your class is first-class in the editor and the simulator. See Extending Lyfe.