SAP ECC and ServiceTitan integration
Service companies run field operations in ServiceTitan and procurement in SAP ECC. When a technician completes a job and orders parts, ServiceTitan generates a purchase order. With SAP ECC and ServiceTitan connected, those POs flow directly into SAP ECC's procurement module, mapped to the correct vendor and materials. Vendor master data and material costs stay in sync, and the integration ensures that field service inventory needs are reflected in the central ledger without manual handoff.
What moves between them
Purchase orders and inventory bills created in ServiceTitan for field service jobs are polled or pushed via webhook and written into SAP ECC's procurement module via BAPI_PO_CREATE1, mapped to the correct cost center from the ServiceTitan job and the correct vendor from ServiceTitan's supplier master. Vendor master records flow from SAP ECC to ServiceTitan on a scheduled interval to keep supplier information current. Material and cost center reference data are aligned in both directions so that POs land on valid GL accounts and dimensions in SAP ECC. ServiceTitan AP Bills are read-only, so ml-connector does not write financial entries back into field service.
How ml-connector handles it
ml-connector accepts the on-premises SAP ECC RFC endpoint, hostname, username, and password from your SAP Basis team and routes BAPI calls through the customer's deployed integration agent; this on-premises requirement is not circumvented, but ml-connector manages the credential storage (encrypted) and the call sequencing. OAuth2 tokens for ServiceTitan are refreshed when a call returns 401, and the ST-App-Key header is attached to every request. RFC_READ_TABLE is used to poll vendor and material reference data on a schedule; BAPI_PO_CREATE1 requires an explicit BAPI_TRANSACTION_COMMIT call afterward, which ml-connector handles in sequence to prevent locked document states. ServiceTitan purchase orders are matched to SAP ECC vendors by vendor code or name; job cost centers are mapped to SAP ECC cost center dimension values. Because SAP ECC has no published rate limit, ml-connector backs off and retries if an RFC call returns SYSTEM_FAILURE or COMMUNICATION_FAILURE. Purchase orders carry a REF_DOC_NO field populated with the ServiceTitan PO ID, so retries and replays do not create duplicates in SAP ECC. Every record carries a full audit trail.
A real-world example
A regional HVAC and plumbing contractor operates service teams across four cities, dispatches jobs and manages inventory in ServiceTitan, and runs purchasing and materials accounting in SAP ECC. Before the integration, the procurement manager reviewed ServiceTitan POs every morning, manually entered them into SAP ECC by vendor and part number, and cross-checked material costs against SAP ECC's material master. With ServiceTitan and SAP ECC connected, each job's parts list flows into SAP ECC as a PO automatically, mapped to the correct cost center and vendor, and material costs are pulled from SAP ECC so the job quote reflects the true landed cost. Month-end close is faster because procurement and job accounting are already aligned.
What you can do
- Post ServiceTitan purchase orders into SAP ECC procurement (BAPI_PO_CREATE1), mapped to the correct vendor and cost center.
- Sync vendor master data from SAP ECC to ServiceTitan on a schedule so supplier information is current.
- Align material and cost center reference data in both directions so purchase orders land on valid GL dimensions in SAP ECC.
- Accept the on-premises RFC endpoint and Basic Auth credentials and route BAPI calls through the customer's deployed integration agent.
- Refresh ServiceTitan OAuth2 tokens, detect duplicate POs via REF_DOC_NO, and replay failed records with a full audit trail.
Questions
- Does the integration require SAP Basis involvement?
- Yes. Your SAP Basis team must configure the RFC endpoint (typically via SM59 transaction for remote RFC destinations), provide the hostname, username, and password, and ensure the on-premises integration agent has network access to the SAP ECC instance. ml-connector does not bypass the on-premises requirement; it manages the RFC credential storage and call sequencing once the agent is deployed.
- How are ServiceTitan purchase orders matched to SAP ECC vendors?
- ml-connector syncs the vendor master data from SAP ECC to ServiceTitan on a schedule, so the vendor name and code are already aligned. When a ServiceTitan PO is posted to SAP ECC, the vendor code or name from the PO is matched against the SAP ECC vendor master (LFA1 table via BAPI_VENDOR_GETLIST), and the BAPI_PO_CREATE1 call uses that vendor ID. Cost centers from the ServiceTitan job are mapped to SAP ECC cost center dimension values.
- What happens if a purchase order fails to post to SAP ECC?
- ml-connector stores a full audit trail of every PO attempt and can replay failed records. The PO is tagged with the ServiceTitan PO ID in the REF_DOC_NO field, so retries and replays do not create duplicate documents in SAP ECC. If the failure is due to a missing vendor or cost center, the underlying reference data is checked and synced before the PO is replayed.
Related integrations
More SAP ECC integrations
Other systems that connect to ServiceTitan
Connect SAP ECC and ServiceTitan
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started