ml-connector
Infor CloudSuiteLooker

Infor CloudSuite and Looker integration

Infor CloudSuite runs your finance, procurement, and supply chain. Looker powers your business intelligence and reporting. Connecting the two lets your finance team see real-time vendor performance, payables aging, purchase commitments, and GL account balances on a dashboard, without re-keying data or managing batch exports. ml-connector bridges the very different APIs on each side and updates your Looker dashboards on a schedule you control.

How Infor CloudSuite works

Infor CloudSuite (M3, SyteLine, FSM, LN) exposes suppliers, invoices, purchase orders, GL accounts, items, customers, and payments through the ION API Gateway, a multi-tenant REST and BOD/XML messaging platform. Each customer receives unique base URLs and OAuth credentials tied to their tenant and region. CloudSuite has no self-service webhooks; data is read by polling the REST API for entities filtered by modified date or status, or by subscribing to ION Desk document flows if an admin configures them ahead of time. Rate limits typically run 100-500 requests per minute per client.

How Looker works

Looker is a Google Cloud business intelligence platform that models warehouse data and serves it via REST API. It exposes queries, looks, dashboards, scheduled plans, users, groups, and folder structure through REST endpoints. Looker uses OAuth2 client credentials and bearer tokens that expire after one hour with no refresh mechanism, so a new login is required for each hour of operation. It has no inbound webhooks or write path for financial records; data flows one direction from source systems into Looker's modeled datasets.

What moves between them

Suppliers, invoices, purchase orders, GL accounts, and payments flow from Infor CloudSuite into Looker on a daily or weekly schedule you set. ml-connector queries CloudSuite via REST, maps the records to the Looker dataset schema, and appends them to Looker tables via scheduled plans or direct API calls. Because both systems are read-heavy on this direction, ml-connector tracks the last modified timestamp in CloudSuite and only exports records that have changed since the last run, so each refresh is incremental and fast.

How ml-connector handles it

ml-connector stores Infor CloudSuite credentials encrypted (base URL, tenant ID, OAuth client ID and secret) and manages OAuth token refresh proactively, since CloudSuite tokens can live 1 to 24 hours depending on tenant policy. For Looker, it obtains a new bearer token at the start of each sync because Looker tokens expire after one hour and do not refresh. CloudSuite enforces per-customer rate limits, so ml-connector queues requests and backs off when it receives a 429 response. Because CloudSuite has no idempotency guarantees on Add operations, ml-connector queries before inserting to detect duplicates and uses external job deduplication with a unique cloudSuite record ID. Looker scheduled plans deliver data on the cadence you choose; ml-connector populates the payload via REST before triggering the plan so your dashboards stay current. Infor CloudSuite M3 requires CONO (company number) on most calls, so company filtering is applied per customer. Every record carries a full audit trail and can be replayed if a downstream Looker API call fails.

A real-world example

A mid-sized distributor runs Infor M3 CloudSuite for procurement and finance. The finance controller wants to track cash flow, payables aging, and purchase commitments in real time so the team does not have to run reports and export CSVs at week-end. The team also needs to slice data by supplier, company, and GL account for variance analysis during monthly close. With Infor CloudSuite connected to Looker, ml-connector exports the latest invoices, POs, and GL balances to a Looker dataset on a daily schedule. The finance team builds dashboards on top of that data, filters by company and account, and monitors aging payables and PO encumbrance without touching a spreadsheet.

What you can do

  • Export suppliers, invoices, and purchase orders from Infor CloudSuite to Looker on a daily, weekly, or custom schedule.
  • Sync GL accounts and balance details so your finance dashboard reflects the current chart of accounts and account balances.
  • Query CloudSuite payment records and delivery performance by supplier and match them to Looker models for vendor scorecards.
  • Handle Infor CloudSuite OAuth token refresh and Looker's one-hour token expiry transparently so your dashboards stay current without manual re-authentication.
  • Track modified timestamps in CloudSuite and export only changed records, so each refresh is incremental and respects rate limits.

Questions

Does data flow both directions between Infor CloudSuite and Looker?
No, data flows one direction from Infor CloudSuite into Looker. CloudSuite is the source of suppliers, invoices, GL accounts, and payments. Looker models and visualizes that data but does not write back to CloudSuite, since Looker has no native write path to ERP records.
How does ml-connector handle the different OAuth token lifetimes on each side?
Infor CloudSuite tokens live 1 to 24 hours depending on your tenant admin's policy; ml-connector refreshes them proactively before expiry. Looker tokens expire after exactly one hour with no refresh mechanism, so ml-connector obtains a new token at the start of each sync by calling /api/4.0/login with your client credentials.
How does the integration respect Infor CloudSuite's rate limits?
CloudSuite typically allows 100 to 500 requests per minute per client. ml-connector queues requests and backs off when a 429 response is received, then retries with exponential jitter. It also batches queries by company number (CONO) to minimize round trips and respects the modified timestamp filters to export only changed records on each run.

Related integrations

Connect Infor CloudSuite and Looker

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

Get started