> ## Documentation Index
> Fetch the complete documentation index at: https://docs.florists.digital/llms.txt
> Use this file to discover all available pages before exploring further.

# Notification Templates & Branding

> Edit what your notifications say and how your emails look.

Every notification has a template that controls what it says. You can edit the subject line, the message content, and the overall look of your emails — all from **Settings** > **Notifications**.

<Info>
  **This page covers features gated by Admin-tier permissions** — typically Settings access. Admins have these by default; your administrator can adjust who has them in [Settings > Team](/settings/team).
</Info>

## Editing a template

<Steps>
  <Step title="Open Notifications settings">
    Go to **Settings** > **Advanced** > **Notifications**.
  </Step>

  <Step title="Expand the event">
    Find the notification event you want to edit and expand it.
  </Step>

  <Step title="Open the Email or SMS template">
    Click into the **Email** or **SMS** template.
  </Step>

  <Step title="Edit the content">
    Update the subject line (email only) and message content.
  </Step>

  <Step title="Preview">
    Use the **Preview** button to see how it looks with sample data.
  </Step>

  <Step title="Save your changes">
    The new template applies to all future notifications of this type.
  </Step>
</Steps>

The email editor supports simple formatting — you can make text **bold**, *italic*, add links, and create lists. The SMS editor is plain text with a character counter.

<Tip>
  You don't have to write templates from scratch. Every notification comes with a sensible default. Edit the bits you want to change and leave the rest.
</Tip>

## Variables

Templates support **variables** that automatically fill in with the right information when the notification is sent. Insert them by clicking **Insert Content** in the editor, or type them manually.

Variables look like this: `{{customer.name}}` — Digital Florists recognises anything wrapped in double curly brackets and replaces it with real information.

### Customer & recipient

| Variable                   | What it shows                                        |
| -------------------------- | ---------------------------------------------------- |
| `{{customer.name}}`        | Customer's full name                                 |
| `{{customer.first_name}}`  | Customer's first name                                |
| `{{customer.email}}`       | Customer's email address                             |
| `{{customer.phone}}`       | Customer's phone number                              |
| `{{recipient.name}}`       | Recipient's full name (person receiving the flowers) |
| `{{recipient.first_name}}` | Recipient's first name                               |
| `{{recipient.phone}}`      | Recipient's phone number                             |
| `{{recipient.company}}`    | Recipient's company name                             |

### Order details

| Variable                        | What it shows                                      |
| ------------------------------- | -------------------------------------------------- |
| `{{order.number}}`              | Order number (e.g., #1234)                         |
| `{{order.total}}`               | Order total including tax                          |
| `{{order.subtotal}}`            | Order total before tax                             |
| `{{order.tax}}`                 | Tax amount                                         |
| `{{order.date}}`                | Date the order was placed                          |
| `{{order.fulfilment_date}}`     | Delivery or collection date                        |
| `{{order.fulfilment_time}}`     | Delivery or collection time                        |
| `{{order.fulfilment_datetime}}` | Combined date and time                             |
| `{{order.note}}`                | Order notes                                        |
| `{{order.cancellation_note}}`   | Reason for cancellation (if cancelled)             |
| `{{fulfilment.verb}}`           | "delivered" or "collected" — changes automatically |
| `{{fulfilment.method}}`         | "delivery" or "collection"                         |

### Delivery

| Variable                    | What it shows                                        |
| --------------------------- | ---------------------------------------------------- |
| `{{delivery.address}}`      | Full formatted delivery address                      |
| `{{delivery.postcode}}`     | Delivery postcode                                    |
| `{{delivery.city}}`         | Delivery town or city                                |
| `{{delivery.instructions}}` | Special delivery instructions                        |
| `{{delivery.date}}`         | Actual delivery date                                 |
| `{{delivery.time}}`         | Actual delivery time                                 |
| `{{delivery.note}}`         | Driver's delivery note (e.g., "Left with neighbour") |
| `{{tracking.link}}`         | The customer's live tracking URL                     |

<Note>
  `{{tracking.link}}` is populated on **Out for Delivery**, **Delivered**, and **Carded** notifications for delivery orders (on Delivered and Carded, only when the order already has a tracking link — there it opens the delivery confirmation page, where the customer can view the proof-of-delivery photo). Anywhere else it comes through empty. It inserts the raw URL, which makes it the one to use in SMS templates; in emails, use the `{{button:track_delivery}}` block (see [Ready-made sections](#ready-made-sections)) for a proper "Track your delivery" button instead, as buttons are email-only.
</Note>

### Your shop

| Variable                     | What it shows                  |
| ---------------------------- | ------------------------------ |
| `{{company.name}}`           | Your company name              |
| `{{company.phone}}`          | Your phone number              |
| `{{company.email}}`          | Your email address             |
| `{{company.website}}`        | Your website URL               |
| `{{company.address}}`        | Your shop address              |
| `{{location.display_name}}`  | Location name (for multi-shop) |
| `{{location.opening_hours}}` | Opening hours text             |
| `{{location.review_link}}`   | Link to your review page       |

### Loyalty

| Variable                             | What it shows                                                                             |
| ------------------------------------ | ----------------------------------------------------------------------------------------- |
| `{{loyalty.program.name}}`           | Loyalty programme name                                                                    |
| `{{loyalty.order.points_earned}}`    | Points earned on this order                                                               |
| `{{loyalty.order.punches_earned}}`   | Punches earned on this order                                                              |
| `{{loyalty.account.points_balance}}` | Customer's current points balance                                                         |
| `{{loyalty.summary}}`                | One-line summary of the customer's balance and any points or punches earned on this order |

### Event & proposal

| Variable                        | What it shows                         |
| ------------------------------- | ------------------------------------- |
| `{{proposal.link}}`             | Link to view the proposal online      |
| `{{proposal.access_code}}`      | Access code for the proposal (if set) |
| `{{proposal.expires_at}}`       | Proposal expiry date                  |
| `{{quotation.total}}`           | Quote total                           |
| `{{quotation.deposit_amount}}`  | Deposit amount                        |
| `{{quotation.deposit_percent}}` | Deposit as a percentage               |
| `{{quotation.validity_days}}`   | How many days the quote stays valid   |
| `{{events.bank_details}}`       | Your bank details (from Settings)     |
| `{{event.date}}`                | Event date                            |
| `{{event.type}}`                | Event type (wedding, funeral, etc.)   |
| `{{event.balance_due}}`         | Outstanding balance                   |
| `{{event.balance_due_date}}`    | When the balance is due               |
| `{{event.total_paid}}`          | Amount paid so far                    |

## Changing how variables look

You can change how a variable appears by adding a formatting option after a vertical line (`|`).

| Modifier     | Effect                       | Example                                         |
| ------------ | ---------------------------- | ----------------------------------------------- |
| `capitalize` | Capitalises the first letter | `{{fulfilment.verb\|capitalize}}` → "Delivered" |
| `uppercase`  | All caps                     | `{{customer.name\|uppercase}}` → "JANE SMITH"   |
| `lowercase`  | All lowercase                | `{{company.name\|lowercase}}` → "petal & bloom" |
| `title`      | Title Case                   | `{{customer.name\|title}}` → "Jane Smith"       |

## Showing content only when information is available

Sometimes you only want to show part of a message if certain information exists. For example, you might only want to mention delivery instructions if the customer provided some. If this looks complicated, skip it — your notifications work fine without it.

You can show or hide parts of your message based on whether certain information is available:

```
{% if delivery.instructions %}
**Delivery instructions:** {{delivery.instructions}}
{% endif %}
```

This only shows the delivery instructions line if instructions were provided. You can also use `{% else %}` for fallback content:

```
{% if loyalty.summary %}
{{loyalty.summary}}
{% else %}
Join our loyalty programme next time you visit!
{% endif %}
```

## Ready-made sections

These insert pre-formatted content into your template:

| Block                       | What it shows                                                          |
| --------------------------- | ---------------------------------------------------------------------- |
| `{{order_table}}`           | A table of ordered items with names, quantities, and prices            |
| `{{order_table:with_tax}}`  | Items table including net, tax, and gross columns                      |
| `{{order_table:detailed}}`  | Full item breakdown                                                    |
| `{{order_details}}`         | Summary block with order number, date, address, and fulfilment details |
| `{{signature}}`             | Your company signature (name, phone, email, address)                   |
| `{{attachments}}`           | Delivery photos (rendered as images in email)                          |
| `{{button:track_delivery}}` | A "Track your delivery" button with the live tracking link             |

<Info>
  You can combine options in content blocks with commas. For example, `{{order_details:recipient_phone,fulfilment_note}}` adds the recipient's phone number and delivery notes to the summary.
</Info>

## Different messages for delivery and collection

Each notification can have **different wording depending on whether the order is for delivery, collection, relay, or courier**. For example, your "Order Fulfilled" email might say:

* **Delivery:** "Your flowers have been delivered to 12 Oak Street"
* **Collection:** "Your flowers are ready — we look forward to seeing you"

To set this up:

<Steps>
  <Step title="Expand the notification event">
    Open the event you want to customise per fulfilment method.
  </Step>

  <Step title="Choose a specific fulfilment method">
    Pick Delivery, Collection, Relay, or Courier to write a custom message for.
  </Step>

  <Step title="Edit the wording">
    Digital Florists copies the default message as a starting point — adjust the wording for that specific fulfilment method.
  </Step>
</Steps>

When the notification is sent, Digital Florists automatically sends the version matching the order's fulfilment method.

## Buttons

Email notifications can include **action buttons** — clickable links that stand out in the message. The most common example is the "Track your delivery" button on out-for-delivery notifications.

You can manage your buttons in **Settings** > **Notifications** and insert them into templates with `{{button:button_name}}`.

Each button has:

* **Text** — the label shown on the button
* **URL** — where it links to (can include template variables)
* **Colour** — the button background colour

## Email design

Go to **Settings** > **Notifications** > **Email Template Design** to customise the look of all your notification emails.

### Colours

You can set 8 colours that control the overall look:

| Setting                     | What it affects                              |
| --------------------------- | -------------------------------------------- |
| **Body background**         | The outer background colour behind the email |
| **Main content background** | The main email content area background       |
| **Header background**       | The top banner area                          |
| **Footer background**       | The bottom area                              |
| **Text colour**             | Main body text                               |
| **Box text colour**         | Text inside highlighted boxes                |
| **Order background**        | Background for order detail tables           |
| **Accent colour**           | Buttons, links, and highlights               |

A **live preview** updates as you make changes, so you can see exactly how your emails will look before saving.

### Logo

Toggle your company logo on or off at the top of every email. The logo is pulled from your business settings.

### Header and footer text

* **Header text** — shown at the top of every email. The `{{subject}}` variable is available here to pull through the email subject line.
* **Footer text** — shown at the bottom. Supports markdown formatting and template variables like `{{company.name}}`.

### Footer banner

You can add a **promotional banner** to the bottom of every customer-facing email. This is a great way to advertise seasonal offers, new collections, or upcoming services — every order confirmation and delivery update becomes a marketing opportunity.

Set it up in **Settings** > **General** > **Notifications**:

* **Footer image** — upload a graphic
* **Footer link** — add a URL so the image links to your website

Update it whenever you want to promote something new.

## Common questions

<AccordionGroup>
  <Accordion title="Can I use different templates for different locations?">
    Yes. If you have multiple shop locations, you can create location-specific template overrides. Digital Florists checks for a location-specific template first and uses the default version instead if one doesn't exist.
  </Accordion>

  <Accordion title="What happens if I leave a variable empty?">
    If the data doesn't exist for a variable (e.g., no delivery instructions), the variable is replaced with nothing — it just disappears. Use the if/else tags (explained above) to hide entire sections when data is missing.
  </Accordion>

  <Accordion title="Can I revert a template to the default?">
    Yes. Each template editor has a **Reset to Default** button that clears your changes for that channel and restores the original wording.
  </Accordion>

  <Accordion title="How long can an SMS be?">
    SMS messages can be up to 1,600 characters. A single text message is 160 characters. Longer messages are automatically split into multiple texts, which uses more of your credits. The editor shows you how many texts your message will use.
  </Accordion>
</AccordionGroup>

## What's next?

<Columns cols={2}>
  <Card title="Notifications Overview" icon="bell" href="/settings/notifications">
    How notifications work and how to enable or disable events.
  </Card>

  <Card title="Events Reference" icon="bolt" href="/settings/notifications-events">
    Every notification event and what triggers it.
  </Card>

  <Card title="Logs & Troubleshooting" icon="list-check" href="/settings/notifications-logs">
    View sent notifications and fix delivery issues.
  </Card>

  <Card title="Automations" icon="wand-magic-sparkles" href="/settings/automations">
    Automate actions beyond notifications.
  </Card>
</Columns>
