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

# Schedule Reports

> Automatically email static dashboard links to recipients on a cadence

With SMTP verified, you can schedule recurring report emails that include secure links to static dashboard snapshots. Reports arrive on time, every time, with numbers that don’t change.

### What Gets Sent

* Email subject and message body you configure
* A secure link to a static dashboard snapshot (generated at send time)
* Optional custom message for context

<img src="https://mintcdn.com/upsolve/PzqodRmqdDj4-Bhc/images/scheduled-reporting/schedule-reports-overview.png?fit=max&auto=format&n=PzqodRmqdDj4-Bhc&q=85&s=018f8d4e9b97c7fce372d1536e404d29" alt="schedule-reports-overview" width="2556" height="1560" data-path="images/scheduled-reporting/schedule-reports-overview.png" />

### Workflow: Create a Schedule

1. Open a dashboard and click "Schedule report"
2. Name your schedule (e.g., "Weekly Executive Summary")
3. Select recipients (add multiple emails, names optional)
4. Choose the send time and timezone
5. Set the cadence via cron expression or the visual picker (e.g., every Monday 8am)
6. Customize subject and message body
7. Save and activate the schedule

### Filter and Tenant Persistence

When you create a scheduled report, any dashboard filters or tenant selection active at the time will be preserved and applied to each static snapshot generated by the schedule:

* **Dashboard Filters**: All filter values set when creating the schedule will be locked into the schedule. Each time the report is sent, the static snapshot will reflect those filter values.
  * **Relative Date Filters**: Date filters using relative ranges (such as "Last 7 Days", "Month to Date", or "Last 30 Days") are treated specially. These filters will be recalculated at send time, ensuring the report always shows the most recent data for the specified period. For example, a schedule with "Last 7 Days" will always show the previous 7 days from when the email is sent, not the 7 days from when the schedule was created.
  * **Static Date Filters**: Date filters with specific date ranges (such as "January 1, 2024 - January 31, 2024") remain fixed and will always show data for those exact dates.
* **Tenant Selection**: If you have selected a specific tenant using the "View as" feature when creating the schedule, the schedule will be scoped to that tenant's data permissions. Each generated snapshot will respect the tenant's data access rules.

This ensures that each report is generated with consistent filtering and data access, making it ideal for sending tenant-specific reports or filtered views to different stakeholder groups.

### Custom URL Base (Advanced)

When embedding dashboards into your product via iframe, you can customize the base URL used in email report links. This allows you to use your own domain or staging environment instead of the default `hub.upsolve.ai/share/static` URL.

**Use Cases:**

* Embedding dashboards into your product's iframe
* Using a custom domain for report links
* Pointing to a staging environment for testing

**How to Configure:**

1. When creating or editing a schedule, expand the "Advanced Options" section
2. Enter your custom URL base in the "Custom URL Base" field
   * You can include the protocol (`https://` or `https://`) or omit it (defaults to `https://`)
   * Examples:
     * `https://{your-domain}.com/share`
     * `yourdomain.com/dashboards`
3. The system will automatically append the access token to your custom URL base

**Note:** The custom URL base applies to both scheduled sends and "Send Now" test emails, ensuring consistency across all email reports.

**Example:**
If you set the custom URL base to `https://{your-domain}.com/share`, the email will contain a link like:

```
https://{your-domain}.com/share/{accessToken}
```

Instead of the default:

```
https://hub.upsolve.ai/share/static/{accessToken}
```

<img src="https://mintcdn.com/upsolve/usblasX1hrZ6NpKB/images/scheduled-reporting/custom-url-base-configuration.png?fit=max&auto=format&n=usblasX1hrZ6NpKB&q=85&s=bc86f8685a13ab97495e3fb156cb1a33" alt="custom-url-base-configuration" width="1444" height="522" data-path="images/scheduled-reporting/custom-url-base-configuration.png" />

> **Note:** Only configure a custom URL base if you plan to iframe share dashboards into your product. For standard use cases, the default URL works perfectly.

Entry point:

<img src="https://mintcdn.com/upsolve/PzqodRmqdDj4-Bhc/images/scheduled-reporting/schedule-reports-entry.png?fit=max&auto=format&n=PzqodRmqdDj4-Bhc&q=85&s=95960068d8c86c74c6124d6424509d96" alt="schedule-reports-entry" width="966" height="730" data-path="images/scheduled-reporting/schedule-reports-entry.png" />

Modal:

<img src="https://mintcdn.com/upsolve/Ipp3sJPdIaFHy_L6/images/scheduled-reporting/create-schedule-modal.png?fit=max&auto=format&n=Ipp3sJPdIaFHy_L6&q=85&s=cc3434544d4d41b016e952da07cf0701" alt="create-schedule-modal" width="1502" height="1864" data-path="images/scheduled-reporting/create-schedule-modal.png" />

Cron picker:

<img src="https://mintcdn.com/upsolve/PzqodRmqdDj4-Bhc/images/scheduled-reporting/cron-picker.png?fit=max&auto=format&n=PzqodRmqdDj4-Bhc&q=85&s=995f1d88fba3d0d1f78e57224f43a7cb" alt="cron-picker" width="1466" height="590" data-path="images/scheduled-reporting/cron-picker.png" />

Recipients:

<img src="https://mintcdn.com/upsolve/PzqodRmqdDj4-Bhc/images/scheduled-reporting/schedule-recipients.png?fit=max&auto=format&n=PzqodRmqdDj4-Bhc&q=85&s=5a9cdb24c303b7fc48172f04b31270dd" alt="schedule-recipients" width="1482" height="240" data-path="images/scheduled-reporting/schedule-recipients.png" />

### Managing Schedules

* Toggle active/inactive
* Edit cadence, recipients, or content
* View send history and delivery logs

<img src="https://mintcdn.com/upsolve/PzqodRmqdDj4-Bhc/images/scheduled-reporting/schedules-list.png?fit=max&auto=format&n=PzqodRmqdDj4-Bhc&q=85&s=ba770bc4d7484d279d6904bf34a6425b" alt="schedules-list" width="2090" height="1016" data-path="images/scheduled-reporting/schedules-list.png" />

<img src="https://mintcdn.com/upsolve/PzqodRmqdDj4-Bhc/images/scheduled-reporting/email-logs.png?fit=max&auto=format&n=PzqodRmqdDj4-Bhc&q=85&s=e3ae3a0a8abdedacf341df65e35d9fb0" alt="email-logs" width="2016" height="656" data-path="images/scheduled-reporting/email-logs.png" />

### Best Practices

* Keep one schedule per audience to tailor subject/body
* Prefer static snapshot links for auditability and consistency
* Use organization email domain for higher deliverability (via SMTP verification)
