Supergood | Salesforce Field Service API

Supergood | Salesforce Field Service API

Programmatically access Salesforce Field Service work orders, appointments, dispatch, assets, and inventory with a stable REST API. Supergood builds and operates production-grade, unofficial Salesforce Field Service integrations so your team can automate scheduling, debriefs, and parts management without heavy custom engineering.

Plain English: Salesforce Field Service is field service management software that helps dispatchers and technicians plan, execute, and document on-site work. An unofficial API lets you programmatically pull work orders, service appointments, technicians, assets, and stock levels—and push new jobs, schedule updates, debriefs (labor, parts, notes, signatures), and inventory movements back into Salesforce Field Service.

For a tech company integrating with Salesforce Field Service, this means you can ingest real-time job queues to power dispatcher dashboards, auto-schedule service windows from your product, sync technician status to workforce tools, capture mobile debriefs and service reports (photos/signatures) into your platform, and reconcile parts usage with your ERP. You can also create work orders from IoT alerts, attach documentation, assign skills-based resources, and keep customer systems (CRM, ERP, analytics) aligned.

What is Salesforce Field Service?

Salesforce Field Service (https://www.salesforce.com/products/field-service/overview/) is a cloud solution for managing field operations. It extends Service Cloud with work order management, appointment scheduling and optimization, dispatcher tools, mobile technician workflows, asset/entitlement tracking, and inventory control.

Core product areas include:

  • Work Order Management (e.g., work orders, line items, priorities, SLAs)
  • Scheduling & Dispatch (e.g., service appointments, territories, policies, skills-based assignment)
  • Mobile Workforce & Debrief (e.g., time/labor, parts used, resolutions, photos, signatures, service reports)
  • Assets & Entitlements (e.g., installed products, service contracts, maintenance plans)
  • Inventory & Parts (e.g., van stock, warehouses, product items, transfers, consumption)

Common data entities:

  • Accounts, Contacts, and Cases
  • Work Orders and Work Order Line Items
  • Service Appointments (status, technician assignment, time windows)
  • Service Resources (technicians), Crews, Skills, Operating Hours
  • Service Territories and Scheduling Policies
  • Assets (installed products), Entitlements, Maintenance Plans
  • Inventory Locations, Product Items, Stock Levels, Movements
  • Attachments, Photos, Signatures, Service Reports

The Salesforce Field Service Integration Challenge

Field service teams rely on Salesforce daily, but turning portal-first workflows into API-driven automation presents challenges:

  • Scheduling engine nuances: Optimization policies, skills, travel time, and constraints live behind dispatcher console flows
  • Complex entitlement models: Profiles, permission sets, record types, and sharing rules govern access across orgs and territories
  • Mobile-first artifacts: Offline debriefs, photos, and signatures are optimized for the mobile app, not headless ingestion
  • Distributed data: Work orders, appointments, assets, and inventory are spread across objects and views with customizations
  • Operational rigor: SLAs, status transitions, service reports, and auditability must be respected programmatically

How Supergood Creates Salesforce Field Service APIs

Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your Salesforce Field Service org.

  • Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
  • Maintains session continuity with automated refresh and change detection
  • Normalizes responses across work orders, appointments, assets, and inventory
  • Aligns with customer entitlements, territories, and role-based permissions for compliant access

Use Cases

Work Order and Customer Data Sync

  • Mirror work orders, accounts/contacts, and assets into your internal systems
  • Keep statuses and due dates current for dispatcher and customer communications
  • Normalize priorities and SLAs for multi-region operations

Appointment Scheduling & Dispatch Automation

  • Create and auto-schedule appointments from your product or IoT events
  • Assign technicians based on skills, territory, and availability
  • Track dispatch/in-progress/completion status to drive SLAs and alerts

Mobile Debrief and Service Reports

  • Capture labor time, parts used, resolution notes, photos, and signatures
  • Generate service reports and deliver PDFs back to customers
  • Trigger follow-ups or preventive maintenance based on outcomes

Parts and Inventory Control

  • Record van stock consumption and warehouse transfers
  • Reconcile product items with ERP and purchasing systems
  • Alert when stock falls below thresholds to auto-create replenishment tasks

Asset Lifecycle and Preventive Maintenance

  • Register installed products and link them to work orders
  • Track warranties, entitlements, and maintenance schedules
  • Drive proactive service workflows using asset telemetry and events

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_fsl_72a9",
    "name": "Dispatcher",
    "entitlements": ["work_orders", "appointments", "assets", "inventory"]
  }
}

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

Work Orders

GET /work-orders: List work orders with filters and summary details.

Query parameters

  • accountId: string
  • status: new | scheduled | in_progress | completed | canceled
  • territoryId: string
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "workOrderId": "wo_9a31ef",
      "workOrderNumber": "WO-001234",
      "status": "scheduled",
      "priority": "high",
      "accountId": "acc_445ab2",
      "contactId": "con_77bd10",
      "caseId": "cs_8f09ee",
      "assetId": "ast_29c4f1",
      "subject": "Replace failed compressor",
      "description": "Commercial rooftop unit not cooling. Diagnostic indicates compressor failure.",
      "serviceTerritoryId": "terr_01SE",
      "dueDate": "2026-01-28",
      "address": {
        "line1": "1200 Industrial Way",
        "city": "Phoenix",
        "region": "AZ",
        "postalCode": "85004",
        "country": "US"
      },
      "lineItems": [
        {"productId": "prd_COMP-50T", "description": "50T Compressor", "quantity": 1, "unitPrice": 2800.00},
        {"productId": "prd_R134A", "description": "R134a Refrigerant", "quantity": 20, "unitPrice": 15.00}
      ],
      "updatedAt": "2026-01-21T13:45:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

POST /work-orders: Create a new work order with line items and territory assignment.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/work-orders \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "accountId": "acc_445ab2",
    "contactId": "con_77bd10",
    "caseId": "cs_8f09ee",
    "assetId": "ast_29c4f1",
    "subject": "Quarterly chiller maintenance",
    "description": "Perform PM including filter replacement, coil cleaning, and safety checks.",
    "priority": "normal",
    "dueDate": "2026-02-01",
    "serviceTerritoryId": "terr_01SE",
    "address": {
      "line1": "1200 Industrial Way",
      "city": "Phoenix",
      "region": "AZ",
      "postalCode": "85004",
      "country": "US"
    },
    "lineItems": [
      {"productId": "prd_FILTER-XL", "description": "XL Filter", "quantity": 4, "unitPrice": 12.50}
    ],
    "referenceId": "iot-alert-9032"
  }'

Example response

{
  "workOrderId": "wo_7c55d1",
  "workOrderNumber": "WO-001412",
  "status": "new",
  "createdAt": "2026-01-21T09:12:33Z",
  "referenceId": "iot-alert-9032"
}

Service Appointments

POST /work-orders/{workOrderId}/service-appointments: Create and (optionally) auto-assign a service appointment with time windows and skills.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/work-orders/wo_7c55d1/service-appointments \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "timeWindowStart": "2026-01-25T08:00:00Z",
    "timeWindowEnd": "2026-01-25T12:00:00Z",
    "serviceTerritoryId": "terr_01SE",
    "assignedResourceId": null,
    "autoAssign": true,
    "schedulingPolicyId": "pol_default",
    "skillRequirements": [
      {"skillId": "skl_HVAC", "level": "expert"}
    ],
    "notes": "Customer requests technician call 30 minutes before arrival."
  }'

Example response

{
  "appointmentId": "apt_90e412",
  "appointmentNumber": "SA-000982",
  "status": "scheduled",
  "assignedResource": {
    "resourceId": "tech_5ab71c",
    "name": "A. Morales"
  },
  "start": "2026-01-25T09:15:00Z",
  "end": "2026-01-25T11:45:00Z",
  "createdAt": "2026-01-21T10:03:11Z"
}

Debrief and Service Report

POST /service-appointments/{appointmentId}/debrief: Finalize a job by recording labor, parts, resolution notes, photos, and customer signature. Generates a service report.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/service-appointments/apt_90e412/debrief \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "labor": [
      {
        "resourceId": "tech_5ab71c",
        "workType": "diagnostic",
        "startAt": "2026-01-25T09:20:00Z",
        "endAt": "2026-01-25T10:05:00Z",
        "hours": 0.75,
        "notes": "Confirmed compressor short; replaced per SOP."
      }
    ],
    "partsUsed": [
      {"productId": "prd_COMP-50T", "quantity": 1, "serialNumber": "SN-88493"},
      {"productId": "prd_R134A", "quantity": 18}
    ],
    "resolutionSummary": "Compressor replaced; system vacuumed, charged, and tested. Unit operating within spec.",
    "nextSteps": "Schedule follow-up inspection in 2 weeks.",
    "customerSignature": {
      "name": "Dana Lee",
      "capturedAt": "2026-01-25T11:40:00Z",
      "imageUploadToken": "upl_sig_7fa223"
    },
    "attachments": [
      {"fileName": "before.jpg", "uploadToken": "upl_photo_08ab73"},
      {"fileName": "after.jpg", "uploadToken": "upl_photo_98dc3a"}
    ]
  }'

Example response

{
  "serviceReportId": "srp_51af80",
  "appointmentStatus": "completed",
  "workOrderStatus": "completed",
  "totalLaborHours": 0.75,
  "partsUsedCount": 2,
  "completedAt": "2026-01-25T11:45: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 work orders, appointments, assets, and inventory objects
  • Security: Encrypted transport, scoped tokens, and audit logging; respects Salesforce role-based permissions, territories, and record-level sharing
  • Webhooks: Optional asynchronous delivery for long-running workflows (e.g., scheduling, approvals, debrief completion)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load
  • Throughput: Designed for high-volume work order sync and appointment scheduling
  • 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 Salesforce Field Service adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

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

Schedule Integration Call →


Frequently Asked Questions

Q: Which Salesforce Field Service modules can this integration cover?

Supergood supports workflows across commonly used modules such as Work Orders, Service Appointments, Dispatch & Scheduling, Mobile Debrief/Service Reports, Assets/Entitlements, and Inventory/Parts—subject to your org configuration, licensing, and permissions. 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 push appointments and technician assignments back to Salesforce?

Yes. We can create and update service appointments (time windows, status, assigned technician, notes), auto-assign via policy, and reflect changes back while respecting constraints and entitlements.

Q: Do you support attachments and service reports?

Yes. We support downloading artifacts and uploading attachments (photos, signatures) via signed uploads, with checksum validation and time-limited URLs. We can generate and return service report IDs and PDFs.



Ready to automate your Salesforce Field Service workflows?

Supergood can have your Salesforce Field Service integration live in days with no ongoing engineering maintenance.

Get Started →

Read more