Customise scheduled report emails
This guide explains how to customise the emails sent with scheduled reports, including the subject line, message content, attached file name, and reply-to details.
💡 You can apply email customisations to all schedules or to a single schedule. If both are set, customisations applied to a single schedule take priority.
In this article:
- Where to apply email customisations
- Email customisation options
- Available Liquid variables
- Formatting dates with Liquid
- Combining variables with static text
- Need more support?
Where to apply email customisations
You can customise scheduled report emails in two places, depending on whether the change should apply to one schedule or all schedules.
Customising emails for a single schedule
Use this option when a specific scheduled report needs its own wording, formatting, or file naming.
- Go to the Schedule tab
- Open the schedule you want to edit
- Make sure Email is selected as the delivery method
- Open the Email options
Any settings configured here only apply to this schedule.
Customising emails at the account level
Use this option to define default email settings for all schedules.
- Go to the Settings tab
- Select Schedules
These settings apply to every schedule unless they are overridden at the schedule level.
Email customisation options
All email fields use a markdown editor and support Shopify Liquid.
The markdown editor lets you undo and redo changes, and apply basic formatting such as bold, italics, underline, font styles, images and hyperlinks.
Each option can be customised at the schedule level or account level.

Reply-to
Controls the email address and full name shown when a recipient replies to the scheduled email.
Defaults to:
- Shopify Integrated App accounts use the store owner’s email and name
- Standard accounts use no-reply@betterreports.com
Attached file name
Controls the name of the report file attached to the email.
{{Report.Title}}-{{Run.At | date: "%Y-%m-%d-%H_%M%p"}}
// Example output: Sales by product-2024-01-15-09_00AM
Email subject
Controls the subject line of the scheduled email. You can include static text, variables or a combination of both.
[Scheduled report] {{Report.Title}}
// Example output: [Scheduled report] Sales by product
Email body
Controls the content of the email message itself. This is the text recipients see when they open the scheduled email.
Shopify Integrated App default:
Please find attached your scheduled report {{Report.Title}}.
This report is sent {{Schedule.EveryPeriod}} by [Store name hyperlink] via the Better Reports app.
Standard account default:
Please find attached your scheduled report {{Report.Title}}.
This report is sent {{Schedule.EveryPeriod}} via Better Reports.
Available Liquid variables
You can enhance email fields with dynamic content using the following variables:
-
{{Report.Title}}
The title of the scheduled report
-
{{Run.At}}
The date and time when the report is run
-
{{Schedule.Period}}
The schedule frequency (daily, hourly, weekly, or monthly)
-
{{Schedule.EveryPeriod}}
The schedule cadence (every month on the 1st of the month at 12:00 AM)
These variables can be used in:
- Attached file names
- Email subject lines
- Email body content
Formatting dates with Liquid
You can control how dates appear by applying Liquid date filters to the {{Run.At}} variable.
Below are common formatting examples.
Display yesterday’s date
{{Run.At | date: "%s" | minus: 86400 | date: "%m/%d/%Y"}}
// Example output: 01/14/2024
How this works:
- {{Run.At | date: "%s"}} converts the run time into seconds
- | minus: 86400 subtracts one day
- | date: "%m/%d/%Y"} formats the adjusted date
Day, month, date, year
{{Run.At | date: "%A, %B %d, %Y"}}
// Example output: Monday, January 01, 2024
Date and time with a 12-hour clock
{{Run.At | date: "%m/%d/%Y %I:%M %p"}}
// Example output: 01/15/2024 09:00 AM
ISO 8601 format
{{Run.At | date: "%Y-%m-%dT%H:%M:%SZ"}}
// Example output: 2024-01-15T09:00:00Z
Combining variables with static text
You can combine Liquid variables with static text to create clearer, more descriptive fields.
{{Report.Name}} for {{Run.At | date: "%s" | minus: 86400 | date: "%m/%d/%Y"}}
// Example output: Sales by product for 01/14/2024
Need more support?
If you get stuck or have additional questions, you can contact our team directly through the Help widget in the bottom-right corner — we typically respond within one business day.