Skip to main content
Custom Reports let you query your loyalty program data directly using SQL. Unlike standard pre-built reports, custom reports give you full control over which fields to include, how data is filtered, and which date ranges to analyse. You can preview results in real time, schedule recurring exports, and generate one-time reports on demand.

What custom reports are for

Standard Loyalife reports (transaction, member, communication) cover the most common use cases. Custom reports fill the gaps when you need:
  • Metrics that combine data from multiple standard report categories
  • Non-standard aggregations (e.g., average basket size by tier by month)
  • Ad-hoc analysis for a specific date window without changing your recurring schedule
  • Customised exports for stakeholder or compliance reporting

Accessing custom reports

Navigate to Reports & Analytics → Data Exports → Custom Reports tab.

Creating a custom report

1

Click Create Report

From the Custom Reports tab, click Create Report.
2

Name and describe the report

Give the report a clear name and an optional description. The description is visible in the Report Settings panel and helps other users understand the report’s purpose.
3

Write the SQL query

Enter your SQL query in the query editor. The query can reference any table available in your Loyalife data schema. Use named parameters — :start_date and :end_date — if you want the report to support custom date range generation.Example parameter usage:
SELECT member_id, SUM(points_earned) AS total_earned
FROM transactions
WHERE transaction_date BETWEEN :start_date AND :end_date
GROUP BY member_id
4

Set the generation schedule

Choose how often the report runs automatically:
ScheduleFrequency
DailyRuns every day
WeeklyRuns once per week
MonthlyRuns once per month
Manual onlyNo automatic generation — report runs only when you explicitly trigger it
5

Configure sharing (optional)

Use Manage Report Sharing to specify which users and roles can view or download this report. Sharing rules control who sees the report in their Custom Reports list.
6

Save

Save the report. It appears in the Custom Reports listing and will begin generating on schedule.
Only Super Admins can create and edit custom reports. Any user with access to the report (as defined by the sharing settings) can view, preview, and generate on-demand exports.

Real-time preview

You can preview the results of a custom report directly inside the dashboard without exporting a file. Click the report to open its detail view, then use the Preview panel to see the current data result set displayed as an interactive table. This eliminates the need to export a file just to check whether a query is returning the right data. Previous behaviour required downloading a CSV for every verification step.

Report Settings panel

Every custom report has a Report Settings button that reveals:
SettingDescription
DescriptionThe report’s purpose and data coverage
Period of generationThe scheduled frequency
SQL QueryThe underlying query, readable for review or debugging

Manage Report Sharing panel

The Manage Report Sharing button shows:
SettingDescription
Reports shared withSpecific users who can access this report
Reports shared with rolesRoles whose members can access this report

Search and filter on report data

Custom report outputs now include AG Grid-powered real-time search and filtering directly on the loaded CSV data:

Filtering

FeatureDetail
Global searchSearches across all columns simultaneously
Column-level filtersApplied on top of global search with AND logic; multi-column filtering supported
Filter typesAuto-assigned: text filter for string columns, number filter for numeric columns, date filter for date columns
Filter resetClear all active filters with one click

Sorting and pagination

  • Sorting available on string, numeric, and date columns
  • Pagination options: 50, 100, 500, or 1,000 rows per page

Filtered export

Click Export CSV to download only the rows matching your current filter state — not the full report. This makes it easy to share a filtered slice of data without modifying the underlying query.
Column headers are auto-detected from the CSV file — no configuration is needed. Filters are client-side only and do not modify the stored report or its schedule.
Search and filter are not available on the Report Data tab — only on the report output view after opening a generated file.
Custom reports include clickable View Segment and View Campaign links in applicable report types. These links navigate directly to the relevant Segment or Campaign detail page. If your session has expired, clicking the link redirects to the login page.

On-demand generation (custom date range)

Any custom report that uses :start_date and :end_date parameters in its SQL query can be generated for a specific date window on demand, without changing the recurring schedule.
1

Open the report

Navigate to the custom report’s detail view.
2

Click Generate

The Generate button opens a popup requiring:
FieldRequired
Start DateYes
End DateYes
3

Click Generate Now

The system executes the saved SQL query, binding :start_date and :end_date to the values you entered. No SQL validation is performed — if your query does not support these parameters, the generation job will fail.
4

Download the output

The generated file appears in the report’s output list tagged as Manual with a filename in the format:{ReportName}_{YYYYMMDD}-{YYYYMMDD}.csv
If the SQL query does not include :start_date and :end_date parameters, the generation job will fail. Verify your query uses these exact parameter names before triggering a manual run.

Manual vs Auto outputs

All outputs — both scheduled and on-demand — appear in the same output list. Manual outputs are tagged Manual to distinguish them from scheduled runs.
Output typeTagNaming
Scheduled (daily/weekly/monthly)Auto{ReportName}_{Period}.csv
On-demand (custom date range)Manual{ReportName}_{YYYYMMDD}-{YYYYMMDD}.csv

Audit trail

Every manual generation attempt is captured in the audit trail with:
  • The user who triggered it
  • The start and end dates used
  • The run ID
  • Status (success or failure)
  • Timestamp
Scheduled runs are also logged automatically.

Permissions reference

ActionWho can do it
Create reportSuper Admins only
Edit report (query, schedule, sharing)Super Admins only
View report and preview dataAny user with access per sharing settings
Generate on-demand (manual run)Any user with access per sharing settings
Download outputAny user with access per sharing settings

Troubleshooting

Manual generation fails immediately.
  • Check that your SQL query contains :start_date and :end_date parameters. Without them, the job cannot bind the date range and will fail.
Report preview shows unexpected results.
  • Open Report Settings and review the SQL query. Check filter conditions, date field names, and JOIN logic.
Report is not visible to a team member.
  • Open Manage Report Sharing and add their username or role.
Scheduled report is not generating.
  • Verify the generation schedule is set (not Manual only).
  • Check the output list for any failed run entries and review error messages.