Emails a store sends to its customers: automatic flows that start when a shopper does something, one-off campaigns to a list or segment, and the sending, measurement and unsubscribe rules around them.
56 parts and 16 phrases. Apps in this area include Klaviyo, Omnisend, Mailchimp, Drip, Brevo.
email.flowShowAn automatic sequence of emails: a trigger starts it, steps run in order, and conditions decide who goes on or stops.email.flow.triggerShowThe event, date or change that puts a contact into a flow.How to extend
| Part | Litestore today | How to extend |
|---|---|---|
Core modules/email/automations.ts | Event · many | |
Plugin | Event · many | |
Plugin | Event · many | |
Core jobs/domain-events.ts | Event · many | |
Plugin | Event · many | |
Core jobs/domain-events.ts | Event · many | |
Core jobs/domain-events.ts | Event · many | |
Core modules/email/automations.ts | Event · many | |
Core jobs/cron.index-data.ts | Event · many | |
Plugin | Event · many | |
Plugin | Event · many | |
Plugin | Event · many | |
Plugin | Event · many | |
Plugin | Event · many |
email.flow.stepShowWhat a flow does once a contact is in it, step by step.How to extend
| Part | Litestore today | How to extend |
|---|---|---|
Core modules/email/automations.ts | Core only | |
Core modules/email/automations.ts | Core only | |
Plugin | Core only | |
Plugin | Core only | |
Plugin | Core only | |
Plugin | Core only | |
Core modules/email/automations.ts | Core only |
email.flow.conditionShowThe checks that stop a contact or keep them in a flow.How to extend
| Part | Litestore today | How to extend |
|---|---|---|
Core modules/email/automations.ts | Core only | |
Core modules/email/automations.ts | Core only | |
Plugin | Core only | |
Plugin | Core only | |
Plugin | Core only |
email.audienceShowThe lists, segments and contact data a send is addressed to.How to extend
newsletter list providerNewsletter signups go to one list provider at a time (Klaviyo, Mailchimp, ConvertKit, Buttondown, Loops, Beehiiv or a webhook).countBroadcastAudienceThe assistant counts the customers a lifecycle audience selects before a broadcast is proposed.| Part | Litestore today | How to extend |
|---|---|---|
Core modules/customers/newsletter/providers.ts | Provider · oneAssistant tool | |
Core modules/email/broadcast-audience.ts | Provider · oneAssistant tool | |
Plugin | Provider · oneAssistant tool | |
Plugin | Provider · oneAssistant tool |
email.messageShowThe kinds of email a store sends.How to extend
sendBroadcastEmailThe assistant proposes a broadcast, and it is sent only after the operator approves it.| Part | Litestore today | How to extend |
|---|---|---|
Core modules/email/send.ts | Assistant tool | |
Core modules/email/automations.ts | Assistant tool | |
Core modules/email/broadcast.ts | Assistant tool | |
Core modules/email/custom-email.ts | Assistant tool | |
Plugin | Assistant tool |
email.contentShowTemplates and the blocks inside an email.How to extend
| Part | Litestore today | How to extend |
|---|---|---|
Core modules/email/templates | Slot · many | |
Core modules/email/templates/components/email-layout.tsx | Slot · many | |
Core modules/email/automations.ts | Slot · many | |
Core modules/email/templates/customer-winback.tsx | Slot · many | |
Plugin | Slot · many | |
Plugin | Slot · many |
email.sendingShowThe sender, the delivery service and the rules on timing and frequency.How to extend
email senderOne delivery service sends all store email; Litestore uses Resend.| Part | Litestore today | How to extend |
|---|---|---|
Core platform/resend.ts | Provider · one | |
Core jobs/email.send.ts | Provider · one | |
Plugin | Provider · one | |
Plugin | Provider · one | |
Plugin | Provider · one | |
Plugin | Provider · one |
email.measurementShowWhat is recorded about each send and the orders it led to.How to extend
email analyticsOpens, clicks and attributed revenue come from the sending or marketing service when a plugin reads them.| Part | Litestore today | How to extend |
|---|---|---|
Send log email.measurement.send_logThe send log records each email's type, recipient, subject and whether it was queued, sent or failed. | Core modules/email/send.ts | Provider · many |
Opens and clicks email.measurement.opens_clicksOpen and click counts record how many recipients opened a message and clicked a link in it. | Plugin | Provider · many |
Attributed revenue email.measurement.attributed_revenueAttributed revenue adds up the orders placed by recipients within a set window after they opened or clicked a message. | Plugin | Provider · many |
Attribution window email.measurement.attribution_windowThe attribution window is the number of days after an open or click in which an order is counted for the message. | Plugin | Provider · many |
email.complianceShowThe rules that keep marketing email to people who agreed to it.How to extend
| Part | Litestore today | How to extend |
|---|---|---|
One-click unsubscribe email.compliance.unsubscribe_linkA signed link in each marketing email unsubscribes the customer in one click and never expires. | Core modules/email/unsubscribe.ts | Core only |
Suppression email.compliance.suppressionSuppression blocks every marketing email to a customer who unsubscribed, complained or hard-bounced, while order emails still go out. | Core app/api/webhooks/resend/route.ts | Core only |
Marketing or transactional email.compliance.marketing_classEach email type is classed as marketing or transactional, and only marketing email checks the unsubscribe state. | Core modules/email/send.ts | Core only |
Double opt-in email.compliance.double_opt_inDouble opt-in sends a confirmation email after signup and adds the contact to the list only after they click it. | Plugin | Core only |
Stop mailing unengaged contacts email.compliance.unengaged_stopAn unengaged stop rule stops mailing contacts who have not opened or clicked for a set period. | Plugin | Core only |
The words apps use for a feature, and the plain parts the feature is made of, in the order they happen.
| Phrase | Made of |
|---|---|
| abandoned cart flow | |
| abandoned checkout flow | |
| browse abandonment | |
| welcome series | |
| winback flow | |
| post-purchase flow | |
| sunset flow | |
| birthday email | |
| back in stock alert | |
| price drop alert | |
| smart sending | |
| send time optimisation | |
| conditional split | |
| newsletter | |
| dynamic product block | |
| exit condition | Vendors use it for any check that removes a contact from a flow; placing an order is the usual one. |
These phrases mean different things at different apps, so the glossary doesn't map them.
The app documentation these parts were checked against.