Implementation Status
Truthful, feature-by-feature status for PestPilot Pro. Last updated July 2026.
43
of 59 features
7
of 59 features
6
of 59 features
3
of 59 features
External Credentials Required
The following integrations are built and ready — they just need real API keys to go live:
Email/password signup & login
BetterAuth with hashed passwords, session cookies, remember-me.
Forgot / reset password flow
UI and API built. Emails require SMTP credentials (SMTP_HOST, SMTP_USER, SMTP_PASS).
Role-based redirect after login
Owner → /dashboard, Technician → /tech, Customer → /portal.
Google / GitHub OAuth
Commented out in auth config. Requires GOOGLE_CLIENT_ID / GITHUB_CLIENT_ID.
Multi-company data isolation
companyId enforced server-side on all API routes via middleware.
16-step onboarding wizard
Progress tracked in DB. Save & resume supported.
Company profile (name, address, etc)
Full CRUD. Legal name, DBA, entity type, hours, timezone.
Logo upload
Uploaded to /shared-storage/public/assets/. Served via /airo-assets/uploads/.
Service area (ZIP, radius, territory)
Full CRUD with technician territory assignment.
Onboarding checklist dashboard
18-item tracker. Can launch with incomplete optional items.
Customer list (search, filter, page)
Paginated, searchable, sortable.
Customer detail page
Service history, invoices, photos, properties, billing tab.
Customer CRUD
Create, edit, deactivate. Full field set.
CSV / XLSX import wizard
Upload, column mapping, validation, dedup, rollback.
Customer portal (self-service)
Portal shell and routes exist. Appointment history and concern submission built. Payment portal is UI-only without Stripe.
Week / day / unscheduled schedule
Full calendar with drag-assign technicians.
Appointment CRUD
13-status enum, recurring appointments, status audit log.
Live dispatch board
Per-technician columns, color-coded status, auto-refresh (30s), date nav.
Recurring appointment generation
Recurring flag and frequency stored. Auto-generation of future appointments not yet scheduled.
Invoice create / edit / send
Full CRUD. Tax, discount, line items. Status workflow.
Record cash / check payment
Payments table, balance auto-updates, receipt.
Estimates (convert to invoice/job)
Estimate type, convert endpoint, full workflow.
Stripe card payments
Schema, billing profiles, and autopay consent built. Stripe Elements and charge execution require STRIPE_SECRET_KEY + STRIPE_PUBLISHABLE_KEY.
Payment reminder emails / SMS
Reminder logic not yet built. Requires email (SMTP) and/or Twilio credentials.
Customer autopay enrollment
Consent capture, billing profile, and card-on-file UI built. Actual charge execution requires Stripe.
Service agreement CRUD
Full create/edit/pause/cancel. Billing frequency, price, autopay toggle.
Consent capture & audit trail
billingConsents table. IP, user-agent, consent text, version stored.
Automatic recurring invoice generation
Requires a cron/scheduler. Schema and next_invoice_date fields are ready.
Automatic recurring charge execution
Requires Stripe. Schema ready.
PWA manifest + service worker
Add-to-home-screen, offline indicator, v2 service worker.
Today screen (job cards)
Full job cards, status workflow, balance collection, offline queue panel.
Schedule screen (5 views)
Today / Tomorrow / This Week / Completed / Follow-Ups.
Customer detail (tech view)
Hero, 3-stat bar, service history, access info, collapsible sections.
Payments screen
Outstanding balance, invoice list, collect cash/check, send payment link.
Service report (mobile)
Inspection findings, products applied, photo capture, finger-draw signature.
Offline queue + sync-on-reconnect
localStorage queue, dedup, max 5 retries, auto-sync on reconnect.
Office alerts on Today screen
Polls /api/technician/messages every 60s. Amber banner with dismiss.
Push notifications
Service worker push scaffolding in place. Requires VAPID keys + push subscription flow.
Office ↔ tech message threads
Two-pane chat UI, iMessage-style bubbles, read receipts, 20s auto-poll.
Office broadcast alerts
Broadcast to all techs or specific tech. Shown on tech Today screen.
SMS notifications
Requires Twilio (TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_FROM_NUMBER).
Email notifications
Requires SMTP credentials.
Employee CRUD (11 roles)
Full CRUD, deactivation, territory assignment.
Company licensing & QP tracking
All license types, expiration tracking, document upload, Qualified Party profiles.
Per-technician license tracking
Certifications, license-gated service assignment, scheduling warnings.
License expiration reminders
Dashboard alerts built (90/60/30/14/7/0 day). Email delivery requires SMTP.
Product CRUD
EPA numbers, active ingredients, inventory tracking, low-stock alerts.
Chemical application logging
Logged per service record. Quantity, unit, treatment location, target pest.
SDS document links
sdsUrl field stored. No PDF viewer built.
Custom service catalog
Full CRUD, all pricing types, license requirements, templates.
Service packages & plans
Bundles with billing/service frequency, contract terms.
Service type seeding (20 types)
All 20 spec service types seeded. Admin can add custom types.
Subscription plan tiers (4 plans)
Starter $79, Professional $149, Pro Plus $249, Enterprise contact-sales.
Coupon code system
DB table, admin CRUD, redemption at signup. SCOTT2025 pre-seeded (1-year free).
SaaS Stripe billing
Plan selection UI built. Stripe subscription creation requires STRIPE_SECRET_KEY.
Admin panel (/admin)
Company list, coupon management, plan management.
Dashboard KPIs
Revenue, jobs, customers, open invoices — live from DB.
Reports page
Basic revenue and job reports. Advanced filtering and export not built.
PDF invoice generation
Invoice data is complete. PDF rendering (e.g. Puppeteer/PDFKit) not implemented.