Supergood | Total Office Manager API

Supergood | Total Office Manager API

Programmatically access Total Office Manager customer records, dispatch tickets, equipment, inventory, and billing with a stable REST API. Supergood builds and operates production-grade, unofficial Total Office Manager integrations so your team can automate field and office workflows without heavy custom engineering.

Plain English: Total Office Manager is an all‑in‑one field service management and accounting platform used by HVAC, plumbing, electrical, and mechanical contractors to run their businesses end‑to‑end. An unofficial API lets you pull customers and service locations, work orders and schedules, technician timesheets, equipment and service agreements, items and warehouses, invoices and payments—and push new jobs, status updates, invoices, and inventory activity back into Total Office Manager.

For a tech company integrating with Total Office Manager, this means you can ingest real‑time dispatch and job status to power dashboards, create service tickets from IoT alerts or customer portals, sync invoices and payments to your ERP or billing system, and enrich your product with asset histories and maintenance plans. You can also push schedule changes, upload job photos and documents, renew service agreements, and keep stakeholder systems (accounting, analytics, mobile apps) in lockstep.

What is Total Office Manager?

Total Office Manager (https://www.totaloffice.com/) is a comprehensive platform for field service and specialty contracting that combines CRM, dispatching and scheduling, inventory and purchasing, job costing, and full back‑office accounting. Teams use it to manage customers and service locations, dispatch technicians, track equipment and service agreements, process invoices and payments, and maintain inventory across warehouses and trucks.

Core product areas include:

  • CRM & Locations (customers, service sites, contacts)
  • Dispatching & Scheduling (work orders, calendar/board, technician assignment)
  • Financials (invoices, payments, credit memos, terms, taxes)
  • Items & Inventory (inventory/non‑inventory/service items, warehouses, trucks, POs)
  • Equipment & Service Agreements (assets, warranties, maintenance plans)
  • Field Operations (mobile work order execution, time cards, photos/attachments)
  • Job Costing & Reporting (labor/parts allocation, profitability)

Common data entities:

  • Customers, Contacts, and Service Locations
  • Work Orders/Service Tickets, Statuses, and Assignments
  • Technicians/Employees and Timesheets
  • Invoices, Line Items, Payments, and Taxes
  • Items (Inventory, Non‑Inventory, Services), Warehouses/Trucks, Purchase Orders
  • Equipment/Assets with serials, models, and warranties
  • Service Agreements/Contracts and scheduled visits

The Total Office Manager Integration Challenge

Field service teams rely on Total Office Manager daily, but turning portal‑first workflows and on‑premise deployments into API‑driven automation is non‑trivial:

  • Module‑specific UX and permissions: Dispatch board, accounting, and inventory each have distinct entitlements and data views
  • On‑prem and hybrid environments: Desktop and web components, plus mobile extensions, complicate headless access and session continuity
  • Financial rigor: Taxes, terms, periods, and audit trails must be respected programmatically
  • Inventory complexity: Multi‑warehouse, truck stock, and serialized items require careful handling
  • Attachments and mobile artifacts: Job photos, signatures, and documents live behind authenticated flows

How Supergood Creates Total Office Manager APIs

Supergood reverse‑engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your Total Office Manager tenant.

  • Handles username/password, SSO/OAuth (where enabled), and MFA (SMS, email, TOTP) securely
  • Maintains session continuity with automated refresh, change detection, and role‑aware access
  • Normalizes responses so you can integrate once and rely on consistent objects across modules
  • Aligns with customer entitlements and permissions to ensure compliant access across dispatch, accounting, and inventory

Use Cases

Dispatch & Schedule Sync

  • Mirror customers, service locations, technicians, and calendars into your systems
  • Keep work order metadata current for routing, SLAs, and analytics
  • Update job statuses bi‑directionally (scheduled, en route, working, complete)

Ticket Automation from Portals and Sensors

  • Create work orders automatically from customer portals, call centers, or IoT alerts
  • Auto‑assign technicians based on skills, zones, or availability
  • Attach photos, PDFs, and diagnostic data at creation time

Financials: Invoicing and Payments

  • Generate invoices with labor and parts line items from your product or after job completion
  • Pull invoice, payment, and balance status to reconcile with your ERP or data warehouse
  • Enforce tax codes, terms, and accounting periods programmatically

Assets & Maintenance Programs

  • Ingest equipment/asset lists with models, serials, and warranty dates
  • Sync service agreements and upcoming visits to drive renewals and reminders
  • Record service history to enrich reliability and lifecycle analytics

Available Endpoints

Authentication

POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short‑lived auth token maintained by the platform.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/sessions \
  --header 'Authorization: Basic <Base64 encoded token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "username": "[email protected]",
    "password": "<password>",
    "mfa": { "type": "totp", "code": "123456" }
  }'

Example response

{
  "authToken": "eyJhbGciOi...",
  "expiresIn": 3600,
  "user": {
    "id": "u_bf91d2",
    "name": "Dispatcher",
    "entitlements": ["customers", "work_orders", "invoices", "inventory"]
  }
}

POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.

Customers & Service Locations

GET /customers: List customers with optional inclusion of service locations and primary contacts.

Query parameters

  • updatedFrom, updatedTo: ISO 8601 timestamps
  • status: active | inactive
  • type: residential | commercial
  • include: locations | contacts | none
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "customerId": "cust_10293a",
      "name": "Northside Medical Group",
      "type": "commercial",
      "status": "active",
      "billingAddress": {
        "line1": "1500 Peachtree St NE",
        "city": "Atlanta",
        "region": "GA",
        "postalCode": "30309",
        "country": "US"
      },
      "primaryContact": {
        "contactId": "con_55e81b",
        "name": "Alex Morgan",
        "email": "[email protected]",
        "phone": "+1-404-555-0191"
      },
      "locations": [
        {
          "locationId": "loc_77c14d",
          "siteName": "Building A",
          "address": {
            "line1": "1500 Peachtree St NE",
            "city": "Atlanta",
            "region": "GA",
            "postalCode": "30309",
            "country": "US"
          },
          "equipmentCount": 12,
          "notes": null
        }
      ],
      "updatedAt": "2026-01-20T13:45:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Work Orders

POST /work-orders: Create a new work order (service ticket) with assignment and scheduling metadata.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/work-orders \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "customerId": "cust_10293a",
    "serviceLocationId": "loc_77c14d",
    "priority": "high",
    "category": "HVAC",
    "problemDescription": "Server room AC not cooling. Sensor reading 85°F.",
    "requestedDate": "2026-01-22",
    "scheduledStart": "2026-01-22T14:00:00-05:00",
    "scheduledEnd": "2026-01-22T16:00:00-05:00",
    "assignedTechnicianId": "tech_4d91aa",
    "source": "iot",
    "attachments": [
      {"fileName": "sensor-log.csv", "uploadToken": "upl_a91e03"}
    ],
    "referenceId": "alert-98321"
  }'

Example response

{
  "workOrderId": "wo_6a27f0",
  "number": "WO-2026-00451",
  "status": "scheduled",
  "createdAt": "2026-01-21T09:12:33Z",
  "referenceId": "alert-98321"
}

Work Order Status Updates

PATCH /work-orders/{workOrderId}/status: Update status and operational timestamps for a work order.

curl --request PATCH \
  --url https://api.supergood.ai/integrations/<integration_id>/work-orders/wo_6a27f0/status \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "status": "complete",
    "enRouteAt": "2026-01-22T13:40:00-05:00",
    "onSiteAt": "2026-01-22T14:05:00-05:00",
    "completedAt": "2026-01-22T15:42:00-05:00",
    "technicianId": "tech_4d91aa",
    "gps": {"lat": 33.789132, "lng": -84.385941},
    "resolutionNotes": "Cleared clogged condenser coil, restored to setpoint.",
    "laborSummary": {"regularHours": 1.5, "overtimeHours": 0.25}
  }'

Example response

{
  "workOrderId": "wo_6a27f0",
  "status": "complete",
  "updatedAt": "2026-01-22T15:43:08Z"
}

Invoices

POST /invoices: Create an invoice with labor and parts line items, optionally linked to a work order.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/invoices \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "customerId": "cust_10293a",
    "workOrderId": "wo_6a27f0",
    "invoiceDate": "2026-01-22",
    "terms": "Net 30",
    "taxCodeId": "tax_GA_STD",
    "lineItems": [
      {
        "type": "service",
        "itemId": "svc_DIAG",
        "description": "Diagnostic and troubleshooting",
        "quantity": 1,
        "rate": 125.00,
        "taxable": true
      },
      {
        "type": "labor",
        "itemId": "lab_STD",
        "description": "Labor",
        "quantity": 1.75,
        "rate": 95.00,
        "taxable": false
      },
      {
        "type": "inventory",
        "itemId": "inv_COILCLEAN",
        "description": "Coil cleaner",
        "quantity": 1,
        "rate": 18.00,
        "warehouseId": "wh_truck_12",
        "taxable": true
      }
    ],
    "attachments": [
      {"fileName": "signed-workorder.pdf", "uploadToken": "upl_d0f239"}
    ],
    "notes": "Thank you for your business."
  }'

Example response

{
  "invoiceId": "inv_51f0c8",
  "number": "INV-2026-000981",
  "status": "posted",
  "total": 331.63,
  "balance": 331.63,
  "createdAt": "2026-01-22T16:11:44Z"
}

Get full API Specs →


Technical Specifications

  • Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer‑managed credentials
  • Response format: JSON with consistent resource schemas and pagination across modules
  • Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
  • Session management: Automatic reauth and cookie/session rotation with health checks
  • Data freshness: Near real‑time retrieval of customers, work orders, invoices, inventory, and assets
  • Security: Encrypted transport, scoped tokens, and audit logging; respects role‑based permissions and accounting period locks
  • Webhooks: Optional async delivery for long‑running workflows (e.g., job completion, invoice posting, agreement renewals)

Performance Characteristics

  • Latency: Sub‑second responses for list/detail queries under normal load
  • Throughput: Designed for high‑volume dispatch sync, ticket creation, and invoice posting
  • Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
  • Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates

Getting Started

  1. Schedule Integration Assessment

Book a 30‑minute session to confirm your modules, licensing, and authentication model.

  1. Supergood Builds and Validates Your API

We deliver a hardened Total Office Manager adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as Total Office Manager evolves.

Schedule Integration Call →


Frequently Asked Questions

Q: Which Total Office Manager modules can this integration cover?

Supergood supports workflows across commonly used areas such as Customers & Locations, Dispatching (Work Orders, Scheduling), Financials (Invoices, Payments), Items & Inventory (Warehouses/Trucks), and Equipment & Service Agreements, subject to your licensing and entitlements. We scope coverage during the integration assessment.

Q: How are MFA, SSO, and on‑prem environments handled for automation?

We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. For on‑prem/hybrid deployments, we use secure connectors and session management to maintain reliable, compliant access with automated refresh and challenge handling.

Q: Can you sync invoices and payments to our ERP or data warehouse?

Yes. We can normalize invoices, line items, taxes, and payments to match your ERP schema (e.g., QuickBooks, NetSuite) and deliver updates via webhooks or polling while complying with rate and permission constraints.

Q: Do you support attachments, job photos, and signatures?

Yes. We support downloading artifacts and uploading attachments via signed uploads, with checksum validation and time‑limited URLs—ideal for before/after photos, PDFs, and signed work orders.


QuickBooks Online API — Sync field invoices and payments to accounting

NetSuite API — Push summarized revenue and inventory movements to ERP


Ready to automate your Total Office Manager workflows?

Supergood can have your Total Office Manager integration live in days with no ongoing engineering maintenance.

Get Started →

Read more