Supergood | WorkWave API

Supergood | WorkWave API

Programmatically access WorkWave field service data, scheduling, routing, and billing with a stable REST API. Supergood builds and operates production-grade, unofficial WorkWave integrations so your team can automate field and office workflows without heavy custom engineering.

Plain English: WorkWave is field service software used by pest control, lawn care, cleaning, HVAC, and other service businesses to manage customers, service locations, schedules, routes, mobile technicians, and billing. An unofficial API lets you pull customers and service locations, work orders and schedules, technician and route assignments, GPS/ETAs, service reports and materials, invoices and payments—and push new jobs, reschedules, route plans, invoices, payments, and documentation back into WorkWave.

For a tech company integrating with WorkWave, this means you can ingest real-time schedules to power dispatcher consoles, surface ETAs to customers, automate job creation from your CRM, sync invoices and payments to accounting, or enrich your app with service outcomes, photos, signatures, and chemical usage for compliance. You can also push optimized routes, reassign jobs mid-day, create estimates-to-work-orders flows, and keep ERP, BI, and messaging systems in lockstep.

What is WorkWave?

WorkWave (https://www.workwave.com/) provides cloud software for field service and last‑mile operations. Brands such as PestPac, WorkWave Service, Route Manager, Fleet/GPS, and WorkWave Payments centralize customer management, scheduling and dispatch, route optimization, mobile proof of service, and billing.

Core product areas include:

  • Field Service Management (e.g., customers, service locations, work orders, schedules, dispatch)
  • Route Planning & Last‑Mile (e.g., territory planning, daily route optimization, ETAs)
  • Mobile Workforce & GPS (e.g., technician tracking, time clock, proof of service, photos/signatures)
  • Billing & Payments (e.g., invoices, subscriptions/recurring service, WorkWave Payments)
  • Vertical Compliance (e.g., PestPac chemical usage, service documentation)

Common data entities:

  • Accounts/Customers, Contacts, and Branches
  • Service Locations and Property Details
  • Work Orders/Jobs, Status, Service Codes, Durations
  • Schedules/Appointments, Time Windows, Routes
  • Technicians/Cews/Vehicles and Skills/Capabilities
  • Service Reports, Photos, Signatures, Notes
  • Materials/Chemicals, Inventory, and Compliance Metrics
  • Invoices, Line Items, Taxes, Discounts, Payments/Refunds
  • Estimates/Quotes and Recurring Service Plans/Contracts

The WorkWave Integration Challenge

Field service companies run day-to-day on WorkWave, but turning portal-based workflows into API-driven automation can be hard:

  • Multi-product surface area: PestPac, Service, Route Manager, and Payments have different UX, data models, and entitlements
  • Scheduling complexity: Calendar constraints, technician skills, time windows, recurring plans, and SLA rules must be respected programmatically
  • Route optimization: Interactive planning, mid‑day changes, and branch/territory permissions complicate headless orchestration
  • Rich artifacts: Photos, signatures, service reports, and chemical usage require robust upload/download flows
  • Enterprise security: SSO/MFA and granular role-based controls (branch/tech/role) challenge unattended access

How Supergood Creates WorkWave APIs

Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your WorkWave tenant.

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

Use Cases

Customer and Location Sync

  • Mirror customers, contacts, and service locations into your CRM or data warehouse
  • Keep address, access instructions, and property metadata fresh for routing and analytics
  • Resolve duplicates and normalize fields for multi-branch operations

Scheduling and Dispatch Automation

  • Create work orders from sales/CRM events with preferred time windows and skills
  • Auto-assign or reassign technicians based on availability and territory
  • Send appointment confirmations and reminders via your messaging stack

Route Optimization and ETA Sharing

  • Push daily jobs to Supergood to generate optimized routes per branch/crew
  • Stream ETAs to customer portals and notify when technicians are en route
  • Re-optimize mid-day when cancellations or emergencies occur

Field Reporting and Compliance

  • Ingest service outcomes, photos, signatures, and chemical usage for QA and regulatory reporting
  • Trigger follow-ups, upsells, or warranty visits based on results
  • Feed BI dashboards for SLA adherence and productivity

Billing and Payments Sync

  • Generate invoices from completed jobs and post to accounting (e.g., QuickBooks, NetSuite)
  • Capture payments via WorkWave Payments and reconcile daily deposits
  • Manage recurring plans and auto-billing for service contracts

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_5b3de1",
    "name": "Dispatcher",
    "entitlements": ["customers", "work_orders", "routing", "billing"]
  }
}

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

Customers & Locations

GET /customers: List customers with nested service locations and basic contacts.

Query parameters

  • search: string (name, phone, email)
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • active: true | false
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "customerId": "cus_91a2f0",
      "name": "Eastside Property Management",
      "accountNumber": "ACCT-100293",
      "status": "active",
      "primaryContact": {
        "name": "Dana Cooper",
        "email": "[email protected]",
        "phone": "+1-404-555-0123"
      },
      "serviceLocations": [
        {
          "serviceLocationId": "loc_7f991b",
          "label": "Eastside Apartments - Bldg A",
          "address": {
            "line1": "500 Eastside Blvd",
            "city": "Atlanta",
            "region": "GA",
            "postalCode": "30312",
            "country": "US"
          },
          "defaultTechnicianId": "tech_21b0c9",
          "tags": ["multi-unit", "quarterly"]
        }
      ],
      "createdAt": "2026-01-05T14:22:10Z",
      "updatedAt": "2026-01-20T08:41:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Work Orders

POST /work-orders: Create a new work order/job with schedule preferences and optional assignment.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/work-orders \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "serviceLocationId": "loc_7f991b",
    "serviceCode": "GEN_PEST",
    "description": "Quarterly pest control service",
    "requestedDate": "2026-02-03",
    "timeWindow": {"start": "08:00", "end": "12:00", "timezone": "America/New_York"},
    "priority": "normal",
    "durationMinutes": 60,
    "technicianId": "tech_21b0c9",
    "price": 125.00,
    "notes": "Gate code 4321. Tenant prefers early arrival.",
    "attachments": [
      {"fileName": "infestation.jpg", "uploadToken": "upl_98dc3a"}
    ],
    "referenceId": "crm-opp-12345"
  }'

Example response

{
  "workOrderId": "wo_6ac2e7",
  "number": "WO-2026-00128",
  "status": "scheduled",
  "scheduledStart": "2026-02-03T08:00:00-05:00",
  "scheduledEnd": "2026-02-03T09:00:00-05:00",
  "technicianId": "tech_21b0c9",
  "createdAt": "2026-01-21T13:12:33Z"
}

Route Optimization

POST /routes/optimize: Optimize daily routes for a branch with job and technician constraints. Returns per-technician stop sequences and ETAs.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/routes/optimize \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "date": "2026-02-03",
    "branchId": "br_east01",
    "objective": "minimize_drive_time",
    "jobs": [
      {
        "workOrderId": "wo_6ac2e7",
        "serviceDurationMinutes": 60,
        "location": {"lat": 33.7486, "lng": -84.3915},
        "timeWindows": [{"start": "08:00", "end": "12:00"}],
        "skills": ["general_pest"],
        "priority": "normal"
      }
    ],
    "technicians": [
      {
        "technicianId": "tech_21b0c9",
        "startLocation": {"lat": 33.7511, "lng": -84.3875},
        "endLocation": {"lat": 33.7511, "lng": -84.3875},
        "shift": {"start": "07:00", "end": "16:00"},
        "skills": ["general_pest", "termite"],
        "vehicle": {"capacity": {"chemicals_lb": 200}}
      }
    ]
  }'

Example response

{
  "routes": [
    {
      "technicianId": "tech_21b0c9",
      "stops": [
        {
          "sequence": 1,
          "workOrderId": "wo_6ac2e7",
          "eta": "2026-02-03T08:15:00-05:00",
          "serviceStart": "2026-02-03T08:15:00-05:00",
          "serviceEnd": "2026-02-03T09:15:00-05:00",
          "driveMinutes": 12,
          "distanceMiles": 6.8
        }
      ],
      "driveTimeMinutes": 45,
      "serviceTimeMinutes": 60,
      "routeScore": 0.92
    }
  ],
  "createdAt": "2026-01-21T13:45:44Z"
}

Invoices

POST /work-orders/{workOrderId}/invoice: Generate an invoice from a work order with line items, taxes, and optional immediate payment collection via WorkWave Payments.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/work-orders/wo_6ac2e7/invoice \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "lineItems": [
      {"itemCode": "SERV_GEN", "description": "Quarterly pest control", "quantity": 1, "unitPrice": 125.00, "taxable": true}
    ],
    "discounts": [{"type": "percent", "value": 10}],
    "taxes": [{"ratePercent": 8.25, "jurisdiction": "GA"}],
    "payment": {
      "collect": true,
      "method": "card",
      "token": "pm_7a9c21",
      "amount": 122.81
    },
    "notes": "Thank you for your business."
  }'

Example response

{
  "invoiceId": "inv_51af80",
  "status": "paid",
  "workOrderId": "wo_6ac2e7",
  "subtotal": 125.00,
  "discountTotal": 12.50,
  "taxTotal": 10.31,
  "total": 122.81,
  "paymentId": "pay_3bb921",
  "createdAt": "2026-01-21T14:20: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, schedules, work orders, routes, and billing objects
  • Security: Encrypted transport, scoped tokens, and audit logging; respects WorkWave role-based permissions
  • Webhooks: Optional asynchronous delivery for long-running or event-based workflows (e.g., job completions, invoice payments)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load
  • Throughput: Designed for high-volume schedule sync, route optimization, and invoice processing
  • 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 WorkWave adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as WorkWave evolves.

Schedule Integration Call →


Frequently Asked Questions

Q: Which WorkWave products can this integration cover?

Supergood supports workflows across commonly used modules such as Field Service (customers, locations, work orders, schedules), Route Manager (routes, ETAs, re-optimization), and Billing (invoices, payments), plus vertical features like PestPac chemical usage—subject to your licensing and entitlements. We scope coverage during integration assessment.

Q: How are MFA and SSO handled for automation?

We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling.

Q: Can you sync invoices and payments to our accounting system?

Yes. We can normalize invoices and payment records 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, photos, signatures, and chemical usage details?

Yes. We support downloading service artifacts and uploading attachments via signed uploads, with checksum validation and time-limited URLs. Chemical usage data (product, quantity, units, application method) can be captured and synced for compliance.



Ready to automate your WorkWave workflows?

Supergood can have your WorkWave integration live in days with no ongoing engineering maintenance.

Get Started →

Read more