Supergood | SAP Field Service Management API

Supergood | SAP Field Service Management API

Programmatically access SAP Field Service Management work orders, scheduling, inventory, and mobile results with a stable REST API. Supergood builds and operates production-grade, unofficial SAP FSM integrations so your team can automate dispatch, service delivery, and back-office workflows without heavy custom engineering.

Plain English: SAP Field Service Management is software for running field service operations—creating and scheduling work orders, dispatching technicians, tracking parts and van stock, capturing time and expenses, completing checklists, and meeting SLAs. An unofficial API lets you pull service orders, technician assignments, inventory levels, contracts and SLAs, and completed work (time, materials, photos, signatures)—and push new work, dispatch decisions, and updates back into SAP FSM.

For a tech company integrating with SAP FSM, this means you can sync real-time work order data to power customer dashboards, automate scheduling from your product, reconcile time and materials with ERP, trigger workflows when SLAs are at risk, and enrich your platform with field photos, checklists, and signatures. You can also create service orders from IoT alerts, allocate parts, update technician routes, and keep CRM, ERP, and analytics aligned with field execution.

What is SAP Field Service Management?

SAP Field Service Management (https://www.sap.com/products/field-service-management.html) is a cloud platform for planning, executing, and monitoring field service. It connects contact center, dispatch, and mobile technicians with intelligent scheduling, mobile apps, and back-office integrations. Teams use SAP FSM to generate service orders, optimize routes, assign work by skills and territory, manage parts and van stock, capture time and expenses, complete digital checklists, and meet contractual SLAs and warranties.

Core product areas include:

  • Service Order Management (e.g., tickets/work orders, activities, confirmations)
  • Scheduling & Dispatch (e.g., skills, territories, travel/route optimization, assignments)
  • Mobile Execution (e.g., checklists, photos, notes, customer signatures, offline)
  • Parts & Inventory (e.g., spare parts, van stock, reservations/consumption, warehouses)
  • Assets & Contracts (e.g., installed base/equipment, warranties, service contracts, SLAs)
  • Time & Expenses (e.g., labor entries, expense receipts, rate categories)

Common data entities:

  • Accounts/Customers, Sites/Locations, Contacts
  • Service Orders (metadata, priority, status, problem/resolution)
  • Assignments/Activities (technician, schedule window, status)
  • Technicians/Resources (skills, territories, availability)
  • Equipment/Installed Base (serials, models, maintenance history)
  • Service Contracts & Entitlements (SLA clocks, warranty coverage)
  • Checklists/Forms and their results
  • Parts, Stock Locations (warehouse/van), Inventory Movements
  • Time Entries and Expenses, Attachments/Photos/Signatures

The SAP Field Service Management Integration Challenge

Field service teams depend on SAP FSM daily, but turning portal-first workflows into API-driven automation can be complex:

  • Scheduling constraints: Skills, certifications, travel times, and SLA windows drive optimizer decisions that must be respected programmatically
  • Offline-first mobile: Technicians capture data offline; your integration must handle delayed syncs and conflict resolution
  • Entitlements and approvals: Contracts, warranties, and service confirmations follow strict lifecycle and permission models
  • Distributed data: Work orders, assets, parts, and checklists live in separate modules and views with nuanced relationships
  • Enterprise security: SSO/MFA, role-based access, and customer-specific entitlements complicate headless automation

How Supergood Creates SAP FSM APIs

Supergood reverse-engineers authenticated browser and mobile flows to deliver a resilient API endpoint layer for your SAP FSM 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, roles, SLAs, and approvals to ensure compliant access

Use Cases

Work Order Data Sync

  • Mirror service orders, customers, and equipment into your systems
  • Keep priorities, statuses, and SLA clocks current for analytics and alerting
  • Normalize addresses, contact info, and identifiers across CRM/ERP

Scheduling & Dispatch Automation

  • Create and schedule work orders from IoT alerts or customer portals
  • Assign technicians by skills, territory, and availability; update routes in real time
  • Trigger escalations when SLA thresholds approach

Parts, Time & Expenses

  • Reserve parts to work orders and reconcile van stock
  • Capture labor and expenses from field apps into ERP for billing or payroll
  • Validate consumption against contracts and warranties

Mobile Checklists, Photos, and Signatures

  • Ingest completed checklists and photo evidence for QA/compliance
  • Store customer signatures with timestamps and technician metadata
  • Generate service reports and distribute to stakeholders automatically

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_42a1f0",
    "name": "Dispatcher",
    "entitlements": ["service_orders", "scheduling", "inventory"]
  }
}

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

Service Orders

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

Query parameters

  • status: open | scheduled | in_progress | completed | canceled
  • priority: low | normal | high | urgent
  • accountId, siteId, technicianId: strings
  • dueFrom, dueTo: ISO 8601 timestamps
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "serviceOrderId": "so_91c2e7",
      "externalNumber": "WO-2026-1042",
      "status": "scheduled",
      "priority": "high",
      "accountId": "acct_0012",
      "siteId": "site_7843",
      "equipmentId": "eq_55021",
      "slaDueAt": "2026-01-24T22:00:00Z",
      "scheduledWindow": {"start": "2026-01-24T18:00:00Z", "end": "2026-01-24T20:00:00Z"},
      "assignedTechnicianIds": ["tech_1003"],
      "problemDescription": "Chiller not cooling; error E47",
      "updatedAt": "2026-01-24T14:05:11Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

POST /service-orders: Create a new service order with customer, asset, and SLA context.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/service-orders \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "accountId": "acct_0012",
    "siteId": "site_7843",
    "contact": {"name": "Dana Lee", "phone": "+1-555-0149", "email": "[email protected]"},
    "equipmentId": "eq_55021",
    "priority": "high",
    "requestedDate": "2026-01-24",
    "problemDescription": "Chiller down. Alarm E47 after power cycle.",
    "contractId": "ctr_9021",
    "checklistTemplateIds": ["chk_aa01"],
    "attachments": [
      {"fileName": "alarm-photo.jpg", "uploadToken": "upl_7ac200"}
    ],
    "referenceId": "iot-alert-88921"
  }'

Example response

{
  "serviceOrderId": "so_91c2e7",
  "number": "WO-2026-1042",
  "status": "open",
  "createdAt": "2026-01-24T14:01:03Z",
  "referenceId": "iot-alert-88921"
}

Dispatch & Scheduling

POST /service-orders/{serviceOrderId}/dispatch: Assign technicians and schedule a work window.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/service-orders/so_91c2e7/dispatch \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "assignments": [
      {
        "technicianId": "tech_1003",
        "startAt": "2026-01-24T18:00:00Z",
        "endAt": "2026-01-24T20:00:00Z",
        "travelFromLocationId": "loc_van_1003"
      }
    ],
    "notes": "Priority call; customer has production impact"
  }'

Example response

{
  "serviceOrderId": "so_91c2e7",
  "status": "scheduled",
  "assignmentIds": ["asgn_5f3b9a"],
  "updatedAt": "2026-01-24T14:07:55Z"
}

Complete Work: Time, Parts, Checklist, Signature

POST /service-orders/{serviceOrderId}/complete: Submit work completion with time entries, parts consumed, checklist results, and customer signature.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/service-orders/so_91c2e7/complete \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "timeEntries": [
      {"technicianId": "tech_1003", "startAt": "2026-01-24T18:10:00Z", "endAt": "2026-01-24T19:40:00Z", "workType": "repair"}
    ],
    "partsUsed": [
      {"itemId": "part_chill_valve_2in", "quantity": 1, "sourceLocationId": "loc_van_1003"}
    ],
    "checklistResults": [
      {
        "checklistId": "chk_aa01",
        "items": [
          {"itemId": "chk_power_cycle", "status": "passed"},
          {"itemId": "chk_temp_reading", "status": "passed", "value": "6.1C"}
        ]
      }
    ],
    "resolutionSummary": "Replaced expansion valve, cleared E47. System cooling nominal.",
    "customerSignature": {"name": "Dana Lee", "signedAt": "2026-01-24T19:45:30Z", "uploadToken": "upl_sig_992ab1"},
    "attachments": [
      {"fileName": "after-repair.jpg", "uploadToken": "upl_9ed320"}
    ]
  }'

Example response

{
  "confirmationId": "conf_77d201",
  "serviceOrderId": "so_91c2e7",
  "status": "completed",
  "totals": {"laborHours": 1.5, "partsCount": 1},
  "documents": [
    {"type": "service_report", "url": "https://files.supergood.ai/reports/so_91c2e7.pdf"}
  ],
  "completedAt": "2026-01-24T19:46:10Z"
}

Inventory

GET /inventory/items: List parts and on-hand quantities by warehouse or van.

Query parameters

  • locationId: string (warehouse, van, or site store)
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "itemId": "part_chill_valve_2in",
      "sku": "VAL-CH-2IN",
      "name": "Chiller Expansion Valve 2\"",
      "uom": "ea",
      "quantityOnHand": 3,
      "locationId": "loc_van_1003",
      "bin": "B-03",
      "reorderPoint": 2,
      "updatedAt": "2026-01-24T12:12:55Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

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 service orders, assignments, inventory, and confirmations
  • Security: Encrypted transport, scoped tokens, and audit logging; respects SAP FSM role-based permissions and contract entitlements
  • Webhooks: Optional asynchronous delivery for long-running workflows (e.g., schedule changes, service confirmations)

Performance Characteristics

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

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as SAP FSM evolves.

Schedule Integration Call →


Frequently Asked Questions

Q: Which SAP FSM modules can this integration cover?

Supergood supports workflows across commonly used areas such as Service Orders, Scheduling & Dispatch, Mobile Checklists, Parts/Inventory, Assets/Installed Base, and Time & Expenses, 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 enterprise SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling.

Q: Can you sync labor, parts, and van stock to our ERP?

Yes. We normalize time entries, parts consumption, and inventory movements to match your ERP schema (e.g., items/SKUs, cost centers, rate categories) and deliver updates via webhooks or polling while complying with permission and usage constraints.

Q: Are checklists, photos, and customer signatures supported?

Yes. We support downloading artifacts and uploading attachments via signed uploads, with checksum validation and time-limited URLs. Checklist results are preserved with item-level status and values for compliance.


Salesforce Field Service API - Programmatically access Salesforce Field Service with Supergood


Ready to automate your SAP FSM workflows?

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

Get Started →

Read more