CrewOS - Field Service management
Field service ops without the SaaS bill.
CrewOS is a self-hosted job, dispatch & invoicing system for plumbers, electricians, HVAC, and other service trades. Buy once. Run on the same shared host as your website.
Three reasons crew owners switch.
You're tired of paying $80/seat/month. You want your customer list on your own server. You want to brand the app yourself. CrewOS does all three.
One-time price.
Buy the license once. Add as many users as your hardware supports — no per-seat tax. The pricing model that made WordPress dominant, applied to field service.
Your data, your server.
The MySQL database lives on your hosting account. No third party can be subpoenaed for your customer list. No vendor lock-in: leave with a database dump.
Brand it as your own.
Brand colour, mail identity, currency, app name — all changeable from Settings, so your install looks like your own.
Everything a service crew runs on, in one app.
Jobs. Customers. Quotes. Invoices. Dispatch. Inventory. Customer portal. Reports. AI. SMS. We didn't strip features into "tiers" — it's all in the box.
Job tracking, end to end.
Kanban board, schedule view, status audit log, line items, photo + file attachments. One-click conversion to a quote or invoice.
Dispatch & routing
Schedule strip, GPS tracking, greedy nearest-neighbour route planner.
Outbound SMS
Twilio when configured, DB-logged fallback when not. "On my way" + ETA in one click.
AI assistant
OpenAI · Anthropic · Ollama (local). Quote drafting, smart dispatch, customer-friendly summaries. Degrades to deterministic fallback when no key is set.
Estimates & invoices
Tiered quotes, line items, tax, discount + tip, payments, A/R aging.
Customer portal
Token URLs — accept/reject quotes, view invoices & equipment history.
How dispatchers actually use it.
Three of the most-used screens. (Dozens more in the catalog below.)
Kanban board by job status
Move a job from Scheduled to In progress with the status picker and a status-change automation can fire an SMS to the customer. Status changes are written to a log so you can answer "when did Marcus get to the Henderson site?" without guessing.
- Move between statuses; every change is logged (audit trail)
- Search by job, customer, or technician
- One-click "create invoice from this job"
Routes that don't need a Google API key
The route planner uses a pure-PHP nearest-neighbour optimiser — no external API key required. Plug in Mapbox or Google later for satellite tiles, but the optimisation runs locally on the same shared host.
- Greedy nearest-neighbour, no API spend
- Optional Mapbox / Google tiles for richer maps
- One-click optimise per technician by day
Customer portal without a customer login
Send a token URL, the customer clicks once and accepts the quote — the work's approved without a password to forget, an app to download, or a SaaS-side identity to mediate. Same pattern for viewing invoices, equipment history, and leaving feedback.
- Token URL (40 random chars) — no login screen
- Accept / reject quotes, view invoices & equipment
- Optional CSAT / NPS form on completed jobs
Service trades that hate SaaS pricing.
If your shop runs trucks and bills by the job, CrewOS fits.
Plumbing & drain
Track jobs by site, attach equipment history, send "on my way" SMS on dispatch.
Electrical
Tiered estimates (Good · Better · Best), service agreements for commercial accounts.
HVAC
Recurring maintenance jobs, equipment-per-location with warranty & next-service date.
Landscape & lawn
Weekly recurring routes, route optimiser, simple online booking widget.
What you give up by leaving the cloud.
The honest comparison. Some SaaS features (vendor-managed mobile app, auto-scaling) you actually do trade away.
| Capability | CrewOS · self-hosted | Jobber / Housecall | ServiceTitan |
|---|---|---|---|
| One-time price | ✓ Lifetime | $80–$300/seat/mo | $400+/seat/mo |
| Customer data on your server | ✓ | ✗ | ✗ |
| Rebrand your own install | ✓ | ✗ | ✗ |
| Source code included | ✓ | ✗ | ✗ |
| SMS & AI included (BYO key) | ✓ | Add-on | Add-on |
| Customer portal | ✓ (token URL) | ✓ | ✓ |
| Vendor-managed mobile app | PWA only | ✓ Native | ✓ Native |
| Vendor-managed updates | You ship them | ✓ | ✓ |
The whole product, in one download.
/install — license, DB, admin, done/ — Blade view you can edit or swapBoring, well-supported stack.
Everything in here you can hire for. No bespoke runtime.
What lives where, and who can see it.
Customer data, jobs, invoices — all in your MySQL. We can't be subpoenaed. No vendor analytics packets phoned home.
Twilio, OpenAI and Anthropic credentials saved through Setting::put(..., encrypted: true) with the framework's APP_KEY. (QuickBooks is configured in .env.)
Four roles out of the box — admin, manager, dispatcher, technician. Permissions seeded; gate every screen.
Job, Customer, Quote, Invoice, Payment lifecycle events written to audit_logs. Answer "who changed this and when".
One-click JSON data export per customer; admin can erase a customer's PII (anonymise + soft-delete) from the UI.
TOTP support shipped — flip on per user from Settings → Two-factor auth.
One purchase. The whole catalog.
40+ modules organised in 5 capability groups. No add-ons, no per-feature gates, no upsell screens.
Track work
11 modulesJobs & kanban
Full lifecycle, status audit log, status board.
Schedule board
Day view by technician; assign & dispatch jobs.
Recurring jobs
Weekly · biweekly · monthly · quarterly · yearly templates.
Online booking
Public widget at /book, no login required.
Service locations
Multiple addresses per customer with per-site equipment.
Equipment per site
Model · serial · install date · warranty · next service.
Job photos & files
10 MB each, attached to job timeline.
Job checklists
Per-job tasks with completion tracking.
Job comments
Internal notes + status-change log per job.
Service agreements
Annual contracts, scheduled visits, recurring revenue.
Workflow rules
"When status = X, send Y." Triggered server-side.
Get paid
7 modulesQuotes
Line items, tax, accept/reject lifecycle.
Tiered estimates
Group quote line items into Good · Better · Best tiers.
Invoices
Tax, discount, tip, partial payments. Draft → sent → paid.
Payments
Manual payment tracking against invoices; integration-ready for a gateway.
A/R aging
Current · 1-30 · 31-60 · 61-90 · 90+ buckets.
Profitability report
Job-level revenue minus labour + parts.
QuickBooks sync
One-way customer + invoice export. Adapter pattern.
Customers & comms
10 modulesCustomers
Residential + commercial, lifetime revenue, tags.
Customer portal
Token URLs — quote, invoice, equipment, feedback.
CSV import
Preview first 10 rows, validate, import.
SMS
Outbound Twilio. DB-logged fallback when no key.
"On my way" SMS
One click, ETA-aware, customer gets notified.
Call dialer
Click-to-call + log per customer.
Direct mail
Print a postcard to mail, or email it to the customer — no third-party service.
Reminders
Auto-reminders before scheduled jobs.
Feedback / NPS
Post-job CSAT + NPS, customer-facing form.
Referrals
Shareable codes, auto-issued rewards, and referrer + new-customer invoice discounts.
Crew & ops
8 modulesTechnicians
Skills, hourly rate, today-availability toggle.
GPS tracking
Live location grid + ping log endpoint.
Inventory
Stock levels, reorder alerts, +/- adjustments.
Route planner
Pure-PHP nearest-neighbour. No Google API needed.
Services catalog
Reusable service items with default pricing.
Templates
Reusable email · SMS · job templates.
Automations
Recurring jobs, "if status X then Y" triggers.
Leads board
Sales pipeline before lead → customer conversion.
Insight & admin
11 modulesDashboard
Today's jobs · open jobs · overdue invoices · month revenue · trend chart.
Reports
Revenue, jobs done, top customers/techs, profitability, aging.
Marketing campaigns
Track lead-source channels & cost; attribute customers.
Audit log viewer
Filter by user, model, action, date range.
Settings panel
General · SMS · AI · 2FA · users & roles · API tokens.
Custom fields
Add your own fields to customers, jobs & more — no code.
Users & roles
Create users, assign role, enable/disable, set-password email.
Companies / locations
Manage company records; assign users to a company.
Two-factor auth
TOTP via Fortify — opt-in per user.
Webhooks (HMAC)
Signed event delivery to subscriber endpoints.
API tokens
Sanctum-protected REST API at /api/v1/...
Before you buy.
Will it run on my cPanel / Hostinger / SiteGround host?
Yes. The whole point of CrewOS is shared-hosting compatibility. PHP 8.3+, MySQL 5.7+, no Redis, no Postgres-only features, no Reverb websockets, no Horizon. Queue / cache / session all use the database driver. The 5-step web installer handles the database setup so you don't need SSH.
What's the license cover? Can I install on multiple sites?
The standard AppTrovo license covers one production install. The wizard locks the license to the install domain on activation. If you move to a new domain, contact AppTrovo support to release the activation.
Can I rebrand the app?
Yes. App name, brand colour, currency, and the mail "From" identity are all settings. The source isn't obfuscated, so you can fully restyle your own install to look like your own. (For redistribution / resale rights, check the license terms on the AppTrovo listing.)
Does the AI cost extra?
No — the AI assistant is included in the box. You bring your own OpenAI / Anthropic / Ollama key (your billing relationship, not ours). Without a key, the AI features degrade to deterministic fallback (still functional, just not LLM-powered).
What about SMS? Twilio is paid, right?
Twilio billing is separate (your account, your spend). Without Twilio credentials, outbound "SMS" still works — it's logged to a Messages table so you have a record of what would have been sent. Useful for staging environments.
How long is the support window?
Six months of email support included. After that, support renewals are available on the AppTrovo listing page. Critical security updates ship to all license holders regardless of support status.
What's your refund policy?
AppTrovo honours refund requests within 30 days of purchase if the product doesn't deliver as advertised. Refunds are processed by AppTrovo, not by us — start a refund request from your AppTrovo account.
Can I export my data if I want to leave?
Yes. Admin → Data export gives you a one-click JSON export per customer. The MySQL database is yours — mysqldump works fine. No vendor lock-in.
Is there a mobile app?
The app is a Progressive Web App — it installs to the home screen on iOS / Android and works offline for cached pages. There is no native mobile app. If you need native, that's a SaaS competitor's strength.
Are tests included? Can I extend the app safely?
Yes — 630+ Pest tests ship with the source (Unit + Feature + Browser). PHPStan level 5 baseline included. The CI pipeline (GitLab YAML) is in the repo as a starting point, so adding new modules is straightforward.
Demo-Zugangsdaten
| Rolle | Benutzer | Bestanden |
|---|---|---|
| Admin |
demo@crewos.test
|
|
| Manager |
manager@crewos.test
|
|
| Dispatcher |
dispatch@crewos.test
|
|
| Technician |
marcus@crewos.test
|
Kommentare (0)
Anmelden, um zu kommentieren
Anmelden →Noch keine Kommentare. Seien Sie der Erste!