Loading...
Help Center / Getting Started / Inspections & Audits App Overview

Inspections & Audits App Overview

Inspections & Audits App Overview

Run quarterly safety, quality, and compliance inspections from a single mobile-first platform — with cycle-driven scheduling, multi-stage review, automated corrective actions, and AI-assisted template generation.


What is the Inspections App?

The Inspections app replaces paper checklists, spreadsheets, and email-driven approvals with a centralized workflow that handles the full lifecycle: cycle activation, in-field inspection capture, supervisor and manager review, returned-for-rework, and locked completion. Inspectors work on mobile (with offline support); supervisors and DC managers approve on desktop or mobile; admins configure templates, workflows, and cycles.

Core Value Proposition:

  • 🎯 Cycle-driven scheduling — Quarterly, annual, or monthly cycles trigger notifications and bound inspection records, separate from individual checklists.
  • 🔁 Multi-stage review with rework loop — Configurable N-level approval workflow per template. Reject sends the same record back to the inspector for revision.
  • 🤖 AI-assisted templates — Generate checklists from natural-language prompts or convert PDFs to inspection templates.
  • 📱 Mobile + offline — Inspectors work in the field with photo capture, GPS, signatures, and offline sync.

At a Glance

⏱️ Setup Time 🔗 Integrations 📱 Mobile Ready 🤖 AI Built-in
30 minutes 5 apps ✅ Yes ✅ Yes

Perfect For:

  • 🏢 Distribution centers & warehouses — Quarterly rack inspections with location/aisle scoping and DC-manager sign-off
  • 🛡️ Safety officers & compliance teams — OSHA-grade audits with regulatory KB-backed AI guidance
  • 🚚 Field service & fleet operations — Vehicle and asset inspections tied to AssetPro categories with barcode scan

How It Works

Quarterly Cycle Lifecycle

┌─────────────────────────────────────────────────────────────────────────┐
│                       INSPECTION CYCLE LIFECYCLE                        │
├─────────────────────────────────────────────────────────────────────────┤
│   ┌──────────────┐         ┌──────────────┐         ┌──────────────┐    │
│   │   DRAFT      │───▶     │   ACTIVE     │───▶     │  COMPLETED   │    │
│   │ Admin builds │         │ Notifications │         │ Auto on date │    │
│   │ + audience   │         │ fire; queue   │         │ or all done  │    │
│   └──────────────┘         │ banner shown  │         │ (configurable│    │
│                            └──────┬────────┘         │  per cycle)  │    │
│                                   │                  └──────┬───────┘    │
│                                   │                         │            │
│                                   ▼                         ▼            │
│                            ┌──────────────┐         ┌──────────────┐    │
│                            │ Inspectors   │         │  ARCHIVED    │    │
│                            │ create + run │         │ Read-only    │    │
│                            │ inspections  │         │ history      │    │
│                            └──────────────┘         └──────────────┘    │
└─────────────────────────────────────────────────────────────────────────┘

Multi-Stage Review Flow

┌─────────────────────────────────────────────────────────────────────────┐
│                    INSPECTION → APPROVAL → COMPLETION                   │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│   Inspector              Supervisor              DC Manager             │
│       │                      │                       │                  │
│   in_progress ──submit!──▶ in_review ──approve──▶ in_review ──approve───┤
│       ▲                      │                       │                  │
│       │                      ▼                       ▼                  │
│       └─────reject──── returned-for-rework ◀─────reject─────────────────┘
│                                                          ▲              │
│                                                          │              │
│                                                      completed          │
│                                                      (locked)           │
└─────────────────────────────────────────────────────────────────────────┘

Integration Ecosystem

                              ┌──────────────────┐
                              │   INSPECTIONS    │
                              └────────┬─────────┘
                                       │
         ┌──────────────┬───────────────┼───────────────┬──────────────┐
         ▼              ▼               ▼               ▼              ▼
   ┌───────────┐  ┌───────────┐   ┌───────────┐   ┌───────────┐  ┌───────────┐
   │  Tasks    │  │ AssetPro  │   │ Training  │   │  Forms    │  │ Governance│
   │ (CAs sync │  │ (asset    │   │ (training │   │ (form     │  │ (template │
   │  to Tasks)│  │  scan +   │   │ prereq +  │   │ template  │  │ staleness │
   │           │  │  history) │   │ remed.    │   │ alt path) │  │ reviews)  │
   └───────────┘  └───────────┘   │ assign)   │   └───────────┘  └───────────┘
                                  └───────────┘

Key Features

🌟 Inspection Cycles (NEW — Phase 1)

Cycles are the timing/communication trigger that announces “the inspection period is active” — separate from individual inspection records.

Feature Description
Cycle types quarterly, annual, monthly, custom (InspectionCycle::CYCLE_TYPES)
Audience filter Configurable per cycle: by user_business role, organizational role, or explicit user list (Inspections::CycleNotificationService)
Pivot field Dashboard groups inspections by location, asset, or inspector (InspectionCycle.pivot_field)
Close behavior Manual / auto-on-end-date / auto-when-all-complete (InspectionCycle.close_behavior)
Active cycle banner Surfaces in My Inspections with one-click “Start Inspection” CTA pre-populated with the cycle’s template
Cycle dashboard Per-pivot progress card (not started, in progress, in review, completed) — admin view

Use Case: A distribution center company runs Q1, Q2, Q3, Q4 rack inspection cycles. Each cycle activates on its start date, fires email + in-app notifications to maintenance staff at participating DCs, and bounds all rack inspections completed during the window.

💡 Pro Tip: Set cycle_managed: true on the inspection template so the location/asset schedulers don’t auto-create duplicate inspection records — the cycle owns the timing.


🔁 Multi-Stage Review Workflow (NEW)

Templates can opt into an N-level review workflow. Without one, inspections complete directly (backward compatible).

Capability Where
Submit for review Inspection#submit! (in_progress → in_review, creates ApprovalRequest)
Reviewer approve / advance level Desktop & mobile review card; API POST /review/approve; agent tool
Reviewer reject with comment Comment required; returns inspection to inspector
Returned-for-rework Same record edited and resubmitted (no copy); rejection comment surfaced inline on conduct page
Audit trail metadata['workflow_history'] array + ApprovalAction rows per decision
Reviewer eligibility Role + Location via ApprovalLevel.routing_conditions["location_scope"]

Use Case: A maintenance technician submits a rack inspection. Their supervisor approves at Level 1 (advancing to Level 2). The DC Manager rejects with “needs photo of beam B3.” The inspector sees the rejection on their My Inspections queue, opens the same inspection, addresses the feedback, resubmits, and the supervisor and DC Manager both approve again — locking the record.


🤖 AI Agent — 26 Tools

The Inspections AI Agent is accessible via Ask AI and supports the full lifecycle:

Read-only tools:

  • list_inspection_templates, get_inspection_template
  • list_inspections, get_inspection, list_due_today_inspections, list_overdue_asset_inspections, list_upcoming_inspections
  • list_corrective_actions, get_corrective_action_details, get_compliance_summary
  • list_inspection_schedules, get_asset_inspection_history
  • list_inspections_awaiting_my_review, list_active_inspection_cycles
  • regulatory_qa, analyze_inspection_data

Write tools (require user confirmation):

  • start_inspection, start_asset_inspection, update_inspection_item
  • submit_inspection, approve_inspection_review, reject_inspection_review_with_comment
  • create_corrective_action
  • ai_generate_inspection_template, convert_document_to_template

All write tools are flagged in RISKY_TOOLS and require explicit confirmation before executing.

💡 Pro Tip: Ask “is the quarterly inspection cycle still open?” or “what inspections need my approval?” — the agent answers directly without you opening the app.


📋 Inspection Templates

Feature Description
Item types yes_no, checkbox, rating, text, number, slider, datetime, photo, signature, select, multi_select, instruction
Weighted scoring Per-item weight + auto-fail-on-no for critical items
Conditional visibility Items can show/hide based on prior responses (conditions JSONB)
Pass threshold Per-template, default 80%
Training prerequisite Optional required_training_course_ids — inspector must complete training before running the inspection
Remediation training Auto-assigns a remediation_training_course to the inspector when they fail
AI generation Generate full templates from a natural-language prompt
PDF import PdfToTemplateService extracts checklist items from existing PDF forms
Approval workflow Optional belongs_to :approval_workflow — opts the template into multi-stage review
Cycle-managed flag cycle_managed: true — schedulers skip these templates so cycles own the timing
Dynamic options select items can pull options from a query (e.g., aisle list = sub-locations of inspection’s DC)

🔧 Corrective Actions

Capability Source
Auto-create on failure FormIntegrationService.process_completion runs after inspection completes / approves
Tasks app sync Optional — corrective action creates a linked Task if auto_create_corrective_actions is enabled
Priority levels low / medium / high / critical
Status workflow pending / in_progress / completed / cancelled
Escalation tracking escalation_history JSONB on each action
Manual creation Inspector or manager can create CAs ad-hoc; gated by authorize_corrective_action_create

Mailers: corrective_action_assigned, corrective_action_overdue, corrective_action_completed.


📱 Mobile + Quick Scan

  • Mobile views: index (queue with cycle banner + returned-for-rework + awaiting-my-review sections), show (with reviewer approve/reject card), conduct, templates, my_actions
  • Quick Scan: Scan an asset barcode/QR to start an asset-tied inspection (apps/inspections/quick_scan/); requires AssetPro app
  • Photo capture + annotation: Field-level photo evidence with bounding-box / arrow annotations
  • GPS capture: latitude, longitude, accuracy, address, timestamp on each inspection
  • Offline-ready metadata: offline_created, synced_at flags on Inspection.metadata

🔗 Integrations

Integration Capability
Tasks Auto-creates linked Tasks for failed inspection items via FormIntegrationService
AssetPro Asset-tied inspections, Quick Scan barcode entry, asset condition tracking before/after
Training Prerequisite training course gate; remediation course auto-assigned on failure
Forms (MaForms) Templates can use MaForms::FormTemplate as the field set instead of native item model
Governance Inspections::GovernanceAdapter scans InspectionTemplate for staleness and broken-link reviews
Notifications Cycle start, scheduled inspections, inspection completed, failed alert, overdue, weekly digest, CA assigned/overdue/completed

📊 Analytics & Reports

Dashboards (apps/inspections/{compliance_dashboard,compliance_by_location,compliance_by_category,compliance_trends,analytics,reports}.html.erb):

  • Compliance pass rate (by team, location, category, time)
  • Inspector performance report
  • Category summary report
  • Failed-item heatmap
  • Cycle progress board (per pivot field)

AI insights: analyze_inspection_data agent tool — pattern recognition across inspections.

Exports: CSV (list + per-inspection details) and PDF (executive summary + items + photos + signatures + audit trail) via Inspections::CsvExportService and Inspections::PdfExportService.


🔔 Notifications

Mailer Method Triggered
cycle_started When Inspections::CycleStarterJob activates a cycle
inspection_completed When an inspection finishes (or final approval lands)
inspection_failed_alert Score below pass threshold
critical_failure_alert Auto-fail-on-no item triggered
corrective_action_assigned/overdue/completed CA lifecycle events
scheduled_inspections_notification Daily summary of newly assigned inspections from schedulers
scheduled_inspection_reminder Pre-due reminder
overdue_inspection_alert Past due_at without completion
weekly_compliance_summary Manager digest

All notifications use NotificationDelivery.should_notify? for dedup. Cycle reminders fire in phases (mid_cycle, late_week_1..4) — one per audience member per phase.


🤖 Background Jobs

Job Schedule Purpose
Inspections::CycleStarterJob Daily 06:15 UTC Activates due cycles, dispatches notifications, auto-completes per close_behavior
Inspections::CycleReminderJob Daily 14:00 UTC Sends mid-cycle and late-cycle reminders
Inspections::AssetInspectionSchedulerJob Daily Generates inspections from AssetPro category schedules
Inspections::LocationInspectionSchedulerJob Daily Generates inspections from InspectionSchedule records
Inspections::ProcessCompletionJob On-demand Runs FormIntegrationService after a review-flow inspection completes

All jobs respect cycle_managed templates — cycle-driven templates aren’t auto-created by the schedulers.


User Roles & Permissions

Role Capabilities
Maintenance / Inspector Create + run own inspections; resubmit returned-for-rework; complete corrective actions assigned to them; view their queue with cycle banner
Supervisor (inspections_supervisor or manager_or_above?) Approve / reject Level 1 inspection reviews; view team inspections (location-scoped); manage schedules and templates
DC Manager (inspections_dc_manager or location-scoped manager) Final approval / rejection at Level 2; same team-view as Supervisor
Inspections Admin (inspections_app_admin?) Cross-DC visibility (“All Business Locations” dropdown); manage templates, workflows, cycles, regulatory KB, settings
Business Admin Full access including app config, license toggles, audit

Role + location scoping is enforced via ApprovalLevel.routing_conditions["location_scope"] and Inspections::TeamScopeService.


How We Compare

How the MangoApps Inspections app stacks up against leading inspection / safety audit platforms:

Feature MangoApps Workforce iAuditor (SafetyCulture) Veriforce (formerly Lighthouse) Intelex
Cycle-driven inspection periods ⚡ (schedules only)
Multi-stage approval workflow
Returned-for-rework on same record
AI-generated templates from prompt
PDF → template extraction
Photo annotation in field
Offline mobile capture
Integrated training prerequisites
Auto-task creation for failures ⚡ (paid tier)
Built-in regulatory KB Q&A
No per-feature pricing 💰 💰 💰
Legend: ✅ Included ❌ Not Available 💰 Paid Add-on ⚡ Limited

Why MangoApps Workforce?

  • 🔗 One platform, no integrations to maintain — Inspections, Tasks, Training, AssetPro, and Governance live in the same database
  • 🤖 AI is native, not bolted on — Template generation, regulatory Q&A, and pattern analysis use the same Ask AI sidebar your team already uses
  • 🏷️ Single license, all features — No per-module add-ons; cycle workflow, AI, mobile offline, analytics included
  • 🔄 Generic by design — The cycle + review framework works for racks, fire safety, vehicles, food prep, lab QC — same code, different templates

Getting Started

For Inspectors (Mobile)

  1. Open /m/apps/inspections from your phone
  2. Tap the active cycle banner to start a new inspection (or tap “+ New Inspection” for ad-hoc)
  3. Pick the location from the dropdown, walk the floor, capture photos, and answer items
  4. Tap Submit for Review — your inspection routes to the Supervisor automatically
  5. Watch My Inspections for “Returned for Rework” — address feedback and resubmit

For Supervisors / DC Managers

  1. Open My Inspections — your “Awaiting My Review” section shows pending items
  2. Tap an inspection, review items + photos, then Approve or Reject with a comment
  3. Approved → advances to the next reviewer or completes; rejected → returns to inspector

For Administrators

  1. Go to Inspections > Settings and enable cycles + AI features
  2. Build (or AI-generate) the inspection template; set cycle_managed: true if cycle-driven
  3. Configure the approval workflow — add Levels with role + location routing
  4. Create the first cycle: pick template, dates, audience filter, close behavior
  5. Activate the cycle — notifications fire, queue banners appear for participants

Best Practices

  • Use cycles for recurring inspections — Quarterly racks, annual fire safety, monthly vehicle. Use schedules for ad-hoc recurring drives.
  • Set cycle_managed: true on templates that participate in cycles — prevents the schedulers from creating duplicates.
  • Configure audience filter narrowly — Use organizational role + location_ids on the cycle, not “all admins” — reduces email fatigue.
  • Require comments on rejection — Built-in. The Reject modal won’t submit without a reason.
  • Use approver_user_ids for the pilot — Explicit user assignment is simpler than role + location for a 2-DC pilot. Promote to approver_roles when scaling.
  • Auto-close cycles by date — Set close_behavior: 'on_end_date' so admins don’t have to remember to mark cycles complete.
  • Photo evidence on critical itemsrequires_photo: true for safety-critical checklist items.

Frequently Asked Questions

Q: How is a cycle different from a schedule?
A: A schedule (InspectionSchedule) auto-creates inspection records on a cron — useful when you want a daily forklift check generated automatically. A cycle (InspectionCycle) is a notification + bounding window — it announces the period and provides a queue banner for users to create inspections on demand. Templates marked cycle_managed: true opt into the cycle model and are skipped by schedules.

Q: Can a template have BOTH a workflow and direct-complete?
A: No — a template either has an approval_workflow_id attached (review flow) or it doesn’t (direct-complete on submit). The decision is per-template, not per-inspection. Existing templates without a workflow continue to complete directly.

Q: What happens to corrective actions during the review flow?
A: They’re created when the inspection reaches :completed, not when the inspector submits. For review-flow inspections, that’s after the final reviewer approves. Inspections::ProcessCompletionJob runs the same FormIntegrationService async whether the path was direct-complete or post-approval.

Q: Can I have more than two reviewer levels?
A: Yes — ApprovalWorkflow supports any number of levels. The 2-level (Supervisor → DC Manager) flow is one customer’s seed. A fire-safety customer might use 1 level (Safety Officer); a regulated industry might use 3 (Tech → Compliance → Audit).

Q: How does location scoping work for reviewers?
A: Each ApprovalLevel can set routing_conditions: { "location_scope": "approvable.location_id" }. A user is eligible to review if they’re in the level’s approver_user_ids or have a matching approver_role, AND they’re assigned to the inspection’s location via UserLocation. App-admins (inspections_app_admin?) bypass location scoping for cross-DC visibility.



Inspect with confidence. Review with accountability. Audit with evidence.

Ask AI Product Advisor

Hi! I'm the MangoApps Product Advisor. I can help you with:

  • Understanding our 40+ workplace apps
  • Finding the right solution for your needs
  • Answering questions about pricing and features
  • Pointing you to free tools you can try right now

What would you like to know?