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​