Project Hours — Quoted vs Actual actual = true hours from tickets
Recent Tickets
| Ticket | Customer | Tech | True / Billed | Billing |
|---|
Customer / Lead Master Database search name, contact, phone, email, address
| ID / Company | Contact | Phone / Email | Type · Status | Created |
|---|
📨 Sales Inbox web form + email inquiries → one-click lead
➕ New Customer / Lead controlled form — techs use this via the agent too
Lead pipeline: New → Contacted → Quoted → Won/Lost. Customers: Active / Inactive. Leads auto-convert to Active customers on first dispatch.
Quote Management QUO-YY-#### · Accepted quotes convert to projects with one click
| Quote | Customer | Amount | Hours | Date | Status |
|---|
➕ New Quote
Draft → Sent → Accepted/Declined. Accept & Convert creates the project with the quoted hours and links the quote reference.
Contract & SLA Management SLA targets surface on every ticket for covered customers
| Contract | Customer | Type | Monthly | Term | SLA response (P1/P2/P3) | Status |
|---|
➕ New Contract
Schedule — 7-Day Board dispatched tickets + project start dates · click a chip to open · calendar sync on roadmap
Unscheduled / Open Work Queue open tickets — what techs will see in Telegram each morning
Task Management internal to-dos linked to projects, quotes, or tickets
| Task | Assignee | Due | Linked to | Created |
|---|
➕ New Task
IT Documentation · Knowledge Base · Runbooks one searchable library, three document types
| Doc | Type | Customer | Tags | Updated |
|---|
➕ New Document
Runbooks are what the Telegram agent will read back to techs on site ("how do I recover this NVR?") — same library, conversational delivery.
Projects PRJ-YY-#### · reopen any completed project for warranty / follow-up
| Project | Customer | Lead Tech | Quoted | Actual | Remain | % Used | Status |
|---|
➕ New Project Request techs can request via agent; office approves
📋 Work Order
👷 Technician Roster cost rate = internal payroll · bill rate = customer-facing
| Technician | Position | Cost rate | Bill rate | Status |
|---|
Dispatch Preview
Dispatch creates an open ticket per tech (TKT-YY-####) and, in production, pushes the work order to their Telegram. The tech closes it out from the truck — via this site's mobile-friendly ticket form or conversationally with the agent.
Ticket Log every time entry = unique TKT-YY-#### · edit = logged correction
| Ticket | Date | Tech | Customer | Type | True / Billed | Status |
|---|
⏱ New Time Entry / Ticket mobile-friendly tech form
⚖️ This Entry — True vs Billed
Billing Report Filters billing status persists — stop mid-billing and come back later
Billing Report
| Ticket | Project | Customer | Tech | True hrs | Billed hrs | Materials Used | Work Description | Billable | Billing Status |
|---|
⚙️ Rate Settings
Timesheet Report payroll uses TRUE fractional hours
| Technician | Position | Total Hours (true) | Billable Hours | Non-Billable Hours | Billed to Customers | Est. Labor Cost |
|---|---|---|---|---|---|---|
Detail tickets in selected range
| Ticket | Date | Tech | Customer | Work type | True | Billed | Billable |
|---|
Report Filters applies to all reports below · submitted tickets only
Revenue & Margin by Technician
| Technician | True | Billed | Uplift $ | Revenue | Cost | Margin |
|---|
Revenue by Customer
| Customer | Tickets | Billed hrs | Revenue | Margin |
|---|
Hours by Work Type billable vs non-billable mix
| Work type | Tickets | True hrs | Revenue | Billable |
|---|
Pipeline & Project Health
| Project | Quoted | Actual | % Used | Status |
|---|
The conversational path for ticket close-out. The tech gets the dispatched work order in Telegram and the agent collects everything the ticket form requires — start/end time, work type, materials (required, N/A allowed), description, status after visit — logging true fractional hours for payroll and rounded-up billed hours automatically. Same database as the web form.
🧠 Live extraction
📦 Staged ticket payload → QuickBooks / Halo
DiegoTech Operations — Production Architecture
This demo implements the workflows validated in the Google Sheets/Forms/Apps Script prototype on a scalable footing. Full technical scope in TELEGRAM_AGENT_SCOPE.md.
Platform Coverage Matrix the 17 target areas → where each lives today
| Area | Where in the app | Status |
|---|---|---|
| Service desk / ticketing | Tickets / T&E + Dispatch — TKT-YY-#### lifecycle, corrections, visit statuses | Live |
| Lightweight CRM | CRM & Sales — lead pipeline (New→Won/Lost), customers, created-by audit | Live |
| Sales inbox | CRM & Sales — web/email inquiries, one-click convert to lead | Live |
| Quote management | Quotes — Draft→Sent→Accepted/Declined, one-click convert to project | Live |
| Project management | Projects — quoted/actual/remaining hrs, status history, reopen for warranty | Live |
| Contract management | Contracts · SLA — terms, monthly value, covered services | Live |
| SLA management | Contracts · SLA — P1/P2/P3 response targets, auto-surfaced on tickets for covered customers | Live |
| Scheduling | Schedule — 7-day board + open work queue | Live calendar sync roadmap |
| Task management | Tasks — assignees, due dates, linked to PRJ/TKT/QUO records | Live |
| IT documentation | Docs · KB — per-customer network maps, credentials pointers, environment docs | Live |
| Knowledge base | Docs · KB — searchable articles with tags | Live |
| Unified runbooks | Docs · KB — Runbook type; agent reads them to techs on site (phase 2) | Live |
| Business reporting | Reports — revenue/margin by tech, customer, work type; uplift; pipeline; project health | Live |
| Invoice management | Billing — persistent statuses, filtered reports, branded draft invoices | Live |
| Time tracking (QB Online) | Dual-time engine live everywhere; true hrs → QBO TimeActivity | Engine live · QBO sync scoped |
| Automated billing (QB Online) | CSV export today; draft-invoice push via QBO API | Scoped — phase 3 |
| Service automation | Rules engine: warranty→non-billable, lead auto-convert on dispatch, round-up billing, materials-required gate, SLA badges, Telegram agent close-out | Live · expanding |
Business rules encoded
- IDs: tickets TKT-YY-#### · projects PRJ-YY-#### · customers/leads CL-YY-####, all sequential per year.
- Billable logic: Warranty, Admin, Training, and DiegoTech Internal work types default non-billable; everything else billable (overridable per ticket).
- Dual time: true fractional hours (payroll, project actuals, costing) and billed hours rounded up to the next whole hour (invoice).
- Materials required on every ticket — "N/A" accepted, blank rejected.
- Billing statuses persist (Not Invoiced → Pending → Invoiced → Paid) so billing can be done in sittings.
- Projects reopen for warranty/follow-up; every status change is kept in history.
- Corrections: ticket edits are flagged and timestamped, never silently overwritten.
Roadmap (placeholders visible in app)
- Scheduling / calendar sync — dispatch board → Google Calendar/Outlook; tech sees open work queue in Telegram.
- Mobile app — this site is already mobile-friendly; a PWA or AppSheet-style wrapper is the upgrade path.
- QuickBooks integration — true hrs → TimeActivity, billed lines → draft Invoice, statuses sync back (Invoiced/Paid).
- Payroll — PTO, holidays, OT after 40 hrs/week, pay-period presets on the Timesheet report.
- Owner dashboards — margin by tech/customer/work type, rounding-uplift capture, project burn-down.