+ BackupChecks is a backup monitoring and validation system designed to help IT teams
+ verify that backups are running successfully across their customer infrastructure.
+
+
+
Key Features
+
+
+
Automated Mail Parsing: Import backup reports via email and automatically parse results
+
Approval Workflow: Review and approve backup jobs on a daily basis
+
Customer Management: Organize backups by customer and manage multiple backup jobs per customer
+
Autotask Integration: Create tickets in Autotask PSA for failed backups
+
Reporting: Generate backup status reports with flexible scheduling
+
Role-Based Access: Admin, Operator, Reporter, and Viewer roles
+ ⚠️ Important:
+ BackupChecks monitors backup reports, not the backup data itself. Ensure your backup software is configured to send email notifications on job completion.
+
After initial approval, future emails for the same job are processed automatically:
+
+
What Happens
+
+
+
Email is imported and parsed
+
BackupChecks identifies it matches an existing approved job (based on sender, job name, and backup software)
+
A new JobRun record is automatically created
+
The email does NOT appear in the Inbox
+
The job run immediately appears in Daily Jobs and Job History
+
Operators can review it without manual approval
+
+
+
+ 💡 First-Time Setup:
+ The Inbox approval step only happens once per job. After that, all future reports for the same job are automatically processed. This is why it's important to approve inbox emails promptly when onboarding new customers.
+
+
+
Stage 4: Daily Monitoring
+
+
Approved jobs appear in the Daily Jobs view based on inferred schedules. This page provides an informational overview of which jobs are expected to run on a given date.
+
+
+ 💡 Daily Jobs is Informational Only:
+ Daily Jobs is not part of the daily backup review workflow. It's purely for viewing which jobs are scheduled to run and their most recent status. The actual daily review work happens in the Run Checks page. Daily Jobs may be deprecated in a future version.
+
+
+
What Happens
+
+
+
BackupChecks analyzes historical run patterns to infer job schedules
+
Jobs expected to run on a specific date appear in Daily Jobs
+
Status indicators show:
+
+
Success: Green badge - job completed successfully
+
Success (Override): Blue badge - override applied, originally warning/failed
+
Warning: Yellow badge - job completed with warnings
+
Failed: Red badge - job failed
+
Missed: Gray badge - job was expected but didn't run
+
Expected: White badge (with border) - job hasn't run yet today
+
+
+
Overrides are applied automatically (warnings/failures show as blue Success (Override) badge)
+
Ticket and remark indicators (🎫 💬) show jobs with known issues
+
+
+
See Daily Jobs View for details about this informational page.
+
+
Stage 5: Run Review
+
+
When a job shows a warning or failure, you review it using the Run Checks modal.
+
+
What Happens
+
+
+
Click on a job with a warning or failure in Daily Jobs
+
The Run Checks modal opens showing:
+
+
Recent runs for this job
+
Selected run details (objects, status, error messages)
+
Original email content
+
Applied overrides
+
Linked tickets and remarks
+
+
+
You investigate the issue by reviewing:
+
+
Which backup objects failed or have warnings
+
Error messages for specific objects
+
Full email body for additional context
+
Historical runs to identify patterns
+
+
+
You determine the appropriate action (see Stage 6)
Acceptable warnings (retry succeeded, minor performance issue)
+
Successful backups (no issues detected)
+
+
+
Action: Click "Mark as reviewed" in the Run Checks modal, then the run disappears from the Run Checks page.
+
+
Option 2: Create an Override
+
+
If the issue is expected and will occur repeatedly:
+
+
+
Known acceptable warnings (e.g., "Retry succeeded" is acceptable for this job)
+
Temporary planned issues (maintenance window for the next week)
+
Object-specific exceptions (one VM always has warnings due to configuration)
+
+
+
Action: Create an override on the Overrides page. Future matching runs will automatically show as success with a blue override indicator. Then mark the current run as reviewed in the Run Checks modal.
If the issue needs documentation but not formal ticket tracking:
+
+
+
Temporary issues (customer notified, waiting for their action)
+
Known non-critical problems (cosmetic issue, low-priority warning)
+
Investigation notes (checked with customer, not actually an issue)
+
+
+
Action: Click "Create Remark" in the Run Checks modal. The remark is linked to the job and shows 💬 in Run Checks. Then mark the run as reviewed - otherwise it will remain visible and can appear incorrectly as failed/warning the next day.
+
+
Option 4: Create a Ticket
+
+
If the issue requires external followup and tracking:
+
+
+
Hardware failures (disk full, server offline)
+
Customer action required (upgrade software, allocate more storage)
+
Vendor support needed (backup software bug, licensing issue)
+
+
+
Action: Click "Create Ticket" in the Run Checks modal. The ticket is linked to the job and shows 🎫 in Run Checks. Then mark the run as reviewed - this is required even when creating a ticket, otherwise the run stays visible.
+ ⚠️ Always Mark as Reviewed:
+ Regardless of which action you take (override, remark, or ticket), you must always mark the run as reviewed afterwards. If you don't, the run will remain in the Run Checks list and can show the wrong status the next day (only the first unreviewed status is displayed).
+
+
+
Stage 7: Mark as Reviewed
+
+
After handling the issue (or determining no action is needed), mark the run as reviewed. This is required for ALL runs, including successful ones.
+
+
What Happens
+
+
+
Click Mark as reviewed in the Run Checks modal (or select multiple runs and mark all at once)
+
The run is marked with a review timestamp
+
The run disappears from the Run Checks page
+
A review audit record is created (visible to Admins)
+
+
+
+ 💡 Goal: Empty Run Checks Page:
+ The objective is to have the Run Checks page completely empty - this means all runs have been reviewed. Even successful backups must be marked as reviewed, because they haven't been looked at, but they still need to be marked to clear the Run Checks page. You can select multiple runs and mark them all as reviewed at once for efficiency.
+
+
+
Bulk Review
+
+
For efficiency, you can mark multiple jobs as reviewed simultaneously:
+
+
+
Open the Run Checks page
+
Select multiple job checkboxes
+
Click Mark selected as reviewed
+
All runs for all selected jobs are marked as reviewed and disappear from the list
+
+
+
This is especially useful for successful backups where no investigation is needed - you can quickly clear them to keep the Run Checks page empty.
+
+
Best Practices
+
+
+
Start with Run Checks every day: Open Run Checks page first thing every morning - this is your primary workflow
+
Goal: Empty Run Checks page: Mark all runs as reviewed (even successful ones) until the page is completely empty
+
Approve inbox emails quickly: New customer emails won't appear in Run Checks until approved
+
Triage by status: Review red (Failed) before yellow (Warning) before green (Success)
+
Use bulk review for successes: Select multiple successful runs and mark them all at once
+
Always mark as reviewed: Even after creating tickets/remarks/overrides, you must still mark the run as reviewed
+
Use overrides for recurring acceptable warnings: Don't mark the same warning as reviewed every day - create an override
+
Create tickets for customer action items: Formal tracking ensures followup
+
Use remarks for temporary notes: Don't create tickets for short-term issues
+
Always check backup objects: The overall status can be misleading - individual objects may have hidden failures
+
Document in comments: When creating overrides or tickets, always explain why
+
Resolve tickets promptly: After issues are fixed, resolve the ticket to clear the 🎫 indicator
+
Daily Jobs is secondary: Use Daily Jobs for viewing job schedules, but Run Checks is where review work happens
+
+
+
Role-Based Review Workflow
+
+
Operator Workflow
+
+
+
Open Run Checks page every morning
+
Review each run in the list (click to see details)
+
For issues: create tickets, remarks, or overrides as needed
+
Mark ALL runs as reviewed (including successes and runs with tickets/overrides)
+
Goal: End with completely empty Run Checks page
+
Cannot unmark reviewed runs or delete overrides
+
+
+
Admin Workflow
+
+
+
Same as Operator, plus:
+
Can view reviewed runs and review timestamps
+
Can unmark reviewed runs if re-investigation is needed
+
Can delete overrides and tickets
+
Monitors overall system health and team review performance
+
Can verify Run Checks page is empty (all reviews completed)
+
+
+
Viewer Workflow
+
+
+
View Daily Jobs to see backup status
+
Cannot access Run Checks page
+
Cannot create tickets, remarks, or overrides
+
Cannot mark runs as reviewed
+
Read-only access for reporting and visibility
+
+
+
Performance Tips
+
+
+
Use bulk review for successes: Select multiple green success runs and mark them all as reviewed at once
+
Review by exception: Use overrides to reduce noise, then focus on genuine issues
+
Batch approve inbox emails: Set aside time weekly to approve new customer jobs
+
Create global overrides for common warnings: Handle widespread acceptable warnings once
+
Use tickets for tracking workload: Helps identify which customers have recurring issues
+
Archive resolved tickets: Filter to "Active" only to reduce clutter
+
Focus on Run Checks only: Don't spend time in Daily Jobs unless you need to check schedules - Run Checks is your daily tool
+
Process runs in order: Work through the Run Checks list from top to bottom systematically
+ Monitor backup jobs expected to run on a specific date, with smart schedule inference and status tracking.
+
+
+
Overview
+
+
The Daily Jobs view displays all backup jobs expected to run on a selected date, based on intelligent schedule inference from historical run patterns. It provides an overview of which jobs exist and their schedules.
+
+
+ 💡 Daily Jobs vs Run Checks:
+ Daily Jobs is primarily for viewing which jobs exist and their schedules. For daily operational review work, use the Run Checks page instead - that's where you review and mark runs as complete. Daily Jobs may be deprecated in a future version.
+
+
+
Key features:
+
+
+
Schedule inference: Automatically detects weekly and monthly backup schedules from historical runs
+
Status tracking: Shows which jobs succeeded, failed, have warnings, or haven't run yet
+
Missing job detection: Identifies jobs that should have run but didn't
+
Override indicators: Displays blue badges for jobs with active overrides
+
Ticket and remark indicators: Shows 🎫 and 💬 icons for jobs with linked tickets or remarks
+
+
+
Accessing Daily Jobs
+
+
To access the Daily Jobs view:
+
+
+
Navigate to Daily Jobs in the main navigation menu
+
Available to Admin, Operator, and Viewer roles
+
The view defaults to today's date in your configured timezone
+
+
+
Date Selection
+
+
At the top of the page, you can select which date to view:
+
+
+
Date picker: Choose any date to view jobs expected on that day
+
Previous / Next buttons: Navigate day by day
+
Today button: Jump back to today's date
+
+
+
+ 💡 Timezone:
+ Dates are displayed in your configured timezone (set in Settings). Job schedules are inferred based on when jobs historically ran in that timezone.
+
+
+
Job Table Columns
+
+
The Daily Jobs table displays the following columns:
Current status indicator (Success, Warning, Failed, Missed, Expected)
+
+
+
Reviewed
+
Checkmark if the job has been reviewed (only for non-success statuses)
+
+
+
+
+
+ 💡 Admin-Only Column:
+ The Reviewed column is only visible to users with the Admin role. Operators and Viewers cannot see review status in the Daily Jobs table.
+
+
+
Status Indicators
+
+
Each job displays a status badge indicating its current state:
+
+
+
+
+
Status
+
Badge Color
+
Meaning
+
+
+
+
+
Success
+
Green
+
Job completed successfully with no warnings or errors
+
+
+
Success (Override)
+
Blue
+
Job had warning/failure but is treated as success due to an active override rule
+
+
+
Warning
+
Yellow
+
Job completed but with warnings (e.g., retry succeeded, partial backup)
+
+
+
Failed
+
Red
+
Job failed and did not complete successfully
+
+
+
Missed
+
Gray
+
Job was expected to run on this date but no run was detected
+
+
+
Expected
+
White
+
Job is expected to run later today (for future dates or today before the job runs)
+
+
+
+
+
Schedule Inference
+
+
BackupChecks automatically infers backup job schedules by analyzing historical run patterns. This eliminates the need to manually configure schedules for each job.
+
+
How Schedule Inference Works
+
+
The system examines the past 60 days of job runs to detect patterns:
+
+
+
Daily jobs: Jobs that run every day (or nearly every day)
+
Weekly jobs: Jobs that run on specific days of the week (e.g., every Monday, Wednesday, Friday)
+
Monthly jobs: Jobs that run on specific dates of the month (e.g., 1st and 15th of each month)
+
+
+
Schedule Display
+
+
In the Schedule column, you'll see:
+
+
+
"Daily" - Job runs every day
+
"Weekly: Mon Wed Fri" - Job runs on Mondays, Wednesdays, and Fridays
+
"Monthly: 1st, 15th" - Job runs on the 1st and 15th of each month
+
"Irregular" - No consistent schedule detected
+
"-" - Not enough historical data to infer a schedule
+
+
+
+ 💡 Learning Period:
+ Schedule inference requires at least 10-14 days of historical runs to detect patterns accurately. Newly approved jobs may show "-" or "Irregular" until enough data is collected.
+
+
+
Override Badges
+
+
Jobs with active overrides display a small badge next to the job name. Overrides are used to handle known issues or exceptions (e.g., "treated as success due to known warning").
+
+
To view override details:
+
+
+
Look for jobs with override badges in the Daily Jobs table
+
Click on the job row to open the Run Checks modal (see next section)
+
The modal will show which overrides are applied to the job run
+
+
+
Ticket and Remark Indicators
+
+
Jobs linked to active tickets or remarks display indicator icons:
+
+
+
🎫 Ticket icon: Job has one or more active tickets linked to it
+
💬 Remark icon: Job has one or more active remarks attached
+
+
+
These indicators help you quickly identify jobs with known issues or ongoing investigations.
+
+
Viewing Job Details
+
+
To view detailed information about a job run:
+
+
+
Click on any job row in the Daily Jobs table
+
The Run Checks modal opens, showing:
+
+
Job run details and status
+
Backup objects (VMs, servers, etc.) and their individual statuses
+
Applied overrides
+
Linked tickets and remarks
+
Original email content
+
+
+
+
+
See Run Checks Modal for detailed information about reviewing job runs.
+
+
Reviewing Jobs
+
+
For jobs with warnings or failures, you can mark them as reviewed after investigating:
+
+
+
Click on the job row to open the Run Checks modal
+
Review the job details, objects, and any error messages
+
Click Mark as reviewed to acknowledge you've investigated the issue
+
The job is marked as reviewed and removed from the unreviewed list
+
+
+
+ 💡 Review Workflow:
+ Only jobs with warnings or failures need to be reviewed. Successful jobs are automatically considered reviewed. The Run Checks workflow is designed to help you quickly triage and acknowledge known issues.
+
+
+
Common Workflows
+
+
Morning Backup Review
+
+
+
Open Daily Jobs (defaults to today's date)
+
Review the status column for any red (Failed) or yellow (Warning) badges
+
Click on jobs with issues to open the Run Checks modal
+
Investigate the failure/warning details and backup objects
+
Create a ticket or remark if followup is needed, or mark as reviewed if it's a known issue
+
Repeat for all jobs with issues
+
+
+
Checking Previous Day's Jobs
+
+
+
Open Daily Jobs
+
Click the Previous button to go back one day
+
Review jobs that ran yesterday
+
Look for "Missed" status - jobs that were expected but didn't run
+
+
+
Identifying Schedule Changes
+
+
+
Notice a job appearing on an unexpected day
+
Check the Schedule column to see the inferred pattern
+
If the schedule changed recently, it may take 10-14 days for the system to detect the new pattern
+
Contact the customer if a job unexpectedly stops appearing on expected days
+
+
+
Best Practices
+
+
+
Review daily: Check the Daily Jobs view every morning to catch failures and warnings promptly
+
Focus on failures first: Prioritize red (Failed) badges over yellow (Warning) badges during triage
+
Watch for "Missed" jobs: These indicate a job that should have run but didn't - often more serious than a failure
+
Use overrides for known issues: If a specific warning is expected and acceptable, create an override instead of marking it as reviewed every day
+
Create tickets for recurring issues: If the same job fails repeatedly, create a ticket to track the ongoing issue
+
Monitor schedule changes: If customers change their backup schedules, allow 10-14 days for the system to learn the new pattern
+
+
+
Troubleshooting
+
+
Job Not Appearing in Daily Jobs
+
+
If a job doesn't appear on a date when you expected it:
+
+
+
The job may not have enough historical data to infer a schedule (needs 10-14 days)
+
The job may have an irregular schedule that doesn't match weekly or monthly patterns
+
The job's schedule may have recently changed, and the system hasn't detected the new pattern yet
+
Check the Jobs page to verify the job exists and has recent runs
+
+
+
Schedule Shows "Irregular" or "-"
+
+
+
"Irregular": The job runs inconsistently and doesn't match daily, weekly, or monthly patterns
+
"-": Not enough historical data to infer a schedule (fewer than ~10 runs)
+
Wait for more runs to be imported, then schedule inference will update automatically
+
+
+
Job Shows "Missed" but Actually Ran
+
+
+
Check if the email was imported and approved (check Inbox)
+
Verify the email was parsed correctly and linked to the right job
+
Check the Job History page to see if the run was recorded
+
If the run time changed significantly (e.g., moved from morning to evening), it may affect schedule detection
+ Configure override rules to automatically handle known issues, expected warnings, and special backup scenarios.
+
+
+
Overview
+
+
Overrides are rules that modify how BackupChecks interprets backup job results. They allow you to handle known issues or expected warnings without manually reviewing every occurrence.
+
+
Common use cases:
+
+
+
Expected warnings: Mark specific warning messages as acceptable (e.g., "Retry succeeded")
+
Known issues: Handle recurring problems that are being worked on (e.g., linked to a ticket)
+
Temporary exceptions: Create time-limited overrides for maintenance windows or planned issues
+
Object-specific rules: Handle issues with specific backup objects (e.g., one VM that always has warnings)
+
+
+
Accessing Overrides
+
+
To manage overrides:
+
+
+
Navigate to Overrides in the main navigation menu
+
Available to Admin, Operator, and Viewer roles
+
Viewers can see override rules but cannot create, edit, or delete them
+
Operators can create and edit overrides, but cannot delete them
+
Admins have full access to all override operations
+
+
+
Override Levels
+
+
Overrides can be created at two levels:
+
+
1. Global Override
+
+
Applies to all jobs matching specific criteria:
+
+
+
All jobs: Leave backup software and type blank to match everything
+
By backup software: Match all jobs from a specific product (e.g., all Veeam jobs)
+
By backup type: Match all jobs of a specific type (e.g., all Replication Jobs)
+
By software + type: Match both criteria (e.g., Veeam Replication Jobs only)
+
+
+
Global overrides are useful for handling issues that affect multiple jobs across multiple customers.
+
+
2. Object-Level Override
+
+
Applies to a specific job or specific object within a job:
+
+
+
Job-level: Select a specific job to apply the override only to that job
+
Object-level: Additionally specify an object name (VM, server, etc.) to match only that specific backup item
+
+
+
Object-level overrides are more precise and are checked before global overrides.
+
+
Override Match Criteria
+
+
In addition to level (global or object), overrides can match specific conditions:
+
+
Status Match
+
+
Match only runs with a specific status:
+
+
+
Any: Match all statuses (default)
+
Success: Match only successful runs
+
Warning: Match only runs with warnings
+
Failed: Match only failed runs
+
+
+
Most overrides match "Warning" or "Failed" to handle known issues with those statuses.
+
+
Error Text Match
+
+
Match based on error or warning message content:
+
+
+
+
+
Match Type
+
Description
+
Example
+
+
+
+
+
Contains
+
Error message contains the specified text (case-insensitive)
+
"Retry" matches "Backup retry succeeded"
+
+
+
Exact
+
Error message exactly matches the specified text
+
"Retry succeeded" only matches that exact phrase
+
+
+
Starts with
+
Error message starts with the specified text
+
"Retry" matches "Retry succeeded" but not "Backup retry"
+
+
+
Ends with
+
Error message ends with the specified text
+
"succeeded" matches "Retry succeeded"
+
+
+
+
+
Leave the error text field blank to match any error message (or no error message).
+
+
Override Actions
+
+
Treat as Success
+
+
The primary action for overrides is Treat as success (enabled by default):
+
+
+
When checked, matching runs are displayed with a blue "Success (Override)" badge instead of their original warning/failed status
+
The blue badge visually indicates this run had an issue but is being treated as acceptable
+
The run still needs to be reviewed and marked as reviewed, but operators know the warning/failure is expected
+
+
+
This allows you to visually differentiate between:
+
+
Green badge: Genuinely successful backups with no issues
+
Blue badge: Known issues that are acceptable (override applied)
Overrides can be time-limited using the From and Until fields:
+
+
From Date (Start Date)
+
+
+
Leave blank to apply retroactively to all existing runs (default)
+
Set a date/time to apply only from that point forward
+
Retroactive application ensures old unreviewed runs are also affected
+
+
+
Until Date (End Date)
+
+
+
Leave blank for a permanent override (no expiration)
+
Set a date/time to automatically expire the override
+
Useful for maintenance windows or temporary issues
+
+
+
+ 💡 Retroactive Application:
+ When you create an override without a start date, it is applied retroactively to existing unreviewed runs. This means jobs that match the override will immediately show the "Treat as success" status in Daily Jobs, even if they ran before the override was created.
+
+
+
Creating an Override
+
+
To create a new override:
+
+
+
Navigate to the Overrides page
+
Fill in the "Add override" form at the top:
+
+
Level: Select "Global" or "Object"
+
Backup software / Backup type: (For global only) Select criteria to match
+
Job: (For object-level only) Select the specific job
+
Object name: (Optional, for object-level only) Enter exact object name (e.g., VM name)
+
Status: (Optional) Select which status to match (e.g., "Warning")
+
Error match type: Select "Contains", "Exact", "Starts with", or "Ends with"
+
Error text: (Optional) Enter text to match in error messages
+
From / Until: (Optional) Set time window for the override
+
Treat as success: Check this box (enabled by default)
+
Comment: Document why the override exists (e.g., ticket number, reason)
+
+
+
Click Save override
+
The override is immediately applied to matching job runs
+
+
+
+ 💡 Always Add Comments:
+ Use the Comment field to document ticket numbers, reasons, or planned resolution dates. This helps other operators understand why the override exists and when it should be removed.
+
+
+
Managing Existing Overrides
+
+
The "Existing overrides" table shows all configured overrides with the following columns:
+
+
+
Level: "global" or "object"
+
Scope: What the override matches (e.g., "Veeam / Backup Job" or "CustomerName / Veeam / Backup Job / Daily Backup")
+
From / Until: Time window (blank = no restriction)
+
Active: Whether the override is currently active or disabled
+
Comment: Documentation about the override
+
+
+
Editing an Override
+
+
+
Click the Edit button on an override row
+
The "Add override" form is pre-filled with the existing values
+
Modify any fields
+
Click Save override to update
+
Click Cancel edit to discard changes and clear the form
+
+
+
Disabling/Enabling an Override
+
+
+
Click the Disable button on an active override
+
The override is marked as inactive and stops affecting job runs
+
Click Enable to reactivate it
+
+
+
Disabling is useful when you want to temporarily stop an override without deleting it (e.g., to test if an issue is resolved).
+
+
Deleting an Override (Admin Only)
+
+
+
Click the Delete button on an override row
+
Confirm the deletion
+
The override is permanently removed
+
Existing runs that were affected by the override remain unchanged
+
+
+
+ ⚠️ Deletion is Permanent:
+ Deleted overrides cannot be recovered. If you're unsure, disable the override instead of deleting it.
+
+
+
Override Evaluation Order
+
+
When a job run is evaluated, overrides are checked in the following order:
+
+
+
Object-level overrides: Most specific overrides are checked first (job + object name)
+
Job-level overrides: Overrides for the specific job (without object name)
+
Global overrides: Least specific overrides are checked last
+
+
+
The first matching active override is applied. If multiple overrides match, only the most specific one takes effect.
+
+
Common Override Scenarios
+
+
Scenario 1: Veeam Retry Warnings
+
+
A Veeam backup job frequently shows warnings like "Backup retry succeeded". This is acceptable - the job ultimately succeeded.
+
+
Solution: Create an object-level override:
+
+
+
Level: Object
+
Job: Select the specific job
+
Status: Warning
+
Error match type: Contains
+
Error text: "retry succeeded"
+
Treat as success: Checked
+
Comment: "Retry warnings are acceptable for this job"
+
+
+
Scenario 2: Planned Maintenance Window
+
+
A customer is performing server upgrades next week. Backup failures during May 15-17 are expected.
Remarks: For internal notes, known issues, or temporary problems that don't need formal ticket tracking
+
+
+
Both tickets and remarks can be linked to specific job runs, making it easy to track which backups are affected by known issues.
+
+
Accessing Tickets & Remarks
+
+
To view and manage tickets and remarks:
+
+
+
Navigate to Tickets in the main navigation menu
+
Available to Admin, Operator, and Viewer roles
+
Two tabs are available:
+
+
Tickets: Shows all tickets with their resolution status
+
Remarks: Shows all remarks with their resolution status
+
+
+
+
+
Tickets
+
+
What is a Ticket?
+
+
A ticket represents an issue that requires tracking and followup. Tickets are used for:
+
+
+
Hardware failures requiring replacement
+
Software bugs reported to vendors
+
Customer action items (upgrade server, allocate more storage)
+
Configuration changes needed (adjust backup schedule, exclude specific files)
+
+
+
Ticket Properties
+
+
Each ticket has the following properties:
+
+
+
+
+
Property
+
Description
+
+
+
+
+
Ticket code
+
Unique identifier (e.g., T12345, CUST-456). Can reference an external PSA ticket number.
+
+
+
Description
+
Brief description of the issue
+
+
+
Active from date
+
Date when the ticket becomes active (usually the date the issue was first observed)
+
+
+
Start date
+
Timestamp when the ticket was created in BackupChecks
+
+
+
Resolved at
+
Timestamp when the ticket was marked as resolved (blank if still active)
+
+
+
Scopes
+
Which backup jobs, customers, or objects this ticket affects
+
+
+
+
+
Creating a Ticket
+
+
Tickets can be created from several locations in the application:
+
+
From Run Checks Modal
+
+
+
Open the Run Checks modal for a job with a warning or failure
+
Review the job run details
+
Click Create Ticket (button location depends on UI implementation)
+
Fill in ticket details:
+
+
Ticket code: Enter a unique identifier (e.g., reference your PSA system)
+
Description: Briefly describe the issue
+
Active from date: Select when the issue started (defaults to today)
+
+
+
The ticket is automatically linked to the current job run
+
Scopes are automatically populated based on the job
+
+
+
From Tickets Page
+
+
Tickets can also be created manually from the Tickets page (for issues not tied to a specific run).
+
+
Ticket Scopes
+
+
A ticket can have multiple scopes defining what it affects:
+
+
+
Customer scope: All backup jobs for a specific customer
+
Backup software scope: All jobs using specific backup software (e.g., all Veeam jobs)
+
Backup type scope: All jobs of a specific type (e.g., all Replication Jobs)
+
Job scope: A specific backup job
+
Job run scope: A specific backup job run
+
+
+
Scopes are used to automatically show ticket indicators (🎫) on affected jobs in the Daily Jobs view.
+
+
Viewing Ticket Details
+
+
+
Go to the Tickets page
+
Click View on a ticket row
+
The ticket detail page shows:
+
+
Ticket status (Active or Resolved)
+
Ticket code, description, and dates
+
Scopes (which jobs/customers are affected)
+
Linked runs (last 20 job runs associated with this ticket)
+
+
+
+
+
Resolving a Ticket
+
+
When a ticket is resolved:
+
+
+
Go to the Tickets page
+
Click Resolve on an active ticket row (Admin/Operator only)
+
The ticket is marked as resolved with the current timestamp
+
Resolved tickets remain visible in the ticket list with a ✅ indicator
+
The ticket indicator (🎫) is removed from job displays
+
+
+
+ 💡 Ticket Resolution:
+ Resolving a ticket does NOT delete it - it simply marks it as closed. Resolved tickets remain visible for historical reference and can be filtered using the "Status" dropdown.
+
+
+
Linking Tickets to Additional Runs
+
+
After creating a ticket, you can link it to additional job runs as they occur:
+
+
+
Open the Run Checks modal for a job run
+
Look for existing tickets in the ticket list (if available in UI)
+
Link the ticket to the current run
+
+
+
This creates an audit trail showing all job runs affected by the same ticket.
+
+
Remarks
+
+
What is a Remark?
+
+
A remark is a lightweight note for documenting known issues that don't require formal ticket tracking. Remarks are used for:
Quick notes during triage ("investigated, not an issue")
+
+
+
Remark Properties
+
+
+
+
+
Property
+
Description
+
+
+
+
+
Body
+
Freeform text describing the remark (no length limit)
+
+
+
Start date
+
Timestamp when the remark was created
+
+
+
Resolved at
+
Timestamp when the remark was marked as resolved (blank if still active)
+
+
+
Scopes
+
Which backup jobs, customers, or objects this remark affects
+
+
+
+
+
Creating a Remark
+
+
Remarks are created similarly to tickets:
+
+
From Run Checks Modal
+
+
+
Open the Run Checks modal for a job run
+
Review the job run details
+
Click Create Remark
+
Enter remark text in the body field (supports multi-line text)
+
The remark is automatically linked to the current job run
+
Scopes are automatically populated based on the job
+
+
+
From Tickets Page
+
+
+
Go to the Tickets page
+
Switch to the Remarks tab
+
Create a remark manually (if supported in UI)
+
+
+
Viewing Remark Details
+
+
+
Go to the Tickets page
+
Switch to the Remarks tab
+
Click View on a remark row
+
The remark detail page shows:
+
+
Remark status (Active or Resolved)
+
Remark body (full text)
+
Scopes (which jobs/customers are affected)
+
Linked runs (last 20 job runs associated with this remark)
+
+
+
+
+
Resolving a Remark
+
+
+
Go to the Tickets page → Remarks tab
+
Click Resolve on an active remark row (Admin/Operator only)
+
The remark is marked as resolved
+
Resolved remarks remain visible with a ✅ indicator
+
The remark indicator (💬) is removed from job displays
+
+
+
Filtering Tickets & Remarks
+
+
The Tickets page provides filtering options:
+
+
+
Status: Filter by "Active" (unresolved) or "All" (including resolved)
+
Customer: Show only tickets/remarks for a specific customer
+
Backup software: Filter by backup software (e.g., Veeam, Synology)
+
Backup type: Filter by backup type (e.g., Backup Job, Replication Job)
+
Search: Search by ticket code or job name
+
+
+
Click Filter to apply the selected criteria, or Reset to clear all filters.
+
+
Tickets vs. Remarks: When to Use Each
+
+
+
+
+
Use Ticket When...
+
Use Remark When...
+
+
+
+
+
Issue requires external followup
+
Issue is internal or informational
+
+
+
You need to track in a PSA system
+
No PSA ticket is needed
+
+
+
Customer action is required
+
No action is required
+
+
+
Issue will take days/weeks to resolve
+
Issue is temporary (hours/days)
+
+
+
You need structured tracking (ticket code, formal resolution)
+
Quick notes or documentation are sufficient
+
+
+
+
+
Ticket & Remark Indicators
+
+
In the Daily Jobs view and Job History pages, active tickets and remarks are indicated with icons:
+
+
+
🎫 Ticket icon: Job has one or more active tickets
+
💬 Remark icon: Job has one or more active remarks
+
+
+
These indicators help you quickly identify jobs with known issues during daily review.
+
+
Common Workflows
+
+
Creating a Ticket for Recurring Failure
+
+
+
Notice the same job failing in Daily Jobs for 3+ days
+
Click on the job to open Run Checks modal
+
Click Create Ticket
+
Enter ticket code: "CUST-12345" (from your PSA)
+
Description: "Daily backup fails - server disk full"
+
Active from date: Select the date of the first failure
+
Create the ticket
+
The job now shows 🎫 in Daily Jobs, indicating it's being tracked
+
+
+
Adding a Remark for Planned Maintenance
+
+
+
Customer notifies you of planned maintenance on Friday
+
Go to Daily Jobs → Friday's date
+
Click on the customer's backup job
+
Click Create Remark
+
Body: "Planned maintenance - server will be offline from 18:00-22:00. Backup failures expected."
+
Create the remark
+
On Friday, the job shows 💬, reminding you maintenance is planned
+
After Friday, resolve the remark
+
+
+
Resolving a Ticket After Customer Action
+
+
+
Customer confirms they've freed up disk space
+
Monitor Daily Jobs - backup succeeds for 2+ days
+
Go to Tickets page
+
Find the ticket for this issue
+
Click Resolve
+
The 🎫 indicator disappears from the job in Daily Jobs
+
+
+
Reviewing Historical Tickets
+
+
+
Go to Tickets page
+
Change Status filter to "All"
+
Review resolved tickets to identify patterns (recurring issues, common problems)
+
Use this data to improve backup configurations or create preventive overrides
+
+
+
Best Practices
+
+
+
Create tickets promptly: Don't wait for issues to escalate - create tickets when problems first appear
+
Use descriptive ticket codes: Reference your PSA system for easy correlation
+
Set accurate "Active from" dates: This ensures the ticket shows on the correct historical runs
+
Resolve tickets promptly: Don't leave stale tickets active after issues are fixed
+
Use remarks for temporary issues: Don't create formal tickets for short-term problems
+
Link tickets to multiple runs: As the same issue affects new runs, link them to the existing ticket
+
Review ticket list monthly: Identify long-running issues that need escalation
+
Use remarks for documentation: If you investigate an alert and determine it's not an issue, add a remark explaining why
+
+
+
Integration with Autotask
+
+
If Autotask integration is enabled, you can manually create tickets in Autotask PSA for backup failures. When creating a ticket from the Run Checks modal, BackupChecks can create a corresponding ticket in Autotask and maintain a link between the internal ticket record and the Autotask ticket ID.
+
+
BackupChecks monitors Autotask for ticket status changes and can automatically resolve internal tickets when the corresponding Autotask ticket is resolved or deleted.
Check the ticket's Active from date - it must be on or before the date you're viewing
+
Verify the ticket scope matches the job (check customer, backup software, or job in the scope)
+
Refresh the Daily Jobs page
+
+
+
Cannot Create Ticket or Remark
+
+
+
Verify you have Admin or Operator role (Viewers cannot create tickets/remarks)
+
Ensure all required fields are filled (ticket code, description, active from date)
+
+
+
Ticket Scope Affecting Wrong Jobs
+
+
+
Review the ticket scopes on the ticket detail page
+
Scopes may be broader than intended (e.g., customer scope affects all jobs for that customer)
+
Edit the ticket (if supported) or resolve it and create a more specific ticket
+
+
+
+ ⚠️ Ticket Editing:
+ Based on the code, ticket editing is currently disabled. To modify a ticket, resolve the old ticket and create a new one with the correct information.
+
+
+
Next Steps
+
+
+
Daily Jobs View - See how ticket and remark indicators appear in daily monitoring
+
Run Checks Modal - Create tickets and remarks while reviewing job runs
+ Review detailed backup job run information, examine objects and errors, and mark runs as reviewed.
+
+
+
Overview
+
+
The Run Checks page is the primary daily operational tool for reviewing backup job runs. This is where you spend most of your time during daily backup review.
+
+
+ 💡 Your Daily Starting Point:
+ Start here every morning. The goal is to have this page completely empty - meaning all runs have been reviewed. Even successful backups must be marked as reviewed to clear the page.
+
+
+
The page provides:
+
+
+
Job run list: All unreviewed runs across all customers, showing status and timestamps
+
Backup objects: Individual items backed up (VMs, servers, files) with their statuses
+
Email content: Original email body from the backup software
+
Override information: Details about applied overrides (shown with blue badge)
Review actions: Mark runs as reviewed (single or bulk), unmark reviewed runs (Admin only)
+
+
+
Accessing Run Checks
+
+
To access the Run Checks page:
+
+
+
Navigate to Run Checks in the main navigation menu
+
Available to Admin and Operator roles only
+
Viewers cannot access the Run Checks page
+
The page shows all unreviewed runs by default
+
+
+
+ 💡 Start Here Every Day:
+ This is your primary daily workflow page. Open it first thing in the morning and work through all runs until the page is empty.
+
+
+
Page Layout
+
+
The Run Checks page is organized by job, with each job showing its unreviewed runs:
+
+
1. Job List
+
+
The page displays jobs that have unreviewed runs:
+
+
+
Customer name
+
Backup software (e.g., Veeam, Synology)
+
Backup type (e.g., Backup Job, Replication Job)
+
Job name
+
Number of unreviewed runs for this job
+
+
+
2. Run Details per Job
+
+
When you click on a job, you see all its unreviewed runs:
+
+
+
Run timestamp: When the backup job ran
+
Status badge: Success, Warning, Failed, or Missed
+
Backup objects: Individual items backed up with their statuses
+
Email content: Original email body from backup software
+
Click through multiple runs for the same job to review each one
+
+
+
+ 💡 Review by Job:
+ Runs are grouped by job. When you mark a job as reviewed, all runs for that job are marked as reviewed simultaneously. The job then disappears from the Run Checks page. By default, only unreviewed jobs are shown. Admins can toggle "Include reviewed" to see all jobs including those already reviewed.
+
+
+
Run Details Sections
+
+
Status Information
+
+
At the top of the run details:
+
+
+
Status badge: Overall run status with color coding:
+
+
Green = Success (no issues)
+
Blue = Success (override applied - originally warning/failed)
+
Yellow = Warning
+
Red = Failed
+
Gray = Missed
+
+
+
Run timestamp: When the backup job executed
+
Override indicator: If an override is applied, shows blue badge with override reason
+
+
+
Backup Objects
+
+
A table showing individual backup items (VMs, servers, files, etc.):
+
+
+
+
+
Column
+
Description
+
+
+
+
+
Name
+
Object name (e.g., VM name, server name, file path)
+
+
+
Type
+
Object type (e.g., VM, Server, Repository) - if available from parser
+
+
+
Status
+
Object-level status (Success, Warning, Failed)
+
+
+
Message
+
Error or warning message for this object (if any)
+
+
+
+
+
+ 💡 Object Availability:
+ Backup objects are only shown if the parser extracted them from the email. Not all backup software emails include object-level details. If no objects are shown, the parser didn't detect individual items in the email.
+
+
+
Email Content
+
+
The original email body from the backup software is displayed in an embedded iframe:
+
+
+
HTML emails are rendered with their original formatting
+
Plain text emails are shown as preformatted text
+
This allows you to see the full backup report as sent by your backup software
+
+
+
Email Metadata
+
+
Above the email body, metadata is shown:
+
+
+
From: Sender email address
+
Subject: Email subject line
+
Received at: When the email was received
+
+
+
Download .EML
+
+
If EML storage is enabled, a download button allows you to save the original email file for external analysis or support requests.
+
+
Autotask Ticket Information
+
+
If Autotask integration is enabled and a ticket was created for this run, the modal shows:
+
+
+
Ticket number: Autotask ticket ID (clickable link to open in Autotask)
+
Ticket status: Whether the ticket is active or resolved
+
Resolved origin: How the ticket was resolved (manual, PSA-driven, PSA-deleted)
+
Resolved at: Timestamp when the ticket was resolved
+
Deleted info: If the ticket was deleted in Autotask, shows who deleted it and when
+
+
+
+ 💡 Autotask Integration:
+ Autotask ticket information only appears if the Autotask integration is enabled in Settings and a ticket was created for this run. See Autotask Integration for details.
+
+
+
Review Actions
+
+
Mark as Reviewed (Single)
+
+
For any run (success, warning, or failure):
+
+
+
Click on a run in the list to view details
+
Review the run details, backup objects, and any error messages
+
Take action if needed (create ticket, remark, or override)
+
Click the Mark as reviewed button
+
All runs for this job are immediately marked as reviewed and the job disappears from the Run Checks page
+
+
+
Mark as Reviewed (Bulk)
+
+
For efficiency, especially with successful backups:
+
+
+
Select multiple job checkboxes in the Run Checks list
+
Click Mark selected as reviewed button
+
All runs for all selected jobs are marked as reviewed and disappear from the Run Checks page
+
+
+
This is particularly useful for quickly clearing successful backups that don't require investigation.
+
+
+ ⚠️ All Runs Must Be Reviewed:
+ Even successful backup runs must be marked as reviewed to clear the Run Checks page. They're not individually investigated, but they still need to be marked so the page becomes empty. Use bulk review to quickly clear multiple successful runs at once.
+
+
+
Unmark Reviewed (Admin Only)
+
+
Admins can unmark a reviewed job if it needs to be re-investigated:
+
+
+
Enable the "Include reviewed" toggle to show reviewed jobs
+
Select a reviewed job from the list
+
Click the Unmark reviewed button
+
All runs for this job return to the unreviewed list
+
+
+
This is useful if new information about an issue comes to light after the job was marked as reviewed.
+
+
+ ⚠️ Admin-Only Feature:
+ Only Admins can unmark reviewed runs. Operators can only mark runs as reviewed, not unmark them.
+
+
+
Linking Tickets and Remarks
+
+
From the Run Checks modal, you can create and link tickets or remarks to document issues:
+
+
+
Create Ticket: For issues that require external followup (e.g., customer action, vendor support)
+
Create Remark: For internal notes or known issues that don't need ticket tracking
Open the Run Checks modal from Daily Jobs (click on the failed job row)
+
The most recent run is automatically selected (the failure)
+
Review the Backup Objects table to see which items failed
+
Check the Message column for error details
+
Scroll down to view the full email body for additional context
+
If the issue requires followup, create a ticket
+
If it's a known issue or no action is needed, mark the run as reviewed
+
+
+
Comparing Multiple Runs
+
+
+
Open the Run Checks modal for a job with warnings
+
Enable "Include reviewed" (Admin only) to see historical runs
+
Click through runs in the left-side list
+
Compare which objects failed/succeeded across different runs
+
Identify patterns (e.g., same VM fails every time vs. intermittent failures)
+
+
+
Reviewing Warnings with Overrides
+
+
+
Open a job with a warning badge from Daily Jobs
+
Notice the override indicator showing "Treated as success: [reason]"
+
Review the backup objects to understand why the override was created
+
If the override is still appropriate, mark the run as reviewed
+
If the override is no longer appropriate, edit or remove it on the Overrides page
+
+
+
Troubleshooting Missed Jobs
+
+
+
Open a job with "Missed" status from Daily Jobs
+
The Run Checks modal shows recent runs
+
Check the timestamps to confirm the job hasn't run today
+
Look for patterns in historical runs (e.g., consistently misses Mondays)
+
Create a ticket to investigate with the customer
+
Mark the missed run as reviewed after creating the ticket
+
+
+
Best Practices
+
+
+
Always check objects: Don't rely only on the overall status - individual objects may have failures hidden by retry logic
+
Read error messages carefully: The Message column often contains specific details about why a backup failed
+
Review the full email body: Backup software often includes important details in the email that aren't captured in structured fields
+
Create tickets for recurring issues: If the same job fails repeatedly, create a ticket instead of marking each run as reviewed
+
Use remarks for temporary issues: If a failure was caused by a known temporary issue (maintenance window, planned downtime), add a remark instead of creating a ticket
+
Compare historical runs: Use the run list to identify whether an issue is new or recurring
+
+
+
Troubleshooting
+
+
No Backup Objects Shown
+
+
If the Backup Objects section is empty:
+
+
+
The parser may not support object-level extraction for this backup software
+
The email may not contain structured object information
+
Check the email body (scroll down) to see if object details are present in the raw email
+
This is normal for some backup software - not all products include object-level details in emails
+
+
+
Email Body Shows "No message content stored"
+
+
+
The email may have had blank HTML and text bodies when imported
+
Check if EML storage is enabled - without it, email content can't be retrieved
+
This can happen if the email was forwarded or reformatted before import
+
+
+
Can't Mark Run as Reviewed
+
+
+
Verify you have Admin or Operator role
+
If the button appears grayed out, refresh the page - the run may have already been reviewed
+
Check if you have permission to mark runs as reviewed (Viewers cannot perform this action)
+
+
+
Run List Is Empty
+
+
+
By default, only unreviewed jobs are shown
+
Enable "Include reviewed" toggle (Admin only) to see all jobs including those already reviewed
+
If no jobs appear even with "Include reviewed" enabled, there are no recorded runs for any jobs - check the Inbox to see if emails need to be approved
+
+
+
Next Steps
+
+
+
Daily Jobs View - Learn about the daily monitoring dashboard
+ View and manage all approved backup jobs across all customers.
+
+
+
Overview
+
+
The Jobs page provides a comprehensive view of all approved backup jobs in BackupChecks. Once a job has been approved from the Inbox, it appears here and begins receiving backup reports automatically.
+
+
This page allows you to:
+
+
+
View all approved jobs organized by customer
+
See job configuration and status at a glance
+
Access job details and run history
+
Archive or delete jobs
+
Export and import job data
+
+
+
Accessing the Jobs Page
+
+
To view approved jobs:
+
+
+
Navigate to Jobs in the main navigation menu
+
This page is available to Admin, Operator, and Viewer roles
+
Reporters do not have access to operational features like the Jobs page
+
+
+
Jobs List
+
+
The Jobs page displays a table with the following columns:
Backup type (e.g., Configuration Job, Hyperbackup, Full, Incremental)
+
+
+
Job name
+
Backup job name
+
+
+
+
+
+ 💡 Active Jobs Only:
+ The Jobs page shows only active jobs for active customers. Archived jobs and jobs belonging to inactive customers are not shown on this page. Archived jobs are visible on a separate page accessible only to administrators.
+
+
+
Viewing Job Details
+
+
To view detailed information about a specific job:
+
+
+
Navigate to the Jobs page
+
Find the job in the list
+
Click anywhere on the job row (not just the job name)
Type: Backup type (e.g., Hyperbackup, Configuration Job)
+
Job name: Name of the backup job
+
Tickets: Open and total ticket count (e.g., "0 open / 1 total")
+
Remarks: Open and total remark count (e.g., "0 open / 0 total")
+
+
+
Schedule (inferred):
+
+
Table showing expected run days and times in 15-minute blocks
+
Example: Mon-Sun with 20:00 time slots
+
Only shown if schedule has been learned
+
+
+
Action Buttons:
+
+
Archive: Archive the job (gray button)
+
Delete job: Permanently delete the job (red button)
+
+
+
Job History:
+
+
Table of recent backup runs with columns:
+
+
Day run: Day of the week
+
Run time: Date and time of the backup
+
Status: Success/Failed indicator (green dot for success)
+
Tickets: Linked ticket numbers (if any)
+
Remarks: Associated remarks
+
Override: Override status
+
Reviewed by: Username who reviewed the run (Admin only)
+
Reviewed at: Date and time of review (Admin only)
+
+
+
Runs are clickable to view full run details
+
+
+
+
+
+ 💡 Admin-Only Columns:
+ The Reviewed by and Reviewed at columns in the Job History table are currently only visible to administrators. This may change in a future update to allow Operators to see who reviewed runs and when.
+
+
+
+
Job Detail Page
+
+
On the job detail page, you can perform the following actions:
+
+
+
Archive: Hide the job from operational views while preserving historical data
+
Delete: Permanently remove the job (emails return to Inbox for re-assignment)
+
+
+
+ ⚠️ No Direct Editing:
+ You cannot edit job properties like customer assignment, job name, or parser-determined fields (backup software, backup type, sender pattern, subject pattern) through the job detail page. All job configuration is determined when the job is approved from the Inbox.
+
+
+
Archiving Jobs
+
+
When a backup job is no longer active (e.g., server decommissioned, backup solution changed), you can archive it to declutter operational views.
+
+
How to Archive a Job
+
+
+
Navigate to the Jobs page
+
Find the job you want to archive
+
Click the Archive button
+
Confirm the archival
+
+
+
Effects of Archiving
+
+
When a job is archived:
+
+
+
It is hidden from the default Jobs list
+
It does not appear in Daily Jobs
+
Existing runs do not appear in Run Checks
+
All historical data is preserved (runs, tickets, remarks)
+
The job can be unarchived later if needed
+
+
+
+ 💡 When to Archive:
+ Archive jobs when:
+
+
A server has been decommissioned
+
A backup solution has been replaced
+
A customer no longer uses a particular backup job
+
You want to declutter operational views without losing historical data
+
+
+
+
Viewing Archived Jobs
+
+
Archived jobs are accessible on a separate page:
+
+
+
Navigate to the Archived Jobs page in the main menu
+
This page is only accessible to administrators
+
The page displays all archived jobs with their details
+
+
+
+ 💡 Admin Only Access:
+ Only users with the Admin role can view the Archived Jobs page. Operators and other roles cannot access archived jobs.
+
+
+
Unarchiving a Job
+
+
To unarchive a job (Admin only):
+
+
+
Navigate to the Archived Jobs page
+
Find the archived job in the list
+
Click the Unarchive button
+
+
+
The job will immediately reappear in the Jobs page and operational views (Daily Jobs, Run Checks).
+
+
Deleting Jobs
+
+
If you need to permanently remove a job and all its data:
+
+
+
Navigate to the Jobs page
+
Find the job you want to delete
+
Click the Delete button
+
Confirm the deletion in the dialog
+
+
+
+ ⚠️ Warning - Permanent Deletion:
+ Deleting a job is permanent and will delete:
+
+
The job configuration
+
All backup runs
+
All tickets linked to this job
+
All remarks linked to this job
+
All historical data
+
+ This action cannot be undone. Consider archiving the job instead if you might need the data later.
+
+
+
Exporting Job Data
+
+
You can export all job data to a JSON file for backup, reporting, or migration purposes.
+
+
+
Navigate to Settings → Maintenance
+
In the "Export/Import" section, click Export Jobs
+
A JSON file will be downloaded containing:
+
+
Customer information (including Autotask mappings)
+
All approved jobs with their configurations
+
Email matching patterns
+
Learned schedules
+
+
+
+
+
+ 💡 Export Format:
+ The export uses JSON format (schema version: approved_jobs_export_v1). This format is designed for system migration and backup purposes.
+
+
+
Importing Job Data
+
+
You can import job data from a previously exported JSON file.
+
+
+
Navigate to Settings → Maintenance
+
In the "Export/Import" section, click Import Jobs
+
Select your JSON file (must match the export format)
+
Click Upload
+
The system will:
+
+
Create or update customers
+
Apply Autotask company mappings (if applicable)
+
Create jobs with their configurations
+
Apply learned schedules
+
+
+
Review the import summary showing created and updated counts
+
+
+
+ ⚠️ Import Behavior:
+ The import process will:
+
+
Create new customers and jobs if they don't exist
+
Update existing customers if they already exist (matched by name)
+
Preserve existing job data and merge with imported data
+
+ Ensure your JSON data is correct before importing.
+
+
+
Next Steps
+
+
+
Job Schedules - Learn how BackupChecks learns and displays job schedules
+ Understand how backup jobs are created and configured in BackupChecks through the Inbox approval workflow.
+
+
+
Overview
+
+
Unlike traditional systems where you manually configure backup jobs, BackupChecks uses an Inbox-based approval workflow. Jobs are created by approving backup report emails, and all job configuration is automatically determined by Mail Parsers.
+
+
+ 💡 Key Concept:
+ You cannot manually create or configure backup jobs in BackupChecks. Instead, jobs are created by approving emails from the Inbox. This ensures consistency and prevents configuration errors.
+
+
+
How Jobs Are Created
+
+
The job creation process follows these steps:
+
+
+
+
+
Step
+
What Happens
+
Where
+
+
+
+
+
1
+
Backup report email arrives in monitored mailbox
+
Email system
+
+
+
2
+
Mail import fetches the email via Microsoft Graph API
+
Background process
+
+
+
3
+
Email appears in Inbox (no matching job exists yet)
+
Inbox page
+
+
+
4
+
Operator selects customer and clicks "Approve job"
+
Inbox page
+
+
+
5
+
Mail Parser extracts job configuration from email
+
Background process
+
+
+
6
+
Job is created with parser-determined configuration
+
Jobs page
+
+
+
7
+
Email is linked to job and removed from Inbox
+
Run Checks page
+
+
+
+
+
Approving a Job from the Inbox
+
+
To create a new backup job:
+
+
+
Navigate to Inbox in the main menu
+
Find a backup report email in the inbox list
+
Click on the email to view its details in a modal dialog
+
+
+
+
+ Figure 1: Inbox email detail showing backup report information and customer selection field
+
+
+
Selecting a Customer
+
+
In the email detail modal, you'll see a Customer field with "Select customer" placeholder text. This field has autocomplete functionality:
+
+
+
Click on the Customer field
+
Start typing part of the customer name (you can type any part, not just the beginning)
+
+
Example: typing "toso" will find "Contoso"
+
The autocomplete searches across the entire customer name
+
+
+
Select the correct customer from the dropdown suggestions
+
+
+
+ ⚠️ Customer Must Exist First:
+ You cannot create new customers from the Inbox. Customers must be created on the Customers page before approving jobs. If the customer doesn't exist yet, cancel the dialog, create the customer first, then return to approve the job.
+
+
+
Approving the Job
+
+
Once you've selected a customer:
+
+
+
Click the Approve job button (blue button at the bottom left)
+
The system will:
+
+
Create a new backup job linked to the selected customer
+
Apply the Mail Parser's configuration automatically
+
Link the email to the job as the first backup run
+
Remove the email from the Inbox
+
Make the run available in Run Checks for review
+
+
+
+
+
+ 💡 Workflow Best Practice:
+ The Approve job button is only enabled when a customer is selected. Create customers on the Customers page first, then approve jobs from the Inbox. This ensures proper customer naming and prevents duplicates.
+
+
+
Email Detail Information
+
+
When you click on an email in the Inbox, a detail modal displays the parsed backup report information:
+
+
+
+
+
Field
+
Description
+
+
+
+
+
From
+
Email sender address
+
+
+
Backup
+
Detected backup software (e.g., Veeam, Acronis)
+
+
+
Type
+
Backup type (e.g., Configuration Job, Full, Incremental)
+
+
+
Job
+
Parsed job name from the email
+
+
+
Overall
+
Backup result (Success, Failed, Warning)
+
+
+
Customer
+
Customer selection field (autocomplete)
+
+
+
Received
+
Date and time the email was received
+
+
+
Parsed
+
Date and time the email was parsed
+
+
+
+
+
The Details panel on the right shows the parsed backup report content, including:
+
+
+
Success/failure status (green or red header)
+
Backup start time, end time, and duration
+
Data size, backup size, and compression ratio
+
Detailed catalog information (if available)
+
Version information (e.g., "Veeam Backup & Replication 12.3.2.4165")
+
+
+
What Mail Parsers Configure
+
+
When you approve a job, the Mail Parser automatically determines the following job configuration:
+
+
+
+
+
Configuration
+
How It's Determined
+
+
+
+
+
Backup Software
+
Detected from email subject, sender, or body patterns (e.g., Veeam, Acronis, Windows Server Backup)
+
+
+
Backup Type
+
Extracted from email content (e.g., Full, Incremental, Differential)
+
+
+
Job Name
+
Parsed from email subject or body
+
+
+
Sender Email Pattern
+
Email sender address (used to match future emails)
+
+
+
Subject Pattern
+
Email subject pattern (used to match future emails)
+
+
+
Success/Failure Detection
+
Parser rules for identifying successful vs. failed backups
+
+
+
+
+
+ ⚠️ No Manual Configuration:
+ You cannot manually edit these job settings. All configuration is determined by the Mail Parser to ensure consistency. If a parser incorrectly identifies a field, contact the system developer/maintainer - parsers cannot be modified by administrators through the UI.
+
+
+
Processing Similar Emails (Reparse All)
+
+
After approving your first job for a customer, you can automatically process other emails that match the same pattern:
+
+
+
At the top of the Inbox page, click Reparse all
+
The system will scan all inbox emails and:
+
+
Match emails to existing approved jobs based on sender and subject patterns
+
Link matched emails to the corresponding jobs
+
Remove matched emails from the inbox
+
Create backup runs in Run Checks for review
+
+
+
+
+
+ 💡 Workflow Tip:
+ After approving a few jobs from the Inbox, click Reparse all to automatically process any historical emails that match those jobs. This saves time when onboarding a new customer with many existing backup reports.
+
+
+
Viewing Job Configuration
+
+
To view a job's configuration after it has been created:
+
+
+
Navigate to Jobs in the main menu
+
Find the job in the list (organized by customer)
+
Click on the job name to view details
+
+
+
The job detail page shows:
+
+
Customer name
+
Job name
+
Backup software
+
Backup type
+
Email matching patterns (sender, subject)
+
Recent backup runs
+
Learned schedule (if available)
+
Active/archived status
+
+
+
Archiving Jobs
+
+
If a backup job is no longer active, you can archive it:
+
+
+
Navigate to Jobs
+
Find the job you want to archive
+
Click the Archive button
+
+
+
Archived jobs:
+
+
Are hidden from Daily Jobs, Run Checks, and the default Jobs list
+
Do not appear in operational views
+
Can be viewed by clicking "Show archived jobs" on the Jobs page
+
Can be unarchived if needed
+
+
+
+ 💡 Archive vs. Delete:
+ Archiving a job hides it from operational views but preserves all historical data. This is useful for jobs that are no longer running but whose history you want to retain. Deleting a job is permanent and removes all associated data.
+
+
+
Deleting Jobs
+
+
To permanently delete a backup job:
+
+
+
Navigate to Jobs
+
Find the job you want to delete
+
Click the Delete button
+
Confirm the deletion
+
+
+
+ ⚠️ Warning - Permanent Deletion:
+ Deleting a job is permanent and will delete all associated backup runs, tickets, remarks, and historical data. This action cannot be undone. Consider archiving the job instead if you might need the data later.
+
+
+
Job Lifecycle
+
+
A typical backup job goes through the following lifecycle:
+
+
+
+
+
Stage
+
Description
+
Visibility
+
+
+
+
+
1. Email in Inbox
+
Backup report arrives, no job exists yet
+
Inbox page
+
+
+
2. Job Approved
+
Operator approves job from Inbox
+
Jobs page, Run Checks
+
+
+
3. Active Job
+
Job receives regular backup reports
+
Daily Jobs, Run Checks, Jobs page
+
+
+
4. Schedule Learned
+
System learns backup schedule after several runs
+
Daily Jobs (appears on expected days)
+
+
+
5. Job Archived
+
Backup no longer runs, job archived for history
+
Hidden from operational views
+
+
+
6. Job Deleted
+
Job and all data permanently removed
+
Completely removed
+
+
+
+
+
Common Questions
+
+
Can I manually create a job without an email?
+
+
No. Jobs can only be created by approving emails from the Inbox. This ensures that every job has a valid Mail Parser configuration and prevents misconfiguration.
+
+
Can I edit a job's sender or subject pattern?
+
+
No. Job configuration is determined by Mail Parsers and cannot be manually edited. If a parser is incorrectly identifying fields, contact the system developer/maintainer. Mail Parsers are code-level components and cannot be modified by administrators through the BackupChecks interface.
+
+
What if multiple jobs match the same email?
+
+
BackupChecks uses sender and subject patterns to uniquely identify jobs. If multiple jobs could match the same email pattern, the system will match to the first job created. Ensure each backup job sends reports with unique sender or subject patterns.
+
+
Can I change the customer a job is linked to?
+
+
No, not directly. If a job was approved with the wrong customer, you need to:
+
+
+
Navigate to the job detail page
+
Delete the job
+
The associated emails will return to the Inbox
+
Re-approve the job from the Inbox and select the correct customer
+
+
+
Deleting a job returns its emails to the Inbox, allowing you to re-link them to the correct customer.
+
+
Next Steps
+
+
+
Approved Jobs - View and manage all approved backup jobs
+
Job Schedules - Understand how BackupChecks learns job schedules
+ Understand how BackupChecks automatically learns backup job schedules and uses them to predict expected runs.
+
+
+
Overview
+
+
BackupChecks does not require you to manually configure backup schedules. Instead, the system automatically learns when backups are expected to run by analyzing historical backup run patterns.
+
+
This learned schedule information is used to:
+
+
+
Display jobs in Daily Jobs on days they are expected to run
+
Identify missing backups (job expected today but hasn't run)
+
Provide schedule visibility on the Jobs page
+
Help operators focus on jobs that should have run
+
+
+
+ 💡 Key Concept:
+ Schedules are learned automatically by analyzing backup run history. You do not configure schedules manually. After a few backup runs, BackupChecks will infer the schedule pattern.
+
+
+
How Schedule Learning Works
+
+
BackupChecks uses historical backup run data to infer schedules through the following process:
+
+
+
Data Collection: As backup reports arrive and create runs, the system records the date and time of each backup
+
Pattern Analysis: After several runs, the system analyzes the dates to identify patterns (e.g., daily, specific weekdays, monthly)
+
Schedule Inference: Once a pattern is detected, a schedule is assigned to the job
+
Continuous Learning: The schedule is updated as more runs are received to maintain accuracy
+
+
+
Minimum Data Required
+
+
To learn a schedule, BackupChecks needs:
+
+
+
At least 3-5 successful backup runs to establish a pattern
+
Runs should be spread across multiple days (not all on the same day)
+
Runs should follow a consistent pattern (e.g., always on Mondays and Thursdays)
+
+
+
+ 💡 Learning Time:
+ For a daily backup, the system can learn the schedule after 3-5 days of successful runs. For weekly backups, it may take 2-3 weeks to establish a reliable pattern.
+
+
+
Schedule Types
+
+
BackupChecks can learn and display the following schedule types:
+
+
+
+
+
Schedule Type
+
Pattern
+
Display Example
+
+
+
+
+
Daily
+
Runs every day
+
"Daily"
+
+
+
Weekly
+
Runs on specific days of the week
+
"Weekly: Mon, Wed, Fri"
+
+
+
Monthly
+
Runs on specific day(s) of the month
+
"Monthly: 1st, 15th"
+
+
+
Irregular
+
No consistent pattern detected
+
"Irregular" or no schedule shown
+
+
+
+
+
Viewing Job Schedules
+
+
You can view a job's learned schedule in several places:
+
+
1. Jobs Page
+
+
The Jobs page displays the learned schedule in the "Schedule" column for each job.
+
+
+
Navigate to Jobs
+
Locate the job in the list
+
The "Schedule" column shows the learned pattern (e.g., "Daily", "Weekly: Mon, Wed, Fri")
+
+
+
2. Job Detail Page
+
+
The job detail page shows more detailed schedule information:
+
+
+
Navigate to Jobs
+
Click on a job name to open the detail page
+
The "Schedule Information" section shows:
+
+
Learned schedule type and pattern
+
Expected run days/times
+
Last run date
+
Next expected run (if predictable)
+
+
+
+
+
3. Daily Jobs Page
+
+
Jobs with learned schedules appear on the Daily Jobs page on days they are expected to run.
+
+
+
Navigate to Daily Jobs
+
Jobs expected to run today are listed here
+
The schedule determines which jobs appear on this page
+
+
+
+ 💡 Daily Jobs Behavior:
+ A job will only appear on the Daily Jobs page if:
+
+
The system has learned a schedule for the job
+
Today matches the learned schedule pattern
+
The job is active (not archived)
+
The customer is active
+
+ New jobs without learned schedules will not appear on Daily Jobs until a pattern is established.
+
+
+
Schedule Accuracy
+
+
Schedule learning is based on pattern recognition and may not be 100% accurate in all cases:
+
+
High Accuracy Scenarios
+
+
+
Daily backups: Run every day at approximately the same time
+
Weekly backups: Run on the same weekdays every week (e.g., Monday, Wednesday, Friday)
+
Monthly backups: Run on the same day(s) of the month (e.g., 1st and 15th)
+
+
+
Lower Accuracy Scenarios
+
+
+
Irregular backups: Manual backups with no consistent schedule
+
Variable schedules: Backup days change frequently (e.g., "first weekday of the month")
+
Recent changes: Backup schedule was recently changed and the system is still learning the new pattern
+
+
+
+ ⚠️ Schedule Changes:
+ If a backup schedule changes (e.g., from daily to weekly), the learned schedule will gradually update as new runs are received. During this transition period, the displayed schedule may be inaccurate. Allow a few weeks for the system to relearn the new pattern.
+
+
+
No Schedule Displayed
+
+
If a job shows no schedule or "No schedule learned", it means:
+
+
+
The job was recently approved and doesn't have enough run history yet
+
The job has an irregular pattern that the system cannot predict
+
The job hasn't received enough consistent backup runs to establish a pattern
+
Information jobs: Jobs like "SSL certificate updated" or one-time maintenance tasks that run irregularly
+
+
+
+ 💡 Information Jobs:
+ Some jobs are informational in nature (e.g., SSL certificate renewals, system updates) and do not run on a regular schedule. These jobs will never learn a schedule pattern and will not appear on the Daily Jobs page.
+
+
+
In these cases:
+
+
The job will not appear on the Daily Jobs page (since we don't know when it's expected)
+
Individual runs will still appear in Run Checks as they arrive
+
You can still view the job on the Jobs page
+
+
+
Schedule Override and Customization
+
+
BackupChecks does not currently support manual schedule configuration or overrides. All schedules are automatically learned from historical data.
+
+
+ 📝 Future Feature:
+ Manual schedule configuration and schedule overrides may be added in a future version. For now, rely on the automatic learning system.
+
+
+
Using Schedules in Daily Jobs
+
+
The Daily Jobs page uses learned schedules to show which jobs are expected to run today. Each scheduled time is displayed with a status indicator:
+
+
+
+ Figure 1: Daily Jobs schedule showing time slots with run status indicators and run count badges
+
+
+
Status Indicators
+
+
+
+
+
Indicator
+
Meaning
+
Action Needed
+
+
+
+
+
Green dot
+
Job ran successfully at this time
+
No action needed
+
+
+
Red dot
+
Job ran but failed at this time
+
Investigate failure, create ticket if needed
+
+
+
White dot
+
Job expected but not yet run (time hasn't arrived yet)
+
Wait - job is not yet overdue
+
+
+
Gray dot
+
Job expected but overdue (time has passed, no run received)
+
Investigate - job may have failed to start
+
+
+
+
+
Run Count Badges
+
+
When a job has run, a badge appears next to the status indicator showing how many runs occurred:
+
+
+
+
+
Badge
+
Color
+
Meaning
+
+
+
+
+
1 run
+
Gray
+
Single backup run received for this time slot
+
+
+
3 runs
+
Blue/Cyan
+
Multiple backup runs received for this time slot (stands out for attention)
+
+
+
+
+
+ 💡 Workflow Tip:
+ Use the Daily Jobs page as your primary monitoring dashboard. Check it daily to ensure all expected backups have run successfully:
+
+
White dots: Not yet due - wait
+
Gray dots: Overdue - investigate immediately
+
Green dots with badges: Completed successfully
+
Blue badges (3+ runs): Multiple runs detected - verify this is expected
+
+
+
+
Multiple Runs Per Time Slot
+
+
Some jobs run multiple times at the same scheduled time (e.g., multiple backup sets, parallel jobs):
+
+
+
Each time slot shows a green dot when runs are successful
+
The run count badge shows how many runs were received (e.g., "1 run", "3 runs")
+
Multiple runs (3+) are highlighted with a blue/cyan badge to stand out
+
This helps you quickly identify jobs with unusual activity
+
+
+
Schedule Learning Best Practices
+
+
To help BackupChecks learn accurate schedules:
+
+
+
Maintain Consistent Backup Schedules: Configure your backup software to run on consistent days/times
+
Allow Learning Time: Give the system at least a week or two to learn new job patterns
+
Monitor Daily Jobs: Use the Daily Jobs page to verify schedule accuracy
+
Keep Jobs Active: Regular backup runs help maintain schedule accuracy
+
Archive Inactive Jobs: Archive jobs that no longer run to avoid false "missing backup" alerts
+
+
+
Troubleshooting Schedule Issues
+
+
Schedule Not Appearing
+
+
Possible causes:
+
+
Not enough backup runs yet (need 3-5 successful runs)
+
Runs are too irregular to establish a pattern
+
All runs occurred on the same day (need runs spread across multiple days)
+
+
+
Solution: Wait for more backup runs to accumulate. Ensure the backup software is running on a consistent schedule.
+
+
Schedule Is Inaccurate
+
+
Possible causes:
+
+
Backup schedule was recently changed
+
Backup runs have been irregular or skipped
+
Manual backups are interfering with schedule pattern
+
+
+
Solution: Allow time for the system to relearn the pattern based on recent runs. Ensure backups run consistently going forward.
+
+
Job Not Appearing on Daily Jobs
+
+
Possible causes:
+
+
No learned schedule exists for the job
+
Today doesn't match the learned schedule pattern
+
Job or customer is archived/inactive
+
+
+
Solution: Check the Jobs page to see if a schedule is learned. If not, wait for more runs to establish a pattern.
+ Learn how to create, edit, and manage customer accounts in BackupChecks.
+
+
+
Overview
+
+
Customers are the organizations or clients whose backup jobs you monitor in BackupChecks. Each customer can have multiple backup jobs associated with them.
+
+
The Customers page provides a central location to:
+
+
+
View all customers and their backup job counts
+
Create new customer accounts
+
Edit customer names and active status
+
Map customers to Autotask companies (if Autotask integration is enabled)
+
Activate or deactivate customer accounts
+
Export and import customer data via CSV
+
Delete customers
+
+
+
Accessing the Customers Page
+
+
To access customer management:
+
+
+
Navigate to Customers in the main navigation menu
+
This page is available to Admin and Operator roles
+
Viewers can see customers but cannot make changes
+
+
+
Customer List
+
+
The Customers page displays a table with the following columns:
+
+
+
+
+
Column
+
Description
+
+
+
+
+
Name
+
Customer name
+
+
+
Jobs
+
Number of backup jobs configured for this customer. Displays in red and bold if zero jobs are configured.
+
+
+
Autotask Company
+
Linked Autotask company name (if Autotask integration is enabled and mapping exists)
+
+
+
Active
+
Checkbox indicating whether the customer account is active
+
+
+
Edit / Delete
+
Edit and Delete buttons on the right side of each row
+
+
+
+
+
+ 💡 Job Count Indicator:
+ If a customer shows 0 jobs in red and bold, it means no backup jobs have been approved for this customer yet. Jobs are created by approving emails from the Inbox.
+
+
+
Creating a New Customer
+
+
The customer creation interface is located at the top of the Customers page.
+
+
+
+ Figure 1: New customer creation interface with CSV import/export and Autotask refresh options
+
+
+
To create a new customer account:
+
+
+
Navigate to the Customers page
+
At the top, locate the "New customer name" field
+
Enter the customer name (required)
+
Check the Active checkbox if you want the customer to be active immediately (checked by default)
+
Click the Add button
+
+
+
The customer will be created and appear in the customer list immediately.
+
+
+ 💡 Best Practice:
+ Create customer accounts before approving backup jobs from the Inbox. This allows you to immediately assign incoming backup reports to the correct customer.
+
+
+
Editing Customer Information
+
+
To edit an existing customer:
+
+
+
Navigate to the Customers page
+
Find the customer in the list
+
Click the Edit button on the right side of the customer row
Active: Toggle whether the customer is active or inactive
+
Autotask mapping: Link or unlink the customer to an Autotask company (see below)
+
+
+
After making changes, click Save changes to apply them, or Cancel to discard.
+
+
+ 💡 Simple Customer Data:
+ BackupChecks keeps customer data simple - only name and active status. There are no separate fields for contact person, email, phone, or notes. The focus is on backup job management, not CRM functionality.
+
+
+
Activating and Deactivating Customers
+
+
Customers can be marked as active or inactive using the Active checkbox in the Edit customer dialog or directly in the customer list.
+
+
Active Customers
+
+
Active customers:
+
+
Their jobs appear in Daily Jobs, Run Checks, and Jobs list pages
+
New backup reports can be linked to their jobs
+
Normal operational status
+
+
+
Inactive Customers
+
+
Inactive customers:
+
+
Their jobs are hidden from Daily Jobs, Run Checks, and Jobs list pages
+
Jobs still exist in the database but are not displayed in operational views
+
Useful for customers who no longer use your backup services
+
+
+
+ ⚠️ Impact of Deactivating:
+ When you deactivate a customer, all their backup jobs immediately disappear from operational views (Daily Jobs, Run Checks, Jobs list). This is useful for decluttering the interface when a customer is no longer active. Jobs are not deleted and can be reactivated by marking the customer as active again.
+
+
+
Autotask Company Mapping
+
+
If Autotask integration is enabled, you can map customers to Autotask companies directly from the Edit customer dialog. This allows BackupChecks to create tickets in the correct Autotask company.
+
+
Viewing Current Mapping
+
+
In the Edit customer dialog, the Autotask mapping section shows:
+
+
+
Current mapping: The name of the linked Autotask company (if mapped)
+
Status: Sync status (e.g., "ok • Checked: 2026-02-07 00:06:15")
+
+
+
Searching for Autotask Companies
+
+
To map a customer to an Autotask company:
+
+
+
Open the Edit customer dialog
+
In the Autotask mapping section, use the "Search Autotask companies" field
+
Type the company name (or part of it)
+
Click the Search button
+
Results will appear below the search field
+
Click on a result to select it
+
Click the Set mapping button (blue) to apply the mapping
+
Click Save changes to save the customer with the new mapping
+
+
+
+ 💡 Auto-Search Feature:
+ When you open the Edit customer dialog, BackupChecks automatically searches for Autotask companies matching the customer name. This speeds up the mapping process for most customers.
+
+
+
Refreshing Autotask Status
+
+
If you want to verify the Autotask company mapping is still valid:
+
+
+
Open the Edit customer dialog
+
Click the Refresh status button (gray) in the Autotask mapping section
+
BackupChecks will query Autotask to verify the company still exists and update the status
+
+
+
Clearing Autotask Mapping
+
+
To remove an Autotask company mapping:
+
+
+
Open the Edit customer dialog
+
Click the Clear mapping button (red) in the Autotask mapping section
+
The mapping will be removed (but not saved yet)
+
Click Save changes to confirm the removal
+
+
+
Existing tickets remain linked to the Autotask company, but new tickets will not be created until the customer is mapped again.
+
+
Refreshing All Autotask Mappings
+
+
To refresh the sync status of all customer Autotask mappings at once:
+
+
+
Navigate to the Customers page
+
At the top, click the Refresh all Autotask mappings button
+
BackupChecks will verify all mappings with Autotask and update their statuses
+
+
+
+ 💡 Use Case:
+ Use this feature periodically to ensure all customer mappings are still valid, especially if Autotask companies have been renamed or deleted.
+
+
+
Deleting Customers
+
+
To delete a customer:
+
+
+
Navigate to the Customers page
+
Find the customer you want to delete
+
Click the Delete button on the right side of the customer row
+
Confirm the deletion in the dialog
+
+
+
+ ⚠️ Warning - Permanent Deletion:
+ Deleting a customer is permanent and will also delete all associated backup jobs, runs, tickets, and remarks. This action cannot be undone. Consider deactivating the customer instead if you might need the data later.
+
+
+
Exporting Customer Data
+
+
You can export all customer data to a CSV file for backup, reporting, or migration purposes.
+
+
+
Navigate to the Customers page
+
At the top, click the Export CSV button
+
A CSV file will be downloaded containing:
+
+
Customer name
+
Active status
+
Autotask company mapping (company ID and name, if applicable)
+
+
+
+
+
+ 💡 Use Case:
+ Export customer data regularly as a backup, or before performing system maintenance. The exported CSV can be imported later to restore customer data.
+
+
+
Importing Customer Data
+
+
You can import customer data from a CSV file.
+
+
+
Navigate to the Customers page
+
At the top, click the Browse... button to select your CSV file
+
Select the CSV file (must match the export format)
+
Click the Import CSV button
+
The system will:
+
+
Create new customers if they don't exist
+
Update existing customers if they already exist (matched by name)
+
Apply Autotask company mappings (if Autotask is enabled)
+
+
+
Review the import summary showing created, updated, and skipped customers
+
+
+
+ ⚠️ Import Behavior:
+ The import process matches customers by name. If a customer with the same name already exists, their information will be updated with the CSV data. Ensure your CSV data is correct before importing.
+
+
+
Customer Workflow Summary
+
+
Here's the typical workflow for managing customers in BackupChecks:
+
+
+
+
+
Step
+
Action
+
Result
+
+
+
+
+
1
+
Create customer account
+
Customer appears in list with 0 jobs
+
+
+
2
+
Approve backup job from Inbox
+
Job is linked to customer, job count increases
+
+
+
3
+
(Optional) Map to Autotask company via Edit dialog
+
Tickets can be created in Autotask for failed backups
+
+
+
4
+
Monitor backup jobs
+
Jobs appear in Daily Jobs and Run Checks
+
+
+
5
+
(If needed) Deactivate customer via Edit dialog
+
Jobs hidden from operational views
+
+
+
+
+
Next Steps
+
+
+
Configuring Jobs - Learn how backup jobs are created from the Inbox
+
Approved Jobs - View and manage all approved backup jobs
+ Learn how to log in to BackupChecks and navigate the dashboard interface.
+
+
+
+ 📝 Coming Soon:
+ This page is under construction. Screenshots and additional content will be added in future updates.
+
+
+
Logging In
+
+
To access BackupChecks:
+
+
+
Navigate to the BackupChecks URL in your web browser
+
Enter your username and password
+
Click the "Login" button
+
+
+
Dashboard Overview
+
+
The dashboard is your starting point and provides:
+
+
+
General Introduction: A brief explanation of what BackupChecks is and how it works
+
News & Announcements: Important updates and notices posted by administrators
+
Quick Overview: Summary of your backup monitoring status
+
+
+
+ 💡 Note:
+ Administrators can create and manage news items via Settings to keep all users informed about system updates, maintenance windows, or important changes.
+
+
+
Navigation Bar
+
+
The navigation bar at the top of the page provides access to different sections of BackupChecks. The menu items you see depend on your assigned role.
+
+
Role-Based Menu Visibility
+
+
BackupChecks shows only the menu items relevant to your current role. This keeps the interface clean and focused on your tasks.
+
+
+ Example - Reporter Role:
+ If you log in as a Reporter, you will only see:
+
+
Dashboard
+
Reports
+
Documentation
+
Changelog
+
Feedback
+
+
+
+
Common Menu Items
+
+
+
+
+
Menu Item
+
Description
+
Available To
+
+
+
+
+
Dashboard
+
Home page with overview and news
+
All roles
+
+
+
Inbox
+
View all imported emails that are NOT yet linked to jobs (either because no parser exists or the job hasn't been created yet)
+
Admin, Operator, Viewer
+
+
+
All Mail
+
View all imported emails including linked ones
+
Admin only
+
+
+
Deleted Mails
+
View emails that have been deleted
+
Admin only
+
+
+
Customers
+
Manage customer accounts
+
Admin, Operator, Viewer
+
+
+
Jobs
+
Configure and manage backup jobs
+
Admin, Operator, Viewer
+
+
+
Archived Jobs
+
View jobs that have been archived
+
Admin only
+
+
+
Daily Jobs
+
View today's expected backup jobs and their status
+
Admin, Operator, Viewer
+
+
+
Run Checks
+
Review all backup runs (successful and failed) and mark them as reviewed - the goal is to clear this queue daily
+
Admin, Operator
+
+
+
Tickets
+
View and manage Autotask tickets
+
Admin, Operator, Viewer
+
+
+
Overrides
+
Configure rules to override backup status for specific cases
+
Admin, Operator, Viewer
+
+
+
Reports
+
Generate and view backup status reports
+
All roles
+
+
+
Settings
+
Configure system settings, mail import, Autotask integration
+
Admin only
+
+
+
Logging
+
View system audit log of important events
+
Admin only
+
+
+
Parsers
+
View and test email parsing configurations
+
Admin only
+
+
+
Documentation
+
Access this user documentation
+
All roles
+
+
+
Changelog
+
View recent changes and updates to BackupChecks
+
All roles
+
+
+
Feedback
+
Submit feedback and feature requests
+
All roles
+
+
+
+
+
User Profile and Role Switching
+
+
In the top-right corner of the navigation bar, you'll see:
+
+
+
Your username and current role: Click to access your profile settings
+
Role selector: If you have multiple roles assigned, you can switch between them using the dropdown menu
+
Theme selector: Choose between Light, Dark, or Auto theme
+
Logout button: Sign out of BackupChecks
+
+
+
+ 💡 About Run Checks:
+ The Run Checks page is designed for operators to review all backup runs and mark them as reviewed. This serves as proof that backups have been manually checked. The system records who performed each review and when, creating an audit trail for compliance and quality assurance.
+
+
+
Next Steps
+
+
Now that you understand the interface, continue to:
+ Follow this checklist to set up your first customer and backup job in BackupChecks.
+
+
+
+ 📝 Coming Soon:
+ This page is under construction. Screenshots will be added in a future update.
+
+
+
Prerequisites
+
+
Before you begin, ensure you have:
+
+
+
Admin or Operator access to BackupChecks
+
Microsoft Graph API credentials configured for email retrieval
+
At least one backup report email already in the mailbox
+
+
+
Step 1: Configure Mail Import
+
+
+
Navigate to Settings → Mail
+
Enter your Microsoft Graph API details (Tenant ID, Client ID, Client Secret, Mailbox)
+
Test the connection to verify the credentials are correct
+
Go to Settings → Imports
+
Click the Manual Import button to fetch emails from the mailbox
+
+
+
+ 💡 Recommended Approach:
+ Automatic mail import is disabled by default. Start by using the manual import button to test if everything works correctly. Once you're satisfied that emails are being imported and processed as expected, you can enable automatic mail import in Settings → Mail. This way, the system will automatically fetch new emails at the configured interval.
+
+
+
Step 2: Add a Customer
+
+
+
Go to Customers in the navigation menu
+
Click New Customer
+
Fill in the customer details (name, contact info)
+
Save the customer
+
+
+
+ 💡 Note:
+ On the Customers page, you'll see the number of jobs linked to each customer. If no jobs are configured yet, you'll see 0 displayed in red and bold.
+
+
+
Step 3: Create Your First Job from Inbox
+
+
Jobs are created directly from the Inbox by approving backup report emails. The system uses Mail Parsers to extract job details automatically, ensuring consistency.
+
+
+
Go to Inbox in the navigation menu
+
Find a backup report email from your customer
+
Click on the email to view its details
+
In the Customer field, enter or select the customer name you created in Step 2
+
Click Approve job (this button is only enabled when a customer is selected)
+
+
+
+ ⚠️ Important:
+ You cannot manually configure job variables. All job details (backup software, backup type, sender, subject patterns, etc.) are automatically determined by the Mail Parsers based on the email content. This ensures all jobs are created consistently.
+
+
+
Step 4: Process Similar Emails (Reparse All)
+
+
After approving your first job, you can automatically process other emails that match the same pattern:
+
+
+
At the top of the Inbox page, click Reparse all
+
The system will scan all inbox emails and link any that match your newly approved job
+
Matched emails are automatically removed from the inbox and linked to the job
+
+
+
+ 💡 Tip:
+ Use the Delete button on emails that are not backup reports. Deleted emails are moved to Deleted Mails (visible to admins only).
+
+
+
Step 5: Review Backup Runs
+
+
When a backup report email is processed, it creates a "run" in the system:
+
+
+
Navigate to Run Checks in the navigation menu
+
You should see the backup run(s) from your approved job
+
Review each run (successful or failed) and mark it as reviewed
+
The goal is to clear the Run Checks queue by reviewing all pending runs
+
+
+
+ 💡 About Daily Jobs:
+ The Daily Jobs page shows jobs expected to run today based on learned schedules. It takes a few days for the system to learn a job's schedule pattern. Once learned, jobs will appear in Daily Jobs on their expected days. Individual runs always appear immediately in Run Checks regardless of schedule.
+
+
+
Understanding the Workflow
+
+
Here's a summary of how BackupChecks processes backup reports:
+
+
+
+
+
Step
+
What Happens
+
Where to See It
+
+
+
+
+
1. Email arrives
+
Backup report is sent to monitored mailbox
+
Not visible yet
+
+
+
2. Import runs
+
System fetches email via Graph API
+
Inbox (if no matching job exists)
+
+
+
3. Job created
+
You approve the email and create a job
+
Jobs page
+
+
+
4. Run created
+
Email is parsed and a backup run is recorded
+
Run Checks page
+
+
+
5. Schedule learned
+
After several runs, system learns the schedule
+
Daily Jobs page
+
+
+
6. Review
+
Operator marks run as reviewed
+
Run Checks queue is cleared
+
+
+
+
+
Next Steps
+
+
Now that you have your first job configured, you can:
+
+
+
Add more customers and approve more jobs from the Inbox
+ BackupChecks is a backup monitoring and validation system designed to help IT teams
+ verify that backups are running successfully across their customer infrastructure.
+
+
+
+ 📝 Coming Soon:
+ This page is under construction. Screenshots and additional content will be added in future updates.
+
+
+
Key Features
+
+
+
Automated Mail Parsing: Import backup reports via email and automatically parse results
+
Review Workflow: Review all backup jobs daily and mark them as reviewed (goal: clear the Run Checks queue)
+
Customer Management: Organize backups by customer and manage multiple backup jobs per customer
+
Autotask Integration: Manually create tickets in Autotask PSA for failed backups requiring follow-up
+
Reporting: Generate backup status reports with flexible scheduling
+
Role-Based Access: Admin, Operator, Reporter, and Viewer roles
+
+
+
+ 💡 Note:
+ Screenshots will be added in a future update to illustrate the dashboard and key features.
+
+
+
How It Works
+
+
BackupChecks follows a simple workflow:
+
+
+
Import: Backup reports are sent via email to a configured mailbox
+
Parse: The system parses email content to extract backup status
+
Match: Reports are matched to configured jobs based on sender, subject, and content
+
Review: Operators review all backup jobs (both successful and failed) and mark them as reviewed to clear the Run Checks queue
+
Ticket Creation: For failed backups requiring follow-up, operators manually create tickets in Autotask PSA
+
Report: Generate periodic reports to track backup health over time
+
+
+
+ 💡 Tip:
+ Start with the Quick Start Checklist
+ to get your first customer and job configured.
+
+
+
Who Should Use BackupChecks?
+
+
BackupChecks is designed for:
+
+
+
Managed Service Providers (MSPs): Monitor backups across multiple customer environments
+
IT Departments: Track backup compliance for internal infrastructure
+
Backup Administrators: Centralize backup verification from multiple backup solutions
+ ⚠️ Important:
+ BackupChecks monitors backup reports, not the backup data itself. Ensure your backup software is configured to send email notifications on job completion.
+
+
+
Architecture Overview
+
+
BackupChecks is a web-based application with the following components:
+
+
+
Backend: Flask (Python) application with PostgreSQL database
+
Frontend: Bootstrap 5 for responsive UI
+
Mail Import: Microsoft Graph API integration for automated email retrieval
+
Autotask API: Optional integration for manual ticket creation
+
Reporting: Built-in report generation with scheduling
+
+
+
User Roles
+
+
BackupChecks supports four user roles with different permissions:
+
+
+
+
+
Role
+
Permissions
+
+
+
+
+
Admin
+
Full access to all features, settings, and configuration
+
+
+
Operator
+
Can review and approve backups, manage customers and jobs, create tickets
+
+
+
Reporter
+
Can view and generate reports, no access to operational features
+
+
+
Viewer
+
Read-only access to customers, jobs, and reports
+
+
+
+
+
+ 💡 Note:
+ Users can be assigned multiple roles and can switch between them using the role selector in the navigation bar.
+
+ Configure automatic email import from your Microsoft Graph mailbox to run on a schedule.
+
+
+
Overview
+
+
BackupChecks can automatically import backup report emails from your mailbox at regular intervals. This eliminates the need to manually trigger imports and ensures new backup reports are processed promptly.
+
+
Auto-import features:
+
+
+
Scheduled imports: Automatically fetch new emails at configured intervals
+
Auto-approval: Emails matching existing jobs are automatically approved
+
Background processing: Runs in a background thread without blocking the application
+
Error handling: Logs failures and retries on the next interval
+
Manual override: Trigger imports manually when needed
+
+
+
Automatic Import
+
+
Automatic import runs continuously in the background and fetches new emails based on a configured interval.
+
+
Enabling Auto-Import
+
+
To enable automatic import:
+
+
+
Navigate to Settings → Imports tab
+
Locate the Automatic mail import section
+
Check the Enable automatic import checkbox
+
Set the Import interval in minutes (default: 15 minutes)
+
Click Save settings at the bottom of the page
+
+
+
+ 💡 First Run:
+ After enabling auto-import, the first import runs immediately. Subsequent imports run at the configured interval.
+
+
+
Import Interval
+
+
The import interval determines how often BackupChecks checks for new emails:
+
+
+
+
+
Interval
+
Use Case
+
Recommendation
+
+
+
+
+
5 minutes
+
High-frequency backups, real-time monitoring
+
May increase server load, use only if necessary
+
+
+
15 minutes
+
Standard setup (default)
+
Recommended for most organizations
+
+
+
30 minutes
+
Low-priority backups, small teams
+
Good balance between timeliness and load
+
+
+
60 minutes
+
Batch processing, overnight backups only
+
Suitable for organizations with scheduled backup windows
+
+
+
+
+
+ 💡 Performance Consideration:
+ Shorter intervals provide faster email processing but increase server load and Microsoft Graph API usage. 15 minutes is recommended as a good balance for most organizations.
+
+
+
Batch Size
+
+
Auto-import fetches a fixed number of emails per run to prevent overwhelming the system:
+
+
+
Automatic import: Always fetches 10 messages per run
+
If more than 10 new emails exist, they will be fetched on subsequent runs
+
This prevents long-running imports that could block other operations
+
+
+
How Auto-Import Works
+
+
Here's what happens during each automatic import cycle:
+
+
+
Timer triggers: The configured interval elapses (e.g., 15 minutes)
+
Check settings: Verify that auto-import is still enabled
+
Authenticate: Obtain access token from Microsoft Graph
+
Fetch emails: Retrieve up to 10 new emails from the incoming folder
+
Parse emails: Run parsers to extract backup information
+
Auto-approve: If the email matches an existing approved job, automatically approve it
+
Move emails: Move processed emails to the processed folder (if configured)
+
Log results: Record import statistics in the audit log
+
Persist objects: Store backup objects for auto-approved runs
+
Wait: Sleep until the next interval
+
+
+
Auto-Approval
+
+
During automatic import, BackupChecks can automatically approve emails that match previously approved jobs. This eliminates the need to manually approve recurring backup reports.
+
+
How Auto-Approval Works
+
+
An email is automatically approved if:
+
+
+
The email is successfully parsed (backup software, type, and job name extracted)
+
A matching job already exists in the database (based on sender, job name, backup software)
+
The job was previously approved by a user
+
The match is unique across all customers (no ambiguity)
+
+
+
When auto-approved:
+
+
+
A new JobRun is created and linked to the existing job
+
Backup objects are extracted and stored
+
The email is marked as approved and moved out of the inbox
+
The run appears in Daily Jobs, Run Checks, and job history
+
+
+
+ 💡 First Approval is Manual:
+ The first email for a new backup job must always be manually approved from the inbox. After that, future emails for the same job are automatically approved.
+
+
+
When Auto-Approval Fails
+
+
If auto-approval fails, the email remains in the inbox and requires manual approval:
+
+
+
Parsing failed: Email format not recognized by any parser
+
No matching job: This is the first email for this backup job
+
Ambiguous match: Multiple jobs match the same criteria (different customers with identical job names)
+
Job renamed: The backup software renamed the job, breaking the match
+
+
+
Manual Import
+
+
You can manually trigger an import at any time without waiting for the automatic import interval.
+
+
Triggering Manual Import
+
+
+
Navigate to Settings → Imports tab
+
Scroll to the Manual mail import section
+
Optionally adjust the Number of items (default: 50)
+
Click the Import now button
+
BackupChecks will immediately fetch emails from the mailbox
+
You'll see a success message showing how many emails were imported
+
+
+
Manual Import Batch Size
+
+
Manual import allows you to configure how many emails to fetch:
+
+
+
Default: 50 emails per manual import
+
Range: 1 to 50 emails
+
Use case: Fetch a large batch when setting up a new customer or after a long period without imports
+
+
+
The default batch size can be changed in Settings → Imports → Manual import batch size.
+
+
+ 💡 When to Use Manual Import:
+ Manual import is useful when:
+
+
Testing mail configuration for the first time
+
Setting up a new customer and you need their emails imported immediately
+
Auto-import is disabled but you need to import specific emails
+
You want to fetch a larger batch than the automatic 10-message limit
+
+
+
+
Import Settings Summary
+
+
Here's a complete reference of all mail import settings:
+
+
+
+
+
Setting
+
Location
+
Default
+
Description
+
+
+
+
+
Enable automatic import
+
Settings → Imports
+
Disabled
+
Turn automatic email import on or off
+
+
+
Import interval
+
Settings → Imports
+
15 minutes
+
How often to check for new emails (automatic import only)
+
+
+
Manual import batch size
+
Settings → Imports
+
50 messages
+
Default number of emails to fetch during manual import
+
+
+
EML retention period
+
Settings → Imports
+
7 days
+
How long to store raw .eml files (0, 7, or 14 days)
+
+
+
+
+
Monitoring Import Activity
+
+
You can monitor import activity through several interfaces:
+
+
Audit Log
+
+
Every import operation is logged in the audit log:
+
+
+
Navigate to Settings → Maintenance → Admin events
+
Look for events like:
+
+
mail_import_auto - Automatic import completed
+
mail_import_manual - Manual import completed
+
mail_import_auto_error - Automatic import failed
+
+
+
Event messages show statistics: fetched=10, new=3, auto_approved=7, errors=0
+
+
+
Inbox Page
+
+
The inbox shows all imported emails:
+
+
+
Check the Parsed column to see when emails were imported and parsed
+
Emails with blank Backup or Job name were not successfully parsed
+
Approved emails move out of the inbox automatically
+
+
+
Jobs and Daily Jobs
+
+
Auto-approved emails appear as new runs in:
+
+
+
Jobs page - Shows all backup jobs with their latest run status
+
Daily Jobs page - Shows backup runs for today, grouped by customer
+
Run Checks page - Shows all runs awaiting review
+
+
+
Troubleshooting
+
+
Auto-Import Not Running
+
+
If auto-import is enabled but emails are not being imported:
+
+
+
Verify that Enable automatic import is checked in Settings → Imports
+
Check the audit log for mail_import_auto_error events
+
Verify Microsoft Graph credentials are still valid (client secret may have expired)
+
Ensure the BackupChecks application server is running (the background thread starts on app startup)
+
Check system logs for thread errors or crashes
+
+
+
Emails Not Auto-Approved
+
+
If emails are imported but not auto-approved:
+
+
+
Check the Inbox - emails may be parsed but not matched to existing jobs
+
Verify the first email for this job was manually approved (auto-approval only works for subsequent emails)
+
Ensure the job name, backup software, and sender match exactly between emails
+
Check for duplicate jobs across different customers (auto-approval requires a unique match)
+ Review incoming backup report emails, examine parsed results, and approve jobs for monitoring.
+
+
+
Overview
+
+
The Inbox is the central location where all imported backup report emails appear before being approved and linked to jobs. Think of it as a staging area where you review and validate incoming backup reports.
+
+
The inbox workflow:
+
+
+
Import: Emails are automatically imported from your mailbox
+
Parse: BackupChecks automatically parses email content to extract backup information
+
Review: You review the parsed results in the inbox
+
Approve: You approve emails to create backup jobs and link future reports
+
Monitor: Approved jobs appear in Daily Jobs and other operational views
+
+
+
Accessing the Inbox
+
+
To access the inbox:
+
+
+
Navigate to Inbox in the main navigation menu
+
Available to Admin, Operator, and Viewer roles
+
Viewers can see emails but cannot approve or delete them
+
+
+
Inbox Page Layout
+
+
The Inbox page displays a table with all unapproved imported emails. Each row represents one email message that has not yet been approved.
+
+
+ 💡 Inbox Shows Only Unapproved Emails:
+ Once you approve an email, it immediately disappears from the inbox and the job appears in operational views (Jobs, Daily Jobs, Run Checks). The inbox only contains emails awaiting approval or deletion.
+
+
+
Table Columns
+
+
+
+
+
Column
+
Description
+
+
+
+
+
From
+
Sender email address (e.g., backups@veeam.com)
+
+
+
Subject
+
Email subject line
+
+
+
Date / time
+
When the email was received (in configured timezone)
Backup job type (e.g., Backup Job, Replication Job)
+
+
+
Job name
+
Extracted backup job name from email content
+
+
+
Overall
+
Overall status extracted from email (Success, Warning, Failed)
+
+
+
Parsed
+
Timestamp when the email was parsed
+
+
+
EML
+
Download link if raw .eml file is stored (blank if not stored)
+
+
+
+
+
Pagination
+
+
The inbox displays 50 emails per page. Use the pagination controls at the top and bottom of the table:
+
+
+
Previous / Next buttons: Navigate between pages
+
Page X of Y: Shows current page and total pages
+
Go to: Jump directly to a specific page number
+
+
+
Viewing Email Details
+
+
To view the full content and parsed details of an email:
+
+
+
Click anywhere on the email row in the inbox table
+
A large modal dialog opens showing the email details
+
+
+
Email Detail Modal
+
+
The email detail modal uses a two-column layout:
+
+
+
+ Figure 1: Email detail modal with metadata on the left and email body on the right
+
+
+
1. Metadata Section (Left Side)
+
+
Displays email header information on the left side of the modal:
+
+
+
From: Sender address
+
Subject: Email subject
+
Received: Timestamp
+
Backup software / Type / Job name: Parsed values extracted from email content
+
Overall status: Success/Warning/Failed indicator
+
+
+
Below the metadata, action buttons are available:
+
+
+
Approve: Opens the approval dialog to link this email to a customer and create a job
+
Delete: Marks the email as deleted and removes it from the inbox
+
Download .eml: Downloads the original email file (if stored)
+
+
+
2. Email Body (Right Side)
+
+
The email body is displayed on the right side of the modal in an embedded iframe:
+
+
+
HTML emails are rendered in their original formatting
+
Plain text emails are displayed as preformatted text
+
Styling and images are preserved when possible
+
+
+
+ 💡 HTML Rendering:
+ The email body is sandboxed in an iframe for security. This prevents malicious scripts from executing while still allowing you to see the formatted email content.
+
+
+
3. Parsed Objects (Left Side, Below Metadata)
+
+
If the email was successfully parsed, the backup objects are listed below the metadata on the left side:
Approving an email creates a backup job in BackupChecks and links it to a customer. Future emails matching the same job will be automatically linked.
+
+
How to Approve
+
+
+
Open the email detail modal by clicking on an inbox row
+
Review the email content and parsed objects
+
Click the Approve button in the metadata section (left side)
+
An approval dialog opens showing:
+
+
Job name: The parsed job name (read-only, cannot be edited)
+
Select customer: Dropdown to choose which customer this backup job belongs to
+
+
+
Select the customer from the dropdown (or start typing to search)
+
Click Confirm to approve
+
+
+
+ 💡 Job Name Cannot Be Changed:
+ The job name is determined by the parser and cannot be modified during approval. If the parsed job name is incorrect, you need to fix the parser or contact support - you cannot manually override it during the approval process.
+
+
+
+ 💡 Customer Selection:
+ Always create the customer account before approving emails. This allows you to immediately link the job to the correct customer. See Managing Customers for details.
+
+
+
What Happens After Approval
+
+
When you approve an email:
+
+
+
A Job record is created in the database (if it doesn't already exist)
+
A JobRun record is created, representing this specific backup run
+
JobObject records are created for each parsed object (VMs, servers, etc.)
+
The email is marked as approved and immediately disappears from the inbox
+
The job immediately appears in Jobs, Daily Jobs, and Run Checks pages
+
Future emails matching the same job are automatically approved and linked without appearing in the inbox
+
+
+
+ 💡 Approved Emails Don't Return:
+ Once approved, an email permanently leaves the inbox. Future emails for the same job are automatically approved during import and never appear in the inbox - they go directly to operational views.
+
+
+
+ ⚠️ Job Matching:
+ After approval, future emails are matched to this job based on sender address, job name, and backup software. If these change (e.g., job is renamed), you may need to approve a new email to create a new job record.
+
+
+
Re-parsing Emails
+
+
If an email was not parsed correctly, you can re-parse it after updating parser configuration. Re-parsing is only available from the inbox page, not from the email detail modal.
+
+
Re-parse All Emails
+
+
To re-parse all emails in the inbox at once:
+
+
+
On the inbox page, click the Re-parse all button at the top of the page
+
BackupChecks will re-run all parsers on all inbox emails
+
The page will refresh showing updated parsed results
+
Useful after adding new parsers or fixing parser bugs
+
+
+
+ 💡 No Individual Re-parse:
+ There is no option to re-parse a single email. The "Re-parse all" button processes all emails in the inbox simultaneously. If you only want to re-parse specific emails, delete the others first, then use "Re-parse all", then re-import the deleted emails.
+
+
+
+ 💡 When to Re-parse:
+ Re-parsing is useful when emails were imported before a parser was configured, or when parser logic has been updated. Re-parsing does not re-fetch emails from the mailbox - it only re-processes emails already in the database.
+
+
+
Deleting Emails
+
+
Admins and Operators can delete emails from the inbox.
+
+
Delete Single Email
+
+
+
Open the email detail modal
+
Click the Delete button
+
Confirm the deletion
+
The email is marked as deleted and moved out of the inbox
+
+
+
Bulk Delete Emails
+
+
+
Check the checkboxes next to emails you want to delete
+
Click the Delete selected button at the top of the inbox
+
Confirm the bulk deletion
+
+
+
+ ⚠️ Soft Delete:
+ Emails are soft-deleted, not permanently removed. Deleted emails are hidden from the inbox but remain in the database. Administrators can view deleted emails on the Deleted Mails page (visible only to Admin role).
+
+
+
Downloading .EML Files
+
+
If EML storage is enabled, you can download the original .eml file for any email:
+
+
+
Open the email detail modal
+
Click the Download .eml button
+
The raw .eml file is downloaded to your browser
+
You can open this file in Outlook, Thunderbird, or any email client
+
+
+
This is useful for:
+
+
+
Troubleshooting parsing issues
+
Forwarding the email to a vendor for support
+
Archiving backup reports outside BackupChecks
+
+
+
Common Workflows
+
+
Setting Up a New Customer
+
+
+
Create the customer in Customers page
+
Wait for backup reports to arrive in the inbox (or trigger a manual import)
+
Review each email for the customer in the inbox
+
Approve each email, selecting the new customer from the dropdown
+
The approved emails disappear from the inbox and jobs are created
+
Jobs now appear in Jobs, Daily Jobs, and Run Checks pages
+
Future backup reports are automatically approved and never appear in the inbox
+
+
+
Troubleshooting Unparsed Emails
+
+
+
Find emails with empty Backup or Job name columns in the inbox table
+
Open the email detail modal to review the email body and understand its format
+
Check if a parser exists for this backup software:
+
+
Navigate to Settings → Parsers (Admin only)
+
Look for a parser matching the backup software or email format
+
+
+
If no parser exists:
+
+
Contact BackupChecks support or the developer to request a parser
+
Provide sample emails (forward .eml files) to help with parser development
+
+
+
After a parser is added by the developer, use Re-parse all on the inbox page to process the emails again
+
+
+
+ ⚠️ Custom Parsers:
+ Parsers can only be created by the BackupChecks developer. End users cannot create or modify parsers. If you need support for a new backup software, contact support with sample email reports (.eml files).
+
+
+
Cleaning Up Spam or Test Emails
+
+
+
Identify unwanted emails in the inbox (e.g., spam, test messages)
+
Select them using checkboxes
+
Click Delete selected
+
Configure mail rules in your mailbox to prevent future spam
+
+
+
Best Practices
+
+
+
Review new emails daily: Check the inbox regularly to approve new jobs promptly
+
Create customers first: Always create customer accounts before approving their jobs
+
Clean up the inbox: Delete or approve emails to keep the inbox manageable
+
Monitor parsing success: Check for emails with missing backup software - these may need parser support from the developer
+
Verify parsed job names: Review the parsed job name before approving - if it's incorrect, contact support to fix the parser (you cannot edit it during approval)
+
+
+
Next Steps
+
+
+
Mail Parsing - Understand how BackupChecks parses different backup software emails
+ Understand how BackupChecks automatically extracts backup information from email reports using parsers.
+
+
+
Overview
+
+
When emails are imported from your mailbox, BackupChecks automatically parses (analyzes) the email content to extract structured backup information. This eliminates the need to manually read each email and enter data.
+
+
Parsing extracts:
+
+
+
Backup software: The product that generated the email (e.g., Veeam, Synology, NAKIVO)
+
Backup type: The type of backup job (e.g., Backup Job, Replication Job)
+
Job name: The name of the backup job
+
Overall status: Success, Warning, or Failed
+
Backup objects: Individual items backed up (VMs, servers, files) with their statuses
+
+
+
How Parsing Works
+
+
The mail parsing process follows these steps:
+
+
+
Retrieval: Email is imported from Microsoft Graph and stored as a MailMessage record
+
Preprocessing: Email body is normalized (line endings, character encoding) for consistent parsing
+
Parser selection: All active parsers are evaluated in order to find a match
+
Matching: Each parser checks if the email matches its criteria (sender, subject, body patterns)
+
Parsing: When a match is found, the parser extracts backup information from the email
+
Storage: Parsed data is stored in the database and linked to the email
+
+
+
Parsers
+
+
A parser is a piece of code that knows how to extract backup information from a specific backup software's email format.
+
+
Viewing Available Parsers
+
+
To see all available parsers:
+
+
+
Navigate to the Parsers page in the main navigation menu (Admin only)
+
The parsers page shows a table with all parsers and their configuration
+
+
+
Parser Information
+
+
Each parser entry shows:
+
+
+
+
+
Column
+
Description
+
+
+
+
+
Name
+
Unique identifier for the parser (e.g., veeam_backup_job)
+
+
+
Backup software
+
The product this parser handles (e.g., Veeam, NAKIVO)
+
+
+
Backup type(s)
+
Types of jobs this parser supports (e.g., Backup Job, Replication Job)
+
+
+
Match criteria
+
Rules used to identify matching emails (sender, subject, body patterns)
+
+
+
Order
+
Evaluation order (lower numbers are checked first)
+
+
+
+
+
+ 💡 Read-Only Parser List:
+ The Parsers page is for viewing parser information only. Parsers cannot be enabled, disabled, or modified through the UI. Parser management is handled by the BackupChecks developer.
+
+
+
Match Criteria
+
+
Parsers use match criteria to determine if an email matches their expected format. Common criteria include:
+
+
Sender Match
+
+
Match based on the sender's email address:
+
+
+
from contains: Sender address must contain a specific string
+
+
Example: from contains 'veeam.com' matches backups@veeam.com
+
+
+
+
+
Subject Match
+
+
Match based on the email subject line:
+
+
+
subject contains: Subject must contain specific text
+
+
Example: subject contains '[Backup]'
+
+
+
subject matches: Subject must match a regular expression pattern
+
+
Example: subject matches /Backup.*Success/
+
+
+
+
+
Body Match
+
+
Match based on email body content (not shown in table but used internally):
+
+
+
Specific phrases or patterns in the email HTML or text body
+
Table structures, HTML tags, or formatting patterns
+
+
+
Supported Backup Software
+
+
BackupChecks includes built-in parsers for popular backup solutions:
+
+
Veeam Backup & Replication
+
+
+
Backup jobs
+
Backup Copy jobs
+
Replication jobs
+
VM-level and object-level details
+
Warning and error messages
+
VSPC (Veeam Service Provider Console) active alarms
+
+
+
Synology Active Backup
+
+
+
Task result notifications
+
PC backup, VM backup, file server backup
+
Success/failure status per device
+
+
+
NAKIVO Backup & Replication
+
+
+
Job completion emails
+
VM-level status and warnings
+
+
+
Other Supported Software
+
+
Additional parsers exist for:
+
+
+
Boxafe: Cloud backup for Microsoft 365
+
Panel3: Backup monitoring platform
+
QNAP: NAS backup notifications
+
Syncovery: File synchronization and backup
+
3CX: VoIP system backup notifications
+
RDrive Image: Disk imaging backups
+
NTFS Auditing: File access audit reports
+
+
+
+ 💡 Requesting New Parsers:
+ If your backup software is not listed, contact BackupChecks support to request a new parser. Provide sample emails (.eml files) to help the developer create the parser. Parsers can only be created by the BackupChecks developer.
+
+
+
Parser Execution Order
+
+
When an email is parsed, BackupChecks evaluates parsers in a specific order based on their Order value. This is important because:
+
+
+
The first matching parser is used - no other parsers are evaluated after a match
+
More specific parsers should have lower order numbers (checked first)
+
Generic parsers should have higher order numbers (checked last)
+
+
+
For example:
+
+
+
+
+
Order
+
Parser
+
Rationale
+
+
+
+
+
1
+
veeam_replication_job
+
Specific Veeam job type - check before generic Veeam parser
+
+
+
2
+
veeam_backup_job
+
Generic Veeam parser - fallback for other Veeam emails
+
+
+
10
+
synology_active_backup
+
Unrelated to Veeam - order doesn't matter relative to Veeam
+
+
+
+
+
Re-parsing Emails
+
+
If parsing fails or produces incorrect results, you can re-parse emails after fixing the issue.
+
+
When to Re-parse
+
+
+
A new parser was added by the developer for previously unsupported software
+
Parser code was updated by the developer to fix a bug or improve extraction
+
Parser match criteria were adjusted by the developer
+
+
+
How to Re-parse
+
+
Re-parsing is only available for all inbox emails at once:
+
+
+
Navigate to the Inbox page
+
Click the Re-parse all button at the top of the page
+
All emails in the inbox will be re-processed by all available parsers
+
+
+
+ 💡 Re-parsing is Safe:
+ Re-parsing only updates parsed fields (backup software, job name, objects, etc.). It does not re-fetch the email from the mailbox or modify the original email content stored in the database.
+
+
+
Parsing Workflow Example
+
+
Here's how a typical Veeam backup email is parsed:
+
+
Example Email
+
+
+
From:backups@veeam.com
+
Subject:[Veeam] Backup Job 'Daily VM Backup' completed with Warning
+
Body: HTML table showing:
+
+
VM: DC01 - Success
+
VM: FILESERVER - Success
+
VM: EXCHANGE01 - Warning: "Retry succeeded"
+
+
+
+
+
Parsing Steps
+
+
+
Import: Email is fetched from Graph API and stored
+ Configure Microsoft Graph API integration to automatically retrieve backup report emails from an Exchange Online mailbox.
+
+
+
Overview
+
+
BackupChecks uses the Microsoft Graph API to retrieve emails from an Exchange Online (Microsoft 365) mailbox. This allows the system to automatically import backup reports sent to a dedicated mailbox.
+
+
The mail import process involves:
+
+
+
Authenticating with Microsoft Graph using an Azure AD app registration
+
Retrieving emails from a specified folder in the mailbox
+
Parsing email content to extract backup job information
+
Moving processed emails to a separate folder
+
+
+
+ 💡 Why Microsoft Graph?
+ BackupChecks uses Microsoft Graph API instead of traditional IMAP/POP3 because it provides better security (OAuth2), reliability, and integration with Microsoft 365 environments. Most organizations already use Microsoft 365 for email, making this the most convenient option.
+
+
+
Prerequisites
+
+
Before configuring mail import in BackupChecks, you need:
+
+
+
Microsoft 365 subscription with Exchange Online
+
Dedicated mailbox for receiving backup reports (e.g., backupreports@yourdomain.com)
+
Azure AD application registration with Mail.Read and Mail.ReadWrite permissions
+
Admin access to BackupChecks to configure settings
+
+
+
Step 1: Create Azure AD App Registration
+
+
To allow BackupChecks to access your mailbox, you must create an Azure AD app registration and grant it the necessary permissions.
Navigate to Azure Active Directory → App registrations
+
Click New registration
+
Enter a name (e.g., "BackupChecks Mail Importer")
+
Select Accounts in this organizational directory only
+
Leave Redirect URI blank
+
Click Register
+
+
+
After registration, note the following values from the Overview page:
+
+
+
Application (client) ID - you'll enter this as Client ID in BackupChecks
+
Directory (tenant) ID - you'll enter this as Tenant ID in BackupChecks
+
+
+
1.2 Create a Client Secret
+
+
+
In your app registration, go to Certificates & secrets
+
Click New client secret
+
Enter a description (e.g., "BackupChecks access")
+
Select an expiration period (recommended: 24 months)
+
Click Add
+
Important: Copy the secret Value immediately - you cannot view it again later
+
+
+
+ ⚠️ Secret Expiration:
+ Client secrets expire after the selected period. Set a calendar reminder to renew the secret before expiration, or mail import will stop working. When renewing, create a new secret, update BackupChecks settings, then delete the old secret.
+
+
+
1.3 Grant API Permissions (Start with Read-Only)
+
+
BackupChecks requires application permissions (not delegated) to access the mailbox. Start with read-only access for initial testing:
+
+
+
In your app registration, go to API permissions
+
Remove any default Microsoft Graph permissions that were added automatically
+
Click Add a permission
+
Select Microsoft Graph
+
Select Application permissions (not Delegated)
+
Search for and add: Mail.Read - Read mail in all mailboxes
+
Click Add permissions
+
Important: Click Grant admin consent for [your organization]
+
Confirm the consent
+
+
+
+ ⚠️ Tenant-Wide Access:
+ At this stage, the app has permission to read all mailboxes in your tenant. This is a security risk. Follow Step 1.4 (recommended) to restrict access to only the backup mailbox.
+
+
+
1.4 Restrict Access to One Mailbox (Optional but Recommended)
+
+
To follow the principle of least privilege, restrict the application to access only the backup mailbox instead of all mailboxes in your tenant.
+
+
+ 💡 Security Best Practice:
+ This step is highly recommended for production environments. It ensures that even if the client secret is compromised, the attacker can only access the backup mailbox, not personal or sensitive mailboxes.
+
+ 💡 How It Works:
+ The Application Access Policy restricts the app to access only the mailbox specified in PolicyScopeGroupId. Even though the app has tenant-wide Mail.Read permissions, Exchange Online enforces the policy and blocks access to other mailboxes.
+
+
+
1.5 Add Write Permissions (After Testing)
+
+
Once you've tested read-only access and confirmed it works correctly, add write permissions to allow BackupChecks to move processed emails.
+
+
+
Go back to your app in Azure AD → API permissions
+
Click Add a permission
+
Select Microsoft Graph → Application permissions
+
Add: Mail.ReadWrite - Read and write mail in all mailboxes
+
Click Add permissions
+
Important: Click Grant admin consent for [your organization] again
+
+
+
+ 💡 Why ReadWrite?
+ The Mail.ReadWrite permission is required to move processed emails from the incoming folder to the processed folder. If you only grant Mail.Read, BackupChecks can import emails but cannot move them after processing. They will remain in the incoming folder.
+
+
+
Note: If you configured the Application Access Policy in Step 1.4, the write restriction still applies - the app can only write to the backup mailbox, not other mailboxes.
+
+
Step 2: Configure Mail Settings in BackupChecks
+
+
After creating the Azure AD app registration, configure BackupChecks to use it:
+
+
+
Log in to BackupChecks as an Admin
+
Navigate to Settings → General tab
+
Scroll to the Mail (Microsoft Graph) section
+
+
+
2.1 Enter Graph Credentials
+
+
Fill in the following fields with values from your Azure AD app registration:
+
+
+
+
+
Field
+
Description
+
Example
+
+
+
+
+
Tenant ID
+
Azure AD Directory (tenant) ID
+
12345678-1234-1234-1234-123456789abc
+
+
+
Client ID
+
Azure AD Application (client) ID
+
87654321-4321-4321-4321-abcdef123456
+
+
+
Client secret
+
The secret value you copied in Step 1.2
+
abc123...xyz789
+
+
+
Mailbox address
+
Email address of the mailbox to import from
+
backupreports@yourdomain.com
+
+
+
+
+
+ 💡 Security Note:
+ The client secret field shows ******** (stored) when a secret is already saved. Leave this field empty to keep the existing secret, or enter a new secret to replace it.
+
+
+
+ ⚠️ Important - Save Before Folder Configuration:
+ You must save the credentials first (click "Save settings" at the bottom) and refresh the page before you can configure folders in Step 2.2. The folder browser requires valid credentials to connect to your mailbox and retrieve the folder list.
+
+
+
2.2 Configure Mail Folders
+
+
BackupChecks uses two folders in the mailbox:
+
+
+
+
+
Folder
+
Purpose
+
Example Path
+
+
+
+
+
Incoming folder
+
Where backup reports arrive and are fetched from
+
Inbox or Inbox/Backup Reports
+
+
+
Processed folder
+
Where emails are moved after processing
+
Archive or Inbox/Processed
+
+
+
+
+
To configure folders:
+
+
+
Prerequisites: Ensure you've saved the credentials in Step 2.1 and refreshed the page
+
Click the Browse... button next to the Incoming folder field
+
A folder browser popup will open and automatically load your mailbox folder structure
+
+
The popup connects to Microsoft Graph and retrieves all available folders
+
You will see a hierarchical list of folders (Inbox, Archive, Sent Items, etc.)
+
+
+
Click on the folder where backup reports arrive (e.g., Inbox)
+
+
Don't type the path manually - select it from the list
+
You can expand subfolders by clicking on them
+
+
+
Click Select to confirm your choice
+
The folder path will be automatically filled in the field (e.g., Inbox or Inbox/Backup Reports)
+
Repeat the same process for the Processed folder field
+
+
Click Browse... next to "Processed folder"
+
Select a folder like Archive or create a subfolder like Inbox/Processed
+
+
+
+
+
+ 💡 Folder Browser:
+ The folder browser automatically loads all available folders from your mailbox. You don't need to manually type folder paths - simply click on the folder you want to use. The correct path format (e.g., Inbox/Backup Reports) is automatically generated.
+
+
+
+ 📝 Future Improvement:
+ The current UI requires clicking the same "Save settings" button twice: once to save credentials (which enables folder browsing), and again to save folder paths. This is not immediately obvious to users. A UI improvement is planned to make this workflow clearer - possibly splitting it into separate sections with distinct save buttons, or providing visual feedback about which step you're on.
+
+
+
2.3 Save Settings (Again)
+
+
After configuring the folder paths:
+
+
+
Click the Save settings button at the bottom of the page again
+
+
This is the same "Save settings" button you clicked in Step 2.1
+
It now saves both credentials and folder paths together
+
+
+
BackupChecks will validate the complete configuration (credentials + folders)
Folders exist in the mailbox and paths are correct
+
Application Access Policy (if configured) allows access to the mailbox
+
+
+
+
+
+ ⚠️ Same Button, Two Steps:
+ There is only one "Save settings" button on this page. You must click it twice: first after entering credentials (Step 2.1) to enable folder browsing, then again after selecting folders (Step 2.3) to save the complete configuration. This workflow will be improved in a future version to make it clearer.
+
+
+
Step 3: Test the Configuration
+
+
After saving settings, verify that mail import is working:
+
+
+
Send a test backup report email to your configured mailbox address
+
Wait a few minutes for the scheduled import to run (or trigger a manual import - see below)
+
Navigate to Inbox in BackupChecks
+
Verify that the test email appears in the inbox
+
+
+
Manual Import
+
+
To manually trigger a mail import without waiting for the scheduled task:
+
+
+
Navigate to Settings → Imports tab
+
Click the Import now button in the "Mail import" section
+
BackupChecks will immediately fetch new emails from the incoming folder
+
Check the Inbox page to see imported emails
+
+
+
+ 💡 Import Schedule:
+ By default, BackupChecks automatically imports new emails every 15 minutes. Manual import is useful for testing or when you need immediate import of a new email.
+
+
+
Troubleshooting
+
+
Authentication Errors
+
+
If you see "Failed to obtain access token" errors:
+
+
+
Verify that Tenant ID, Client ID, and Client secret are correct
+
Check that the client secret has not expired in Azure AD
+
Ensure admin consent was granted for the API permissions
+
Verify the app registration is in the same tenant as the mailbox
+
+
+
Folder Not Found Errors
+
+
If folder configuration fails:
+
+
+
Use the Browse... button to select folders (don't type paths manually)
+
Ensure the folders exist in the mailbox (create them if needed)
+
Check that folder names are spelled exactly as they appear in Outlook
+
Folder paths are case-sensitive
+
+
+
No Emails Imported
+
+
If manual import succeeds but no emails appear:
+
+
+
Verify that emails exist in the incoming folder
+
Check that emails have not already been moved to the processed folder
+
Ensure the mailbox has emails dated within the retention period (default: 7 days)
+
Check system logs for parsing errors
+
+
+
Advanced Configuration
+
+
Email Retention
+
+
BackupChecks stores email content in the database but can also retain the original .eml file for a specified period:
+
+
+
0 days: EML files are not stored (saves database space)
+
7 days: Default retention period
+
14 days: Extended retention for troubleshooting
+
+
+
This setting is configured in Settings → Imports tab.
+
+
Multiple Mailboxes
+
+
BackupChecks currently supports importing from one mailbox at a time. If you need to monitor multiple mailboxes:
+
+
+
Use mail forwarding rules in Exchange to forward backup reports to the configured mailbox
+
Create shared mailboxes and configure all backup software to send to the shared mailbox
+
+
+
Security Best Practices
+
+
+
Use a dedicated mailbox: Don't use a personal mailbox for backup reports
+
Restrict to one mailbox: Configure an Application Access Policy (Step 1.4) to limit the app to only the backup mailbox - this is the most important security measure
+
Start with read-only: Begin with Mail.Read only, test thoroughly, then add Mail.ReadWrite after validation
+
Restrict app permissions: Only grant the minimum required permissions (Mail.Read and Mail.ReadWrite, not broader permissions)
+
Rotate secrets regularly: Set calendar reminders to renew client secrets before expiration (recommended: 12 months)
+
Limit admin access: Only BackupChecks admins should have access to Settings
+
Monitor import logs: Check audit logs regularly for failed authentication attempts or unusual activity
+
Store secrets securely: Client secrets are stored encrypted in the database - never commit them to source code
+
+
+
Next Steps
+
+
+
Inbox Management - Learn how to review and approve incoming emails
+
Mail Parsing - Understand how BackupChecks parses backup reports
+ Learn how to log in to BackupChecks and manage your authentication session.
+
+
+
+ 📝 Coming Soon:
+ This page is under construction. Screenshots will be added in a future update.
+
+
+
Logging In
+
+
BackupChecks uses a traditional username and password authentication system.
+
+
Login Steps
+
+
+
Navigate to the BackupChecks URL in your web browser
+
You will be automatically redirected to the login page if not authenticated
+
Enter your username in the username field
+
Enter your password in the password field
+
Complete the captcha by solving the simple math problem (e.g., "3 + 5 = ?")
+
Click the Login button
+
+
+
If your credentials are correct and the captcha is solved, you will be redirected to the dashboard.
+
+
+ 📝 Future Change:
+ The captcha requirement is planned to become optional via a system setting. Since BackupChecks is typically deployed in restricted local environments, the captcha may be disabled to streamline the login process.
+
+
+
First Login
+
+
When you log in for the first time:
+
+
+
You will land on the Dashboard page
+
Review any news announcements or system updates
+
If you have multiple roles, select your preferred active role from the dropdown in the navigation bar
+ 💡 Tip:
+ Bookmark the BackupChecks URL for quick access. The system will remember your last active role between sessions.
+
+
+
Authentication Method
+
+
BackupChecks uses local database authentication:
+
+
+
Username/Password: Credentials are stored securely in the database
+
Session-Based: After login, a secure session is created and stored in a cookie
+
No SSO/OAuth: External authentication providers are not currently supported
+
No Two-Factor Authentication: 2FA is not currently implemented
+
+
+
+ 💡 Note:
+ User accounts are created and managed by administrators via Settings → User Management.
+
+
+
Login Failures
+
+
Common Login Issues
+
+
+
+
+
Issue
+
Possible Cause
+
Solution
+
+
+
+
+
Invalid credentials error
+
Incorrect username or password
+
Double-check username and password (case-sensitive). Contact your administrator if you've forgotten your credentials.
+
+
+
Page doesn't load after login
+
Session or cookie issue
+
Clear your browser cookies and cache, then try again.
+
+
+
Redirected back to login
+
Session expired or browser issue
+
Try a different browser or incognito/private mode to rule out browser-specific issues.
+
+
+
+
+
+ ⚠️ Password Reset:
+ BackupChecks does not currently have a self-service password reset feature. If you forget your password, contact your system administrator to reset it.
+
+
+
Session Management
+
+
Session Duration
+
+
BackupChecks uses persistent sessions:
+
+
+
Sessions remain active as long as you keep using the application
+
Sessions may expire after extended periods of inactivity (browser-dependent)
+
Closing the browser tab does not immediately end your session
+
The session cookie is set to expire when the browser closes (unless "Remember Me" is implemented)
+
+
+
Automatic Redirects
+
+
If your session expires or becomes invalid:
+
+
+
You will be automatically redirected to the login page
+
After logging in again, you may be redirected to the page you were trying to access
+
+
+
Logging Out
+
+
To log out of BackupChecks:
+
+
+
Click the Logout button in the top-right corner of the navigation bar
+
Your session will be terminated immediately
+
You will be redirected to the login page
+
+
+
+ 💡 Best Practice:
+ Always log out when using a shared or public computer. This ensures your session is properly terminated and prevents unauthorized access.
+
+
+
Security Considerations
+
+
Password Security
+
+
+
Use Strong Passwords: Choose passwords with a mix of uppercase, lowercase, numbers, and symbols
+
Don't Share Credentials: Each user should have their own account
+
Change Default Passwords: If your administrator provides a temporary password, change it immediately
+
Regular Updates: Consider changing your password periodically
+
+
+
Browser Security
+
+
+
Use HTTPS When Applicable: If BackupChecks is exposed externally via a domain name, ensure you're connecting via HTTPS (check for the padlock icon in your browser). For internal deployments accessed via IP address, HTTPS may not be configured.
+
Keep Browser Updated: Use the latest version of your browser for security patches
+
Avoid Public WiFi: If accessing externally, don't log in from untrusted networks without a VPN
+
Clear Cookies on Shared Computers: Clear browser data after using a shared machine
+
+
+
+ 💡 Deployment Context:
+ BackupChecks is typically deployed in restricted internal environments (accessed via IP address). For external access via a public domain, HTTPS should be configured using a reverse proxy or certificate.
+
+
+
+ ⚠️ Security Alert:
+ If you suspect unauthorized access to your account, contact your administrator immediately to reset your password and review audit logs.
+
+
+
Role Selection After Login
+
+
If you have multiple roles assigned:
+
+
+
After login, your last active role will be automatically selected
+
If this is your first login or the role is no longer valid, your first assigned role will be activated
+
You can switch roles at any time using the role dropdown in the navigation bar
+
+
+
See Users & Roles for more information about role switching.
+
+
Troubleshooting Login Issues
+
+
Can't Remember Username
+
+
Contact your system administrator. They can look up your username in Settings → User Management.
+
+
Can't Remember Password
+
+
Contact your system administrator. They can reset your password for you.
+
+
Account Locked or Disabled
+
+
BackupChecks does not currently implement account lockouts. If you cannot log in:
+
+
+
Verify your username and password are correct
+
Contact your administrator to verify your account exists and is active
+
Ask your administrator to check the audit logs for any issues
+
+
+
Browser Compatibility
+
+
BackupChecks is designed to work with modern web browsers:
+
+
+
+
+
Browser
+
Minimum Version
+
Status
+
+
+
+
+
Mozilla Firefox
+
88+
+
Recommended - Most tested
+
+
+
Google Chrome
+
90+
+
Supported
+
+
+
Microsoft Edge
+
90+
+
Supported
+
+
+
Safari
+
14+
+
Supported
+
+
+
+
+
+ 💡 Best Experience:
+ Mozilla Firefox is the most thoroughly tested browser for BackupChecks and provides the best experience. While other modern browsers are supported, Firefox is recommended for optimal compatibility.
+
+
+
+ ⚠️ Not Supported:
+ Internet Explorer is not supported. Please use a modern browser (Firefox recommended).
+
+
+
Next Steps
+
+
+
Profile Settings - Customize your profile and change your password
+ View your profile information and change your password.
+
+
+
Accessing Profile Settings
+
+
To access your profile settings:
+
+
+
Click on your username in the top-right corner of the navigation bar
+
This will open the User Settings page
+
+
+
+
+ Figure 1: User Settings page showing profile information and password change form
+
+
+
Profile Information
+
+
Your profile displays the following read-only information:
+
+
+
Username: Your login username (cannot be changed by users)
+
Assigned Roles: The roles you have been granted by administrators
+
+
+
+ 💡 Note:
+ Only administrators can modify usernames and role assignments via Settings → User Management.
+
+
+
Changing Your Password
+
+
You can change your password at any time from the profile settings page.
+
+
Password Change Steps
+
+
+
Navigate to your profile settings (click your username)
+
Locate the Change Password section
+
Enter your current password
+
Enter your new password
+
Re-enter your new password to confirm
+
Click Change Password or Save
+
+
+
If successful, you will see a confirmation message. Your password is updated immediately.
+
+
+ 💡 Password Best Practices:
+ Use a strong password with at least 8 characters, including uppercase, lowercase, numbers, and symbols. Avoid common words or easily guessable information.
+
+
+
Password Requirements
+
+
BackupChecks password requirements:
+
+
+
Minimum Length: Typically 6-8 characters (check with your administrator)
+
Complexity: No specific complexity requirements enforced by default
+
History: No password reuse restrictions by default
+
+
+
+ ⚠️ Important:
+ If you forget your new password, you will need to contact your administrator for a password reset. There is no self-service password recovery.
+
+
+
Theme Selection
+
+
While not part of the User Settings page itself, you can change your visual theme at any time using the theme selector in the navigation bar.
+
+
Available Themes
+
+
+
+
+
Theme
+
Description
+
When to Use
+
+
+
+
+
Light
+
Light backgrounds with dark text
+
Well-lit environments, daytime use
+
+
+
Dark
+
Dark backgrounds with light text
+
Low-light environments, reduce eye strain
+
+
+
Auto
+
Automatically matches your system preference
+
Adapts to your OS dark mode setting
+
+
+
+
+
Changing Your Theme
+
+
+
Locate the theme selector dropdown in the top-right corner of the navigation bar
+
Position: between your username and the logout button (or between role selector and logout if you have multiple roles)
+
Click the dropdown to see available themes
+
Select Light, Dark, or Auto
+
The page will reload and apply your selected theme immediately
+
+
+
Your theme preference is saved to your profile and will persist across sessions.
+
+
+ 💡 Tip:
+ The Auto theme is recommended if your operating system already has a dark mode schedule. BackupChecks will automatically switch between light and dark themes based on your OS setting.
+
+
+
Role Switching
+
+
If you have multiple roles assigned, you can switch between them using the role selector in the navigation bar (not in User Settings).
+
+
The role selector appears in the top-right corner between your username and the logout button. Click it to select your active role.
+
+
See Users & Roles for detailed information about role permissions and switching.
+
+
Data Privacy
+
+
What Data is Stored?
+
+
BackupChecks stores the following user information:
+
+
+
Username (required for login)
+
Password hash (securely encrypted, never stored in plain text)
+
Assigned roles
+
Theme preference
+
Last active role
+
+
+
Who Can See Your Information?
+
+
+
You: Can view your own username and assigned roles
+
Administrators: Can view and edit all user profiles via Settings → User Management
+
Other Users: Cannot view your profile or personal information
+
+
+
Data Retention
+
+
Your profile data is retained as long as your account exists. If your account is deleted by an administrator, all associated profile data is removed.
+
+
Troubleshooting
+
+
Can't Change Password
+
+
Possible causes:
+
+
Current password is incorrect: Verify you're entering your current password correctly (passwords are case-sensitive)
+
New password doesn't meet requirements: Ensure password meets minimum length (check with your administrator)
+
New passwords don't match: Verify both new password fields contain the exact same password
+
Browser autofill issue: Try typing passwords manually instead of using autofill
+
+
+
+ ⚠️ Forgot Your Password?
+ If you cannot remember your current password, contact your administrator. They can reset your password via Settings → User Management.
+
+
+
Can't Access User Settings
+
+
Possible causes:
+
+
Session expired: Log out and log back in to refresh your session
+
Browser issue: Try a different browser or incognito/private mode
+
Username not clickable: Ensure you're clicking directly on your username text in the top-right corner
+
+
+
Next Steps
+
+
+
Users & Roles - Learn about user roles, permissions, and role switching
+ BackupChecks uses a role-based access control system to manage user permissions and access levels.
+
+
+
+ 📝 Coming Soon:
+ This page is under construction. Screenshots will be added in a future update.
+
+
+
User Roles Overview
+
+
BackupChecks supports four distinct user roles, each with specific permissions and access levels:
+
+
+
+
+
Role
+
Primary Purpose
+
Key Permissions
+
+
+
+
+
Admin
+
Full system administration
+
Complete access to all features, settings, user management, and system configuration
+
+
+
Operator
+
Daily backup operations
+
Review backups, manage customers/jobs, create tickets, view reports (no system settings)
+
+
+
Reporter
+
Reporting and analytics
+
View and generate reports only (no access to operational features)
+
+
+
Viewer
+
Read-only monitoring
+
View customers, jobs, and reports (cannot make changes)
+
+
+
+
+
Detailed Role Permissions
+
+
Admin Role
+
+
Administrators have unrestricted access to BackupChecks:
+
+
+
Manage users (create, edit, delete, assign roles)
+
Configure system settings (mail import, Autotask integration, UI timezone)
+
Manage customers and backup jobs
+
Review and approve backup runs
+
Create and manage tickets
+
Configure overrides and parsers
+
View audit logs and system maintenance features
+
Create news announcements
+
Access all mail (including deleted mails and archived jobs)
+
Export and import data
+
+
+
+ ⚠️ Security Note:
+ Admin access should be limited to trusted personnel only. Admins can modify critical system settings and access all data.
+
+
+
Operator Role
+
+
Operators handle day-to-day backup monitoring and validation:
+
+
+
View and manage customers
+
Configure backup jobs
+
Review backup runs and mark them as reviewed
+
Create and manage Autotask tickets for failed backups
+
Add remarks to backup runs
+
View and create reports
+
Manage inbox emails and approve jobs
+
Configure overrides for special cases
+
+
+
Operators cannot: Access system settings, manage users, view audit logs, or access deleted mails.
+
+
Reporter Role
+
+
Reporters focus exclusively on reporting and analytics:
+
+
+
View the dashboard
+
Create, schedule, and view reports
+
Access documentation, changelog, and feedback
+
+
+
Reporters cannot: Access operational features like inbox, customers, jobs, run checks, or tickets. The navigation menu shows only report-related items.
+
+
+ 💡 Use Case:
+ The Reporter role is ideal for management or stakeholders who need visibility into backup compliance without operational access.
+
+
+
Viewer Role
+
+
Viewers have read-only access to monitor backup status:
+
+
+
View customers and their backup jobs
+
View backup runs and their status
+
View tickets and remarks
+
View reports
+
Access documentation and changelog
+
+
+
Viewers cannot: Make any changes, create tickets, review backups, or access system settings.
+
+
Multiple Role Assignment
+
+
Users can be assigned multiple roles simultaneously. This provides flexibility for users who need different access levels at different times.
+
+
How Multiple Roles Work
+
+
+
A user can be assigned any combination of roles using checkboxes
+
When logged in, the user selects their active role from a dropdown in the navigation bar
+
The interface and available features adapt based on the selected active role
+
Users can switch between their assigned roles at any time
+
+
+
+ 💡 When to Use Multiple Roles:
+ Multiple roles are useful when a user occasionally needs different access levels. However, use sparingly - most users should have a single role that matches their primary responsibility.
+
+
+
Managing Users
+
+
User management is performed by administrators through the Settings page.
+
+
Creating a New User
+
+
+
Navigate to Settings → User Management (Admin only)
+
Scroll down to the Create new user section
+
Enter a Username in the username field
+
Enter a Password in the password field
+
Select one or more roles by checking the appropriate checkboxes:
+
+
Admin
+
Operator
+
Reporter
+
Viewer
+
+
+
Click the Create button
+
+
+
+
+ Figure 1: User Management interface showing role checkboxes and user creation
+
+
+
+ 📝 Future Feature:
+ Email address configuration for users is planned for a future update. The database field exists but is not yet available in the user interface.
+
+
+
Editing User Roles
+
+
+
Navigate to Settings → User Management
+
Find the user you want to edit in the list
+
Check or uncheck the role checkboxes to modify their assigned roles
+
The Current: line below the checkboxes shows the currently assigned roles
+
Click the Save button to apply the changes
+
+
+
+ ⚠️ Important:
+ Role changes take effect immediately. If you remove a user's current active role, they will be switched to their first remaining role automatically.
+
+
+
Resetting User Passwords
+
+
+
Navigate to Settings → User Management
+
Find the user whose password you want to reset
+
Click the New password button
+
Enter the new password in the dialog
+
Confirm the password change
+
+
+
The user can immediately log in with their new password.
+
+
Deleting Users
+
+
Administrators can delete user accounts via Settings → User Management.
+
+
+ ⚠️ Admin Account Protection:
+ If there is only one admin user in the system, that account is protected and cannot be deleted. BackupChecks requires at least one admin user at all times to prevent being locked out of system administration.
+
+
+
Role Switching
+
+
Users with multiple roles can switch between them using the role selector in the navigation bar (top-right corner, next to the username).
+
+
How to Switch Roles
+
+
+
Locate the role dropdown in the top-right corner of the navigation bar
+
Click the dropdown to see your assigned roles
+
Select the role you want to activate
+
You will be automatically redirected to the Dashboard page
+
The navigation menu, available features, and permissions update to match your active role
+
+
+
+ 💡 Why Dashboard Redirect?
+ When switching roles, you are automatically redirected to the Dashboard to prevent permission errors. This ensures you don't remain on a page you no longer have access to with your new role, which would require you to manually navigate away or refresh the page.
+
+
+
Best Practices
+
+
+
Principle of Least Privilege: Assign users the minimum role required for their responsibilities
+
Limit Admin Access: Only assign admin role to personnel responsible for system configuration
+
Use Multiple Roles Sparingly: While flexible, multiple roles can be confusing. Assign them only when necessary
+
Regular Audits: Periodically review user roles and remove access for inactive users
+
Document Role Assignments: Keep an external record of why users have specific roles
+
+
+
Common Role Assignment Scenarios
+
+
+
+
+
User Type
+
Recommended Role(s)
+
Rationale
+
+
+
+
+
System Administrator
+
admin
+
Needs full access to configure and maintain the system
+
+
+
Backup Team Lead
+
operator
+
Reviews backups daily, manages customers and jobs
+
+
+
Junior Backup Technician
+
operator or viewer
+
Assists with reviews or monitors status (depending on trust level)
+
+
+
Management/Stakeholder
+
reporter
+
Needs reports and metrics, not operational access
+
+
+
Auditor/Compliance
+
viewer
+
Needs to verify backup status without making changes
+
+
+
Power User
+
admin, operator
+
Needs both operational access and occasional system configuration (use sparingly)