Supergood | Workiz API

Supergood | Workiz API

Programmatically access Workiz field service data, scheduling, communications, and payments with a stable REST API. Supergood builds and operates production-grade, unofficial Workiz integrations so your team can automate dispatch, invoicing, and back-office workflows without heavy custom engineering.

Plain English: Workiz is field service management software used by home service and trades businesses (HVAC, plumbing, locksmiths, junk removal, appliances, garage doors, and more) to run jobs end to end. An unofficial API lets you programmatically pull clients, leads, jobs, schedules, estimates, invoices, payments, call/SMS logs, and pricebook items—and push new jobs, dispatch assignments, status updates, and financial records back into Workiz.

For a tech company integrating with Workiz, this means you can ingest real-time job and client data to power routing and dashboards, automate estimate-to-invoice flows, process payments with your preferred gateway and sync to accounting, or enrich your platform with call recordings and message histories. You can also push new bookings from your app or website, assign technicians, update job statuses from telematics or geofencing, and keep CRMs, ERPs, and analytics in lockstep.

What is Workiz?

Workiz (https://www.workiz.com/) is a cloud platform for field service management that centralizes scheduling, dispatch, job execution, and billing for service teams. Companies use Workiz to manage clients and service addresses, book and dispatch jobs, create estimates and invoices, collect payments (Workiz Pay), track calls and SMS (Workiz Phone), and coordinate field operations with a mobile app.

Core product areas include:

  • Scheduling & Dispatch (calendar, routing, technician assignment, ETA)
  • CRM & Jobs (clients, service locations, work orders, job statuses)
  • Estimates, Invoices & Payments (pricebook, taxes/discounts, Workiz Pay)
  • Communications (Workiz Phone VoIP, call recording, SMS, templates)
  • Field App & GPS (on-site updates, photos, signatures, time tracking)
  • Online Booking & Lead Sources (web widgets, Google Local Services Ads, integrations)
  • Inventory & Pricebook (service items, parts, bundles, taxes)

Common data entities:

  • Clients and Contacts (names, phones, emails, billing preferences)
  • Service Addresses/Locations
  • Users/Technicians and Teams
  • Leads, Jobs, and Recurring Jobs
  • Schedules/Assignments and Status History
  • Pricebook Items, Line Items, Taxes/Discounts
  • Estimates, Invoices, Payments, Refunds
  • Call Logs, Recordings, SMS Threads
  • Attachments (photos, PDFs), Signatures, Notes

The Workiz Integration Challenge

Field service organizations rely on Workiz daily, but turning portal-based workflows into API-driven automation is non-trivial:

  • Scheduling dependencies: Technician calendars, travel time, and job conflicts must be respected programmatically
  • Role-based controls: Office staff vs. technician vs. owner permissions affect data visibility and allowed actions
  • Communications data: Calls, recordings, and SMS threads live in separate views with distinct filters and retention
  • Payment rigor: Captures, refunds, and reconciliation require secure handling and clear audit trails (Workiz Pay)
  • Customization sprawl: Custom fields, statuses, templates, and pricebooks vary by tenant and must be normalized
  • Lead sources: Online booking, phone leads, and ads integrations create heterogeneous intake data to reconcile

How Supergood Creates Workiz APIs

Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your Workiz 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

Job & Client Sync

  • Mirror clients, locations, and jobs into your internal CRM or data warehouse
  • Keep job metadata, statuses, and assignments current for analytics and SLAs
  • Unify contact details and service addresses for omnichannel communication

Scheduling & Dispatch Automation

  • Create jobs from web forms or partner systems and auto-assign technicians
  • Update statuses (en route, on site, completed) from telematics or geofencing
  • Push schedule changes and send confirmations via SMS templates

Estimates and Invoices

  • Generate estimates from your pricebook and convert to invoices on approval
  • Attach photos and signatures captured in the field
  • Reconcile invoices and payments with your accounting system (e.g., QuickBooks Online)

Calls, Messages, and Lead Intake

  • Ingest call logs, recordings, and SMS threads to measure marketing ROI
  • Create leads or jobs automatically from missed calls or online booking requests
  • Trigger follow-ups and automations when messages go unanswered

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_0f2a1b",
    "name": "Dispatch Lead",
    "entitlements": ["clients", "jobs", "scheduling", "invoices", "payments"]
  }
}

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

Jobs

GET /jobs: List jobs with filters and summary details.

Query parameters

  • status: scheduled | dispatched | en_route | on_site | completed | canceled
  • technicianId: string
  • fromDate, toDate: YYYY-MM-DD (scheduled window)
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "jobId": "job_92af31",
      "number": "J-2026-00314",
      "title": "Water heater replacement",
      "status": "scheduled",
      "scheduledStart": "2026-02-01T15:00:00Z",
      "scheduledEnd": "2026-02-01T17:00:00Z",
      "serviceAddress": {
        "line1": "1427 Maple St",
        "city": "San Diego",
        "region": "CA",
        "postalCode": "92103",
        "country": "US"
      },
      "client": {
        "id": "cl_44bb20",
        "name": "Alex Johnson",
        "phones": ["+16195551234"],
        "emails": ["[email protected]"]
      },
      "assignedTechnicians": [
        {"userId": "tech_71d901", "name": "Sam T."}
      ],
      "priceSummary": {
        "subtotal": 1299.00,
        "tax": 104.00,
        "total": 1403.00,
        "amountCollected": 0.00
      },
      "tags": ["water-heater", "residential"],
      "updatedAt": "2026-01-24T10:45:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Create Job

POST /jobs: Create a new job and optionally assign a technician and time window.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/jobs \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "clientId": "cl_44bb20",
    "serviceAddress": {
      "line1": "1427 Maple St",
      "city": "San Diego",
      "region": "CA",
      "postalCode": "92103",
      "country": "US"
    },
    "title": "Water heater replacement",
    "description": "Replace 50-gal unit. Dispose old tank.",
    "scheduledStart": "2026-02-01T15:00:00Z",
    "durationMinutes": 120,
    "assignedTechnicianIds": ["tech_71d901"],
    "jobType": "installation",
    "source": "website",
    "lineItems": [
      {"itemId": "svc_WHTR50", "description": "50-gal water heater", "quantity": 1, "unitPrice": 999.00, "taxCode": "TAX"},
      {"itemId": "svc_LABOR_STD", "description": "Labor", "quantity": 2, "unitPrice": 150.00, "taxCode": "NTX"}
    ],
    "customFields": {"parking_instructions": "Use driveway"}
  }'

Example response

{
  "jobId": "job_92af31",
  "number": "J-2026-00314",
  "status": "scheduled",
  "scheduledStart": "2026-02-01T15:00:00Z",
  "createdAt": "2026-01-24T11:12:33Z",
  "links": {
    "web": "https://app.workiz.com/jobs/job_92af31"
  }
}

Record Payment

POST /invoices/{invoiceId}/payments: Record a payment against an invoice (e.g., Workiz Pay card capture, cash, check, or external processor).

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/invoices/inv_5aa110/payments \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "amount": 1403.00,
    "method": "card",        
    "tipAmount": 0.00,
    "collectedAt": "2026-02-01T17:10:00Z",
    "processor": "workiz_pay",
    "externalTransactionId": "ch_1Ng8cYH...",
    "cardLast4": "4242",
    "memo": "Paid in full on site"
  }'

Example response

{
  "paymentId": "pay_7f3102",
  "status": "captured",
  "invoiceId": "inv_5aa110",
  "totalApplied": 1403.00,
  "balanceRemaining": 0.00,
  "createdAt": "2026-02-01T17:10:03Z"
}

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 high-volume job and invoice sync 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 clients, jobs, schedules, invoices, payments, and communications
  • Security: Encrypted transport, scoped tokens, and audit logging; respects Workiz role-based permissions
  • Webhooks: Optional asynchronous delivery for long-running workflows (e.g., payment settlement, job status changes)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load
  • Throughput: Designed for high-volume job creation, dispatch updates, and invoice/payment processing
  • Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
  • Adaptation: Continuous monitoring for UI/flow 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 Workiz adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

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

Schedule Integration Call →


Frequently Asked Questions

Q: Which Workiz modules can this integration cover?

Supergood supports workflows across commonly used modules such as Scheduling & Dispatch, Clients & Jobs, Estimates & Invoices, Payments (Workiz Pay), and Communications (Workiz Phone/SMS), 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 ERP or accounting system?

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

Q: Do you support attachments, photos, and signatures on jobs and estimates?

Yes. We support downloading artifacts and uploading attachments via signed uploads, with checksum validation and time-limited URLs.



Ready to automate your Workiz workflows?

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

Get Started →

Read more