Supergood | ServiceFusion API
Programmatically access ServiceFusion field service data, dispatch operations, and financials with a stable REST API. Supergood builds and operates production-grade, unofficial ServiceFusion integrations so your team can automate field and office workflows without heavy custom engineering.
Plain English: ServiceFusion is field service management software used by HVAC, plumbing, electrical, appliance repair, and other home/commercial service companies to run operations end-to-end. An unofficial API lets you programmatically pull customer records and service locations, jobs/work orders, schedules and technician assignments, estimates, invoices and payments, equipment assets, and inventory—and push new records or updates (e.g., create jobs, assign technicians, update statuses, generate invoices, capture payments).
For a tech company integrating with ServiceFusion, this means you can ingest real-time job and customer data to power dispatch dashboards, sync invoices and payments to accounting, automate quote-to-job conversion from your product, or enrich your platform with equipment histories, photos, signatures, and technician notes. You can also push job assignments, send arrival updates, attach documents, and keep stakeholder systems (ERP, analytics, scheduling, CRM) in lockstep.
What is ServiceFusion?
ServiceFusion (https://servicefusion.com/) is a cloud platform for field service management that centralizes CRM, scheduling & dispatch, estimates/invoicing, payments, technician mobile workflows, and equipment/inventory tracking. Dispatchers, office staff, and field technicians use ServiceFusion to manage customers and locations, schedule jobs, route technicians, track work in progress, invoice and collect payments, and maintain detailed service histories.
Core product areas include:
- CRM & Customer Management (e.g., customers, service locations, contacts)
- Scheduling & Dispatch (e.g., jobs/work orders, calendars, routes, technician assignments)
- Estimates & Invoicing (e.g., quotes, line items, taxes, discounts, invoice generation)
- Payments & Collections (e.g., card/ACH processing, deposits, receipts, customer portal)
- Technician Mobile & Field Operations (e.g., status updates, photos, signatures, notes)
- Inventory & Equipment (e.g., items/parts, stock levels, equipment assets at locations)
- Service Agreements & Recurring Services (e.g., maintenance contracts, recurring jobs)
Common data entities:
- Companies, Users/Technicians, and Permissions
- Customers and Service Locations (addresses, contacts, tags)
- Jobs/Work Orders (status, schedule windows, assigned technicians)
- Estimates/Quotes (line items, approvals, conversion to jobs)
- Invoices and Payments (line items, taxes, receipts)
- Items/Parts and Inventory (SKU, cost, stock levels)
- Equipment Assets (model/serial, install date, service history)
- Service Agreements (terms, frequency, next visits)
- Purchase Orders and Vendors (parts procurement)
The ServiceFusion Integration Challenge
Field service teams rely on ServiceFusion every day, but turning portal-based workflows into API-driven automation is non-trivial:
- Dispatch board complexity: Job calendars, routes, skills, and multi-tech assignments require careful modeling
- Enterprise security: SSO/MFA and role-based controls (dispatcher, tech, admin) complicate headless automation
- Portal-first features: Many capabilities are optimized for the web and mobile apps; data is spread across views/exports
- Financial rigor: Taxes, deposits, partial payments, and accounting sync (e.g., QuickBooks) must be respected programmatically
- Mobile flows: Status transitions (en route, on site, completed), signatures, and photo uploads need resilient handling
How Supergood Creates ServiceFusion APIs
Supergood reverse-engineers authenticated browser and mobile app flows to deliver a resilient API endpoint layer for your ServiceFusion 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 & Job Data Sync
- Mirror customers, service locations, and contact details into your internal systems
- Keep job metadata current for analytics and SLA reporting
- Normalize addresses, statuses, and timestamps for multi-branch operations
Dispatch Automation
- Create jobs/work orders from your product and assign technicians based on skills/territory
- Update job status programmatically (scheduled, en route, on site, completed)
- Trigger route updates, ETA notifications, and customer communications
Estimates-to-Invoice and Payments
- Convert accepted quotes into jobs with pre-filled line items
- Generate invoices with taxes/discounts and capture payments securely
- Pull payment receipts and reconciliation data to sync with accounting (e.g., QuickBooks)
Equipment & Inventory Tracking
- Ingest equipment assets at each location for proactive maintenance scheduling
- Track parts used and inventory movements during jobs
- Attach photos, notes, and service history to assets for lifecycle visibility
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_72fd10",
"name": "Dispatch Lead",
"entitlements": ["customers", "jobs", "invoices", "payments"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Customers & Locations
GET /customers: List customers with optional filters and service location summaries.
Query parameters
- status: active | inactive
- city: string
- region: string (state/province)
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"customerId": "cust_83fa21",
"name": "Acme Property Management",
"status": "active",
"contacts": [
{"name": "Dana Lee", "email": "[email protected]", "phone": "+1-404-555-0112"}
],
"billingAddress": {
"line1": "1000 Peachtree St NE",
"city": "Atlanta",
"region": "GA",
"postalCode": "30309",
"country": "US"
},
"locations": [
{
"locationId": "loc_5b910e",
"label": "Midtown Office",
"address": {
"line1": "1000 Peachtree St NE",
"city": "Atlanta",
"region": "GA",
"postalCode": "30309",
"country": "US"
},
"equipmentCount": 12,
"tags": ["HVAC", "Electrical"],
"updatedAt": "2026-01-19T16:22:00Z"
}
],
"updatedAt": "2026-01-20T13:45:00Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Jobs (Work Orders)
POST /jobs: Create a new job/work order with schedule details, assigned technicians, and line items.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/jobs \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"customerId": "cust_83fa21",
"locationId": "loc_5b910e",
"summary": "Quarterly HVAC maintenance",
"description": "Perform PM on rooftop units; replace filters; check belts and refrigerant levels.",
"serviceType": "HVAC",
"priority": "normal",
"scheduledStart": "2026-02-01T09:00:00Z",
"scheduledEnd": "2026-02-01T12:00:00Z",
"assignedTechnicianIds": ["tech_11aa34", "tech_77db82"],
"checklist": [
{"label": "Lockout/Tagout", "required": true},
{"label": "Capture equipment photos", "required": false}
],
"lineItems": [
{"itemId": "itm_filters_merv11", "description": "MERV-11 Filter Pack", "quantity": 4, "unitPrice": 25.00},
{"itemId": "labor_hvac_pm", "description": "HVAC Preventive Maintenance (per hour)", "quantity": 3, "unitPrice": 95.00}
],
"attachments": [
{"fileName": "pm-checklist.pdf", "uploadToken": "upl_98dc3a"}
],
"referenceId": "contract-SA-2026-004"
}'
Example response
{
"jobId": "job_67c21a",
"jobNumber": "WO-2026-00123",
"status": "scheduled",
"dispatchTicket": "disp_45af1d",
"createdAt": "2026-01-21T09:12:33Z"
}
Job Status Updates
PATCH /jobs/{jobId}/status: Update a job's lifecycle state and capture field artifacts.
curl --request PATCH \
--url https://api.supergood.ai/integrations/<integration_id>/jobs/job_67c21a/status \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"status": "completed",
"arrivalTime": "2026-02-01T09:07:00Z",
"completionTime": "2026-02-01T11:54:00Z",
"laborHours": 3.0,
"materialsUsed": [
{"itemId": "itm_filters_merv11", "quantity": 4}
],
"techNotes": "Belts tightened; refrigerant levels within spec; no anomalies detected.",
"customerSignature": {"signedBy": "Dana Lee", "signedAt": "2026-02-01T11:55:00Z"},
"attachments": [
{"fileName": "rooftop-unit.jpg", "uploadToken": "upl_7fa223"}
]
}'
Example response
{
"jobId": "job_67c21a",
"status": "completed",
"updatedAt": "2026-02-01T11:55:04Z",
"invoiceEligible": true
}
Invoices & Payments
POST /jobs/{jobId}/invoices: Create an invoice for a completed job with line items, taxes/discounts, and optional payment capture.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/jobs/job_67c21a/invoices \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"referenceNumber": "INV-2026-00123",
"invoiceDate": "2026-02-01",
"dueDate": "2026-02-15",
"lineItems": [
{"description": "MERV-11 Filter Pack", "quantity": 4, "unitPrice": 25.00, "taxCode": "GA_SALES"},
{"description": "HVAC Preventive Maintenance", "quantity": 3, "unitPrice": 95.00, "taxCode": "GA_SERVICE"}
],
"discounts": [{"type": "percent", "value": 5.0, "reason": "Service agreement"}],
"taxes": [{"code": "GA_SALES", "rate": 0.07}],
"notes": "Thank you for your business.",
"collectPayment": true,
"payment": {
"method": "card",
"cardToken": "tok_abc123",
"amount": 342.80
}
}'
Example response
{
"invoiceId": "inv_51af80",
"status": "paid",
"jobId": "job_67c21a",
"totalAmount": 342.80,
"amountPaid": 342.80,
"paymentReceiptId": "pay_9c77e2",
"createdAt": "2026-02-01T12:00:44Z"
}
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, jobs, schedules, invoices, payments, and equipment objects
- Security: Encrypted transport, scoped tokens, and audit logging; respects ServiceFusion role-based permissions
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., payment settlements, job approval chains)
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/app changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened ServiceFusion adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as ServiceFusion evolves.
Frequently Asked Questions
Q: Which ServiceFusion modules can this integration cover?
Supergood supports workflows across commonly used modules such as CRM (customers, locations), Scheduling & Dispatch (jobs/work orders, technician assignments), Estimates & Invoicing, Payments, and Equipment/Inventory, 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?
Yes. We can normalize invoices, taxes, discounts, and payment receipts to match your ERP schema and deliver updates via webhooks or polling while complying with rate and permission constraints. Customers commonly sync to QuickBooks.
Q: Are attachments supported for jobs and invoices?
Yes. We support downloading artifacts and uploading attachments via signed uploads, with checksum validation and time-limited URLs for photos, PDFs, and signatures.
Q: Can we dispatch technicians from our product?
Yes. You can create jobs, assign technicians, set schedule windows, and update statuses programmatically; the integration respects dispatch board constraints and role permissions.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your ServiceFusion workflows?
Supergood can have your ServiceFusion integration live in days with no ongoing engineering maintenance.