EliaFlow Guide
User guide Menus = admin groups

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:

  1. Use EliaFlow upload (public storage) or paste a stable https URL.
  2. Check the URL in a browser in private browsing (not logged into admin).
  3. Send a test email and open it outside admin.
  4. 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:

  1. On the master tenant: Service points menu (/master/service-points).
  2. Edit the business store (e.g. yls — not the master POS).
  3. Set Generate email templates = Yes (optionally include directions).
  4. 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.).