Email templates
Menu Company Settings → Email templates.
At seed / provisioning (email-templates:provision), EliaFlow creates the templates below for each store (FR and EN for each type). They are editable (design, subject, copy); those used by the code (appointment confirmation, invoice send, etc.) must not be deleted.
Shared envelope: header and footer
Shared envelope section (Shared header / Shared footer actions):
| Element | Role |
|---|---|
| Email header | Blocks at the top of all emails for the store (logo, banner, etc.) |
| Email footer | Blocks at the bottom of all emails: name, address, contact details, social — often via variables ({{store_name}}, {{company_address}}…) linked to company parameters |
On send, EliaFlow assembles: header + template body + footer (+ eliaflow.ca mention).
Change the envelope once = the same look on appointment confirmation, invoice, marketing, etc.
Templates for marketing campaigns
The Marketing — generic promotion and Marketing — generic service templates (FR + EN) are the ones you choose in a marketing campaign.
You create / compose their content in the builder (text, images, buttons, colors) like any template, then select them when sending a campaign. Customize these marketing templates for your brand rather than using an “invoice” or “appointment” template (not offered in the campaign audience).
Create or edit a template: builder settings (detail)
Edit (or a copy via Duplicate) opens the block builder. You compose the message body; the shared header / footer are added on send.
General message settings
| Parameter | Usage |
|---|---|
| Name | Internal label in the list |
| Subject | Email subject line |
| Key | Technical identifier (fixed for seed templates) |
| Email background color | Global background around the content area |
| Content background color | Background of the central column (often a theme tint) |
Blocks you can add
| Block | Possibilities |
|---|---|
| Columns | 1, 2, or 3 column layout |
| Text | Rich content: size, text color, bold / style, emoji / icons |
| Image | Upload or https:// URL; alt; click link; width / alignment |
| Button | Label, link, background color, text color, rounded corners |
| Link | Simple text link |
| HTML | Advanced HTML block (if needed) |
| Spacing | Vertical space between blocks |
| Divider | Line; optional color |
You reorder blocks (drag and drop), edit each in the side panel, preview, then Save. Send a test before a campaign or a real send.
Tip: empty colors on buttons / dividers often fall back to the store’s theme primary color.
Images in emails: must be reachable on the web
An email does not embed the image as an attachment in classic HTML body: the mail client (Gmail, Outlook, phone…) downloads the image from a public URL when opened.
| Situation | Result for the recipient |
|---|---|
| Image as public https://… (CDN, site, EliaFlow public storage) | The image displays (if the client allows remote loading) |
| File only on your PC / local path / private link / intranet | Broken image (empty icon) |
http link not reachable from the Internet |
Often blocked or invisible |
Recommendation:
- Use EliaFlow upload (public storage) or paste a stable https URL.
- Check the URL in a browser in private browsing (not logged into admin).
- Send a test email and open it outside admin.
- Avoid temporary or login-protected links.
This is a classic email template constraint (not only EliaFlow): the design in admin can “work” for you, but the recipient only sees the image if it is reachable from the Internet.
Duplicate a template
Duplicate action: creates a copy (blocks / design reused) with a new name (and key / subject depending on the form).
Useful for a variant (different tone, different offer) without overwriting the system template. For campaigns, start from seeded Marketing templates (or a variant clearly meant for marketing) so they remain selectable in the campaign.
Do not delete templates used by the code
Provisioned templates are called by key in EliaFlow (appointment confirmation, invoice send / cancel / refund, online orders, reminders, storefront auth, etc.).
| Do | Avoid |
|---|---|
| Customize the design / copy | Delete a seed template wired to the code |
| Duplicate for a free variant | Replace a system key |
Without these templates, automatic sends fail or error out. Only keep deletion for any copies not used by the system.
Catalog of templates created at seed
Each row exists in French and English.
Website contact
| Template |
|---|
| Thank you — contact |
Online orders
| Template |
|---|
| Order confirmation |
| Staff alert — new order |
| Order update |
Invoices
| Template |
|---|
| Invoice sent |
| Invoice cancelled |
| Invoice refunded |
Marketing
| Template |
|---|
| Marketing — generic promotion |
| Marketing — generic service |
Appointments
| Template |
|---|
| Appointment — confirmed (booking confirmation) |
| Appointment — pending approval |
| Appointment — reminder |
| Appointment — confirmed (accepted) |
| Appointment — cancelled by the team |
| Appointment — cancelled by the client |
| Appointment — declined |
| Appointment — rescheduled |
| Appointment — admin notification (pending) |
| Appointment — staff notification |
| Appointment — staff cancellation |
| Appointment — staff unassignment |
| Appointment — staff modification |
Sub-service reminder
| Template |
|---|
| Sub-service reminder |
Google reviews
| Template |
|---|
| Google review invite |
See also: Google reviews.
Authentication (storefront / booking)
| Template |
|---|
| Authentication — email verification |
| Authentication — password reset |
| Authentication — booking code |
Newsletter
| Template |
|---|
| Newsletter — admin notification |
Partners
| Template |
|---|
| Partner — commission statement |
Regenerate templates (Master → Service points)
Default copy lives in the database. After a code update (new appointment wording, RSVP, etc.), regenerate the store:
- On the master tenant: Service points menu (
/master/service-points). - Edit the business store (e.g. yls — not the
masterPOS). - Set Generate email templates = Yes (optionally include directions).
- Save → success notification; seeded templates (including
appointment.*) are rewritten.
CLI equivalent: php artisan email-templates:reset-appointment-defaults --slug=yls or email-templates:provision --slug=yls --refresh-html.
Success criteria
- I see the seed templates (FR/EN) for my store.
- I understand the shared header / footer.
- I compose a template (text, colors, buttons, images) and send a test.
- I know images must be a public https URL to display for the recipient.
- I customize Marketing templates for campaigns.
- I can duplicate for a variant; I do not delete system templates (appointment, invoice, etc.).