ml-connector
Epicor KineticLooker

Epicor Kinetic and Looker integration

Epicor Kinetic runs your manufacturing, distribution, or service operations. Looker turns data into insights. Connecting the two lets your business analysts see current AP invoices, purchase orders, GL transactions, and inventory directly in Looker dashboards without delay or manual exports. Finance teams get self-service reports on vendor spend, cash flow, and cost allocation. Supply chain teams see purchase order status and inventory turns refreshed on the cadence you set.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, AP invoices, purchase orders, payments, customers, parts, GL accounts, and custom Business Activity Queries (BAQs) as REST OData v4 endpoints. Cloud instances use tenant-specific URLs (https://<tenant>.epicorsaas.com) and authenticate via Basic Auth, API Key, or OAuth2 client credentials. On-premises deployments use a similar REST API with Basic Auth or Token Resource Service for bearer tokens. Epicor Kinetic has no native outbound webhooks, so data is retrieved by polling with OData date filters to capture changes since the last run. Offset pagination is supported via $top and $skip parameters.

How Looker works

Looker is a business intelligence platform that connects to data warehouses and cloud data sources. It exposes modeled data, dashboards, and scheduled plans via REST API authenticated with OAuth2 client credentials. Looker's API does not natively receive ERP data, but instead models data already present in connected warehouses. Scheduled Plans allow cron-driven exports to webhooks, email, S3, or SFTP. Looker APIs support querying, running parameterized looks, and managing dashboards, but writes are limited to content creation and updates. Looker tokens expire after 1 hour and must be refreshed by calling login again.

What moves between them

Epicor Kinetic financial and operational records flow into Looker for modeling and analysis. ml-connector polls Epicor Kinetic on a configurable schedule (typically daily or per shift) to retrieve AP invoices, purchase orders, GL account transactions, vendors, and parts that have changed since the last sync, identified by OData date filters. Records are mapped to Looker's data structure and either inserted into a staging warehouse that Looker models consume or submitted via Looker's REST API for dashboard population. The flow is one-way: Epicor Kinetic is the source of truth, and Looker is the analytics consumer. GL transactions and AP invoices are read-only in Looker, so ml-connector does not attempt to write financial data back to Epicor Kinetic.

How ml-connector handles it

ml-connector stores Epicor Kinetic API credentials (Basic Auth username and password, API Key, or OAuth2 client ID and secret) encrypted and refreshes OAuth2 bearer tokens when they approach expiration (Epicor tokens expire in roughly 1 hour). On each sync run, it constructs OData $filter queries targeting date fields like UpdatedOn to fetch only records changed since the last successful poll, avoiding full table scans. Because Epicor Kinetic requires the Company segment in the URL path, the customer specifies their company code once during setup. Looker OAuth2 tokens are obtained by exchanging client credentials via the login endpoint and refreshed every hour. Records are batched into Looker dashboards or staged warehouse tables on a schedule the customer controls. Epicor Kinetic has no published API rate limits for SaaS, so ml-connector respects documented best practices and includes exponential backoff for any throttling signals. Each sync run is logged with timestamps and record counts, enabling audit trails and replay if a downstream operation fails. Bearer tokens that expire mid-run trigger a re-authentication and retry, ensuring the sync does not fail silently.

A real-world example

A mid-sized discrete manufacturer runs Epicor Kinetic for purchasing, inventory, and general ledger. The finance director and supply chain manager each use Looker dashboards to monitor vendor spend, outstanding purchase orders, and AP aging. Before the integration, data was exported from Epicor Kinetic once per week, uploaded to a data warehouse, and modeled in Looker, meaning reports were always at least days old. With Epicor Kinetic and Looker connected, purchase orders and AP invoices are synced daily at close of business, dashboards refresh overnight, and the team sees current vendor performance and cash flow commitments on Monday morning without delay.

What you can do

  • Sync AP invoices, purchase orders, and vendor master data from Epicor Kinetic into Looker dashboards and reports.
  • Poll Epicor Kinetic using OData date filters to capture only changed records, avoiding full exports and keeping Looker current without heavy sync costs.
  • Authenticate Epicor Kinetic via OAuth2 client credentials or API Key and Looker via OAuth2, with automatic token refresh and retry on expiration.
  • Map Epicor Kinetic GL accounts, cost centers, and dimensions to Looker models for drill-down analysis by department, project, or supplier.
  • Track every record in Looker with its Epicor Kinetic source ID, allowing users to link back to the origin transaction for validation and audit.

Questions

Does ml-connector push data to Looker in real-time or on a schedule?
ml-connector polls Epicor Kinetic on a schedule you define (typically daily, overnight, or per shift) and syncs changed records to Looker. Because Epicor Kinetic has no native webhooks, near-real-time is not possible, but daily or shift-end polling keeps dashboards current for reporting and analysis. You set the cadence.
Can Looker write purchase orders or invoices back to Epicor Kinetic?
No. Epicor Kinetic is the source system and Looker is the analytics consumer. ml-connector moves data one direction only: Epicor Kinetic to Looker. Financial records in Looker are read-only modeling artifacts, not live transaction data that can be posted back.
How does the integration handle Epicor Kinetic's tenant-specific URLs and multiple companies?
ml-connector accepts the full Epicor Kinetic base URL and company code for each customer during setup, since Epicor Kinetic publishes tenant-specific cloud instances. The company segment is included in all OData requests as required by the Epicor Kinetic v2 API, ensuring data is queried from the correct legal entity.

Related integrations

Connect Epicor Kinetic and Looker

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

Get started