ml-connector
Infor CloudSuiteSnowflake

Infor CloudSuite and Snowflake integration

Infor CloudSuite runs manufacturing, procurement, and finance operations across the cloud ERP family. Snowflake serves as your finance data warehouse, holding reconciled records for analytics and business intelligence. Connecting the two keeps your warehouse fresh with the latest AP vendors, invoices, purchase orders, and GL accounts from your ERP, so your reports and reconciliations run on current data. ml-connector handles the different authentication models and per-customer infrastructure, polls CloudSuite on a schedule, and loads the data directly into Snowflake tables without intermediate staging.

How Infor CloudSuite works

Infor CloudSuite is a modular cloud ERP available in Industrial (SyteLine, LN, M3), Financials, and Distribution variants. It exposes suppliers, purchase orders, AP invoices, payments, GL accounts, customers, and items through the ION API Gateway, which supports REST and BOD/XML asynchronous messaging. The REST API uses OAuth 2.0 Resource Owner Password Credentials Grant with a service account and registered app client ID/secret, and credentials vary by customer and region. Token lifetime is configurable per tenant (1-24 hours). CloudSuite has no self-service webhooks, so records are read by polling the API for changes by modified date or status. ION Desk can be configured with BOD document flows for push notifications, but that requires administrative setup outside the API.

How Snowflake works

Snowflake is a cloud data warehouse that stores and queries data in user-defined tables. It exposes SQL execution through the SQL API (REST with JSON bodies) and also supports REST endpoints for Snowflake resources. Authentication uses Key Pair Authentication with RSA private key and JWT (recommended for server-to-server), or Programmatic Access Tokens (long-lived bearer tokens). Snowflake uses partition-based pagination and async queries that return a statementHandle for polling. It supports native Change Data Capture with Snowflake Streams and can trigger scheduled external functions via Tasks. Because Snowflake is a warehouse, not an ERP, all finance objects are user-defined tables without built-in schema.

What moves between them

Data flows one direction: from Infor CloudSuite into Snowflake. ml-connector polls CloudSuite for suppliers, invoices, purchase orders, GL accounts, and customer records on a schedule you set (daily, weekly, or tied to your month-end close). Each record is inserted or updated into a user-defined Snowflake table by primary key and timestamp. Reconciliation dimensions such as GL account strings and cost centers are also synced so reports can join invoice lines to valid GL dimensions. CloudSuite is the source of truth; Snowflake is append-only for audit and analytics.

How ml-connector handles it

ml-connector stores the CloudSuite OAuth2 credentials and per-customer tenant URL encrypted and obtains a bearer token before each poll cycle. It polls the CloudSuite API for suppliers, invoices, purchase orders, and GL accounts using list operations filtered by modified date, respecting the per-tenant rate limit (typically 100-500 requests per minute) and backing off on 429 responses. For each record retrieved, ml-connector constructs a Snowflake INSERT or MERGE statement using the SQL API with Key Pair Authentication, batching records to stay within rate limits. It handles the async nature of Snowflake SQL queries by polling the statementHandle and checking query status before proceeding. Because CloudSuite tokens have a configurable lifetime, ml-connector refreshes the bearer token proactively before expiry so polling does not stall. Every record insert is logged to an audit table with the source record ID, timestamp, and result, so failed records can be replayed when Snowflake availability returns.

A real-world example

A mid-market manufacturing company runs Infor CloudSuite Industrial for production, procurement, and finance. The finance team uses Snowflake as their analytics platform to track supplier performance, invoice aging, and purchase order commitments across multiple plants. Before the integration, data analysts exported supplier and invoice lists from CloudSuite and manually loaded them into Snowflake CSV tables, a process that took 4 hours per week and often missed recent transactions because exports ran on a delay. With CloudSuite and Snowflake connected, every new supplier added in CloudSuite and every invoice posted appears in Snowflake within hours. Analysts now run their weekly KPI dashboard on live data, and reconciliation becomes a SQL join instead of a manual check.

What you can do

  • Sync suppliers, invoices, purchase orders, GL accounts, and customers from Infor CloudSuite to Snowflake on a schedule you control.
  • Handle per-customer CloudSuite tenant URLs and OAuth2 token refresh so tokens never expire mid-poll.
  • Load records directly into Snowflake tables using Key Pair Authentication and the SQL API, with batching for efficiency.
  • Detect changed records in CloudSuite by modified date and only sync new or updated rows to reduce API load.
  • Log every record to an audit table with source ID and sync timestamp, so failed inserts can be retried.

Questions

Does ml-connector support all Infor CloudSuite product lines?
Yes. ml-connector works with CloudSuite Industrial (M3, LN, SyteLine), Financials, and Distribution. Because each product line exposes the same core finance entities (suppliers, invoices, GL accounts, customers) through the ION API Gateway, the same polling logic applies. Differences in pagination or entity fields are handled transparently.
How does ml-connector handle CloudSuite token expiry when polling?
ml-connector tracks the OAuth2 bearer token lifetime (1-24 hours, configured per tenant) and refreshes it proactively before expiry. If a token does expire during a poll, the next API call returns 401 and ml-connector obtains a fresh token and retries the request. This ensures polling never stalls due to token age.
Can ml-connector write data back from Snowflake to Infor CloudSuite?
No. This integration is read-only from CloudSuite to Snowflake. CloudSuite is the source of truth for suppliers, invoices, and GL accounts, and Snowflake is the analytics warehouse. If you need to post data back to CloudSuite, that would require a separate write-enabled workflow using CloudSuite's BOD transactional APIs.

Related integrations

Connect Infor CloudSuite and Snowflake

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

Get started