ml-connector
Infor CloudSuiteServiceTitan

Infor CloudSuite and ServiceTitan integration

Infor CloudSuite runs your financial operations. ServiceTitan dispatches and tracks your service crews and inventory. Connecting the two means invoices and AP bills generated by ServiceTitan flow into Infor CloudSuite's general ledger without re-entry, and your purchase orders and vendor reference data stay aligned across both systems. ml-connector handles the very different APIs and credential sets on each side and moves the data on a schedule you define.

How Infor CloudSuite works

Infor CloudSuite (M3, SyteLine, LN, FSM product lines) exposes suppliers, purchase orders, invoices, GL accounts, items, payments, and customers through the ION API Gateway using REST and BOD/XML messaging. The cloud product authenticates with OAuth 2.0 Resource Owner Password Credentials against a tenant-specific base URL provided in a .ionapi credentials file, so each customer's hostname and endpoint differ. There are no native webhooks; ml-connector can poll via REST API or subscribe to ION BOD document flows (which require ION Desk admin configuration per event type). Token lifetimes vary from 1 to 24 hours per tenant configuration.

How ServiceTitan works

ServiceTitan exposes invoices, payments, AP bills (read-only, auto-generated from purchase orders), purchase orders, vendors, inventory items, jobs, customers, and employees through REST APIs at tenant-specific URLs. It authenticates with OAuth2 client-credentials grant and requires the ST-App-Key header on every call, in addition to the Bearer token. Tokens expire after 900 seconds. ServiceTitan supports outbound webhooks with HMAC-SHA256 signature verification for job, invoice, payment, and customer events, with configurable retry intervals. Chart of accounts are not exposed via API; GL mapping happens inside ServiceTitan's UI or through native QuickBooks/Intacct connectors.

What moves between them

The main flow is ServiceTitan into Infor CloudSuite. When a ServiceTitan AP bill (auto-generated from a purchase order marked received) or invoice is created or updated, ml-connector carries that record into Infor CloudSuite's AP and GL modules via the ION API. Vendor reference data, items, and purchase orders flow both directions so ServiceTitan invoices land on valid Infor CloudSuite vendors and accounts. Invoices are posted to Infor CloudSuite after vendors and items are aligned, preventing validation errors. Because ServiceTitan AP bills are read-only, ml-connector does not write financial records back into ServiceTitan.

How ml-connector handles it

ml-connector stores both credential sets encrypted and constructs the Infor CloudSuite base URL and OAuth endpoints from the tenant's .ionapi file. It presents the ServiceTitan ST-App-Key header and OAuth Bearer token on every call, refreshing both tokens before expiry: ServiceTitan tokens after 750 seconds, Infor CloudSuite tokens on a proactive schedule tied to the configured lifetime. It polls ServiceTitan via webhook subscription (preferred) or scheduled REST calls, and posts vendor and item records to Infor CloudSuite first, so that when invoices arrive, the GL accounts and vendor references already exist. Because Infor CloudSuite requires a CONO (company number) parameter on most M3 operations, ml-connector accepts that per customer and validates it against the instance. AP bills from ServiceTitan are mapped to Infor CloudSuite invoice headers and lines, allocating to the cost center supplied by ServiceTitan. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A regional HVAC and plumbing service company runs ServiceTitan for dispatch, scheduling, and billing across multiple service areas, and uses Infor CloudSuite M3 for procurement, inventory, and financial consolidation. Before the integration, office staff exported invoices from ServiceTitan every week, looked up the matching vendors in Infor CloudSuite, and manually created AP journal entries. With ServiceTitan and Infor CloudSuite connected, each invoice and AP bill flows into M3 automatically after vendors are synced, the invoice lands on the correct GL account and cost center, and the accounts-payable team closes the books without manual re-keying. The field teams dispatch and invoice in real time, while finance gets reliable data with a full audit trail.

What you can do

  • Sync ServiceTitan AP bills and invoices into Infor CloudSuite as AP documents, posted to the correct vendors and GL accounts.
  • Keep vendor reference data and items aligned between ServiceTitan and Infor CloudSuite so invoices land on valid accounts.
  • Handle Infor CloudSuite's per-customer OAuth endpoints, base URL, and company number, extracted from the .ionapi credentials file.
  • Manage both systems' token lifetimes and refresh cycles, preventing outages from expired credentials.
  • Poll ServiceTitan via webhook subscription or scheduled REST calls, with full audit trail and error replay on every record.

Questions

How does ml-connector handle Infor CloudSuite's per-customer base URL and OAuth endpoints?
Infor CloudSuite stores the base URL, tenant ID, and OAuth token endpoint in the customer's .ionapi credentials file. ml-connector extracts these fields during setup and constructs the ION API Gateway URL for that specific instance, since there is no shared base hostname. Token lifetime is also tenant-configurable, so ml-connector proactively refreshes before expiry to prevent outages.
Can AP bills flow from ServiceTitan back into Infor CloudSuite via webhooks?
Yes. ServiceTitan supports outbound webhook subscriptions for invoice and AP bill events with HMAC-SHA256 signature verification. ml-connector can subscribe to those events and carry invoices and AP bills into Infor CloudSuite on push, with 10-, 30-, 60-, and 300-second retry intervals. Alternatively, ml-connector can poll the ServiceTitan REST API on a schedule.
Why does ml-connector sync vendors and items before invoices?
ServiceTitan invoices reference vendors and items that must already exist in Infor CloudSuite before the invoice can post successfully. ml-connector syncs vendor and item reference data first, so when an invoice arrives, the GL account and vendor look-up succeed without validation errors.

Related integrations

Connect Infor CloudSuite and ServiceTitan

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started