Skip to main content

Scheduled Reports

Automate report generation and delivery on a recurring schedule.

Overview

Scheduled reports allow you to:

  • Automatically generate reports
  • Deliver to stakeholders via email
  • Maintain consistent reporting cadence
  • Save time on routine reporting

Creating a Schedule

From a Report

  1. Open or create a report
  2. Click Schedule or Automate
  3. Configure schedule settings
  4. Add recipients
  5. Save schedule

From Reports List

  1. Go to Reports
  2. Find the report to schedule
  3. Click Schedule in the action menu
  4. Configure and save

Schedule Settings

Frequency Options

FrequencyDescription
DailyEvery day at specified time
WeeklySpecific day(s) of week
MonthlySpecific day of month
QuarterlyEvery 3 months
CustomAdvanced scheduling

Time Settings

SettingDescription
TimeWhen to generate (in your timezone)
TimezoneWhich timezone to use
Business days onlySkip weekends/holidays

Example Schedules

Weekly Monday Report

  • Frequency: Weekly
  • Day: Monday
  • Time: 8:00 AM
  • Covers: Previous week's data

End of Month Summary

  • Frequency: Monthly
  • Day: Last day of month
  • Time: 6:00 PM
  • Covers: Entire month

Daily Compliance Check

  • Frequency: Daily
  • Time: 7:00 AM
  • Business days: Yes
  • Covers: Previous day

Report Date Ranges

Relative Date Ranges

Scheduled reports use relative dates:

RangeDescription
TodayCurrent day
YesterdayPrevious day
This weekCurrent week
Last weekPrevious full week
This monthCurrent month
Last monthPrevious full month
Last 7 daysRolling 7-day period
Last 30 daysRolling 30-day period

Automatic Adjustment

Date ranges adjust automatically:

  • "Last week" always shows the previous week
  • "This month" shows current month to date
  • Rolling periods move with each generation

Recipients

Adding Recipients

  1. Click Add Recipient
  2. Enter email address or select user
  3. Add multiple as needed
  4. Set recipient options

Recipient Options

OptionDescription
Internal usersSelect from user list
External emailAny email address
Distribution listMultiple emails

Recipient Types

TypeReceives
ToPrimary recipient
CCCopy
BCCHidden copy

Delivery Options

Format

Choose export format:

  • PDF (default, best for viewing)
  • Excel (for data analysis)
  • CSV (for data processing)

Email Settings

SettingDescription
SubjectCustom or default
MessageOptional body text
Attach reportFile attachment
Include linkLink to view in Kuviq

Conditional Delivery

Optional conditions:

  • Only if data exists
  • Only if thresholds met
  • Only on business days

Managing Schedules

Scheduled Reports

Viewing Schedules

  1. Go to Reports > Schedules
  2. See all active schedules
  3. View next run time
  4. Check recent deliveries

Schedule List Shows

  • Report name
  • Frequency
  • Next run
  • Recipients count
  • Status (Active/Paused)

Editing Schedules

  1. Find schedule in list
  2. Click Edit
  3. Modify settings
  4. Save changes

Pausing Schedules

Temporarily stop:

  1. Find schedule
  2. Click Pause
  3. Schedule won't run until resumed
  4. Click Resume to restart

Deleting Schedules

  1. Find schedule
  2. Click Delete
  3. Confirm deletion
  4. Schedule permanently removed

Schedule Status

Status Indicators

StatusMeaning
ActiveRunning as scheduled
PausedTemporarily stopped
ErrorLast run failed
PendingFirst run not yet occurred

Monitoring Runs

View run history:

  1. Go to schedule details
  2. Click History or Runs
  3. See past executions
  4. Review any errors

Run Details

Each run shows:

  • Run time
  • Status (success/failed)
  • Recipients
  • File generated
  • Errors if any

Error Handling

Common Errors

ErrorCauseSolution
No dataNo data for periodCheck filters
Delivery failedInvalid emailUpdate recipient
TimeoutReport too largeSimplify report
Access deniedPermission issueCheck report access

Error Notifications

When errors occur:

  • Schedule owner notified
  • Error details provided
  • Retry attempted (configurable)
  • Manual review may be needed

Automatic Retries

Failed runs can retry:

  • 1 retry after 30 minutes
  • 2nd retry after 2 hours
  • Then marked as failed

Best Practices

Schedule Timing

  1. Consider audience - When will they read it?
  2. Data availability - Ensure data is complete
  3. System load - Avoid peak hours
  4. Time zones - Recipients' local time

Frequency Selection

Report TypeRecommended Frequency
OperationalDaily
ComplianceWeekly
ExecutiveMonthly
AuditQuarterly

Recipient Management

  1. Include only necessary recipients
  2. Use distribution lists for groups
  3. Review recipients periodically
  4. Remove departed users

Report Content

  1. Keep reports focused
  2. Use relative date ranges
  3. Include context in email
  4. Test before activating

Advanced Scheduling

Multiple Schedules

One report can have multiple schedules:

  • Daily to operations team
  • Weekly summary to managers
  • Monthly to executives

Different Formats

Same report, different formats:

  • PDF for viewing
  • Excel for analysis team
  • CSV for data team

Conditional Scheduling

Schedule based on conditions:

  • Only send if failures exist
  • Only send if overdue items
  • Only send if threshold exceeded

Permissions

Who Can Schedule

Typically:

  • Report owners
  • Admins
  • Users with reporting permissions

Who Can Receive

  • Any internal user
  • External emails (if enabled)
  • Subject to organization policy

Managing Others' Schedules

Admins can:

  • View all schedules
  • Edit any schedule
  • Delete any schedule
  • Reassign ownership

Use Cases

Weekly Team Report

Setup:

  • Report: Team Inspection Summary
  • Frequency: Weekly (Monday)
  • Time: 8:00 AM
  • Recipients: Team members
  • Format: PDF

Purpose: Start week with last week's summary

Daily Overdue Alert

Setup:

  • Report: Overdue Inspections
  • Frequency: Daily
  • Time: 7:00 AM
  • Recipients: Managers
  • Condition: Only if overdue items exist

Purpose: Alert managers to urgent items

Monthly Board Report

Setup:

  • Report: Executive Dashboard
  • Frequency: Monthly (1st day)
  • Time: 6:00 AM
  • Recipients: Leadership
  • Format: PDF

Purpose: Monthly metrics for leadership

Quarterly Compliance

Setup:

  • Report: Comprehensive Compliance
  • Frequency: Quarterly
  • Time: End of quarter
  • Recipients: Compliance team
  • Format: Excel + PDF

Purpose: Quarterly compliance review

Technical Implementation

Cloud Functions

Scheduled reports are processed by Firebase Cloud Functions that run hourly:

FunctionPurpose
processScheduledReportsHourly job that checks for due schedules
runScheduledReportNowManually trigger a specific schedule
getScheduleExecutionHistoryRetrieve execution logs

Processing Flow

  1. Schedule Check - Hourly function queries schedules where nextRun <= now
  2. Report Generation - Fetches report config and generates data
  3. Export - Converts to requested format (PDF, Excel, CSV)
  4. Storage - Uploads to Firebase Storage with signed URL
  5. Notification - Queues email to recipients with download link
  6. Update - Calculates and stores next run time

Charts in PDF Exports

PDF exports include rendered chart images:

  • Bar charts, line charts, and pie charts are rendered as high-quality images
  • SVG-based rendering ensures crisp output
  • Charts are embedded directly in the PDF

Real-Time Metrics

For dashboard widgets with real-time updates:

  • Auto-refresh every 30 seconds (configurable)
  • Firestore listeners for immediate updates
  • Supports multiple metric types:
    • inspection_count - Total inspections
    • inspection_pass_rate - Pass/fail percentage
    • items_total - Item counts
    • compliance_rate - Overall compliance
    • overdue_inspections - Overdue counts

Execution Logs

Each scheduled run creates a log entry with:

{
scheduleId: string
reportId: string
status: 'success' | 'failure' | 'partial'
startedAt: Timestamp
completedAt: Timestamp
recipientCount: number
recipientsSent: number
fileUrl?: string
fileSize?: number
errorMessage?: string
processingTimeMs: number
}

Troubleshooting

Report Not Delivered

Check:

  1. Schedule is active
  2. Email addresses valid
  3. No errors in history
  4. Check spam folders

Wrong Data in Report

Check:

  1. Date range settings
  2. Filter configurations
  3. Report last modified
  4. Data availability timing

Duplicate Reports

Check:

  1. Multiple schedules exist
  2. Recipients on multiple lists
  3. Forwarding rules

Cloud Function Errors

Check:

  1. Firebase Console > Functions > Logs
  2. Verify function is deployed
  3. Check execution history in Firestore
  4. Review reportExecutionLogs collection

Next Steps