ml-connector
Epicor KineticRippling

Epicor Kinetic and Rippling integration

Epicor Kinetic runs manufacturing and distribution finance. Rippling runs payroll and workforce management. Connecting the two keeps your ERP headcount and labor cost dimensions aligned with your payroll records. New hires and department changes in Rippling update the cost centers and employee master records in Epicor Kinetic, so your accounting reflects your actual workforce structure. ml-connector handles the different API shapes on each side and moves the data on a schedule you control.

How Epicor Kinetic works

Epicor Kinetic exposes employees, cost centers, GL accounts, vendors, and purchase orders through REST OData v4 endpoints. Cloud instances authenticate with OAuth2 client credentials (or Basic Auth with API Key) against a tenant-specific base URL at https://<tenant>.epicorsaas.com/<instance>/api/v2/odata/<Company>/. On-premises sites use Token Resource Service to exchange credentials for short-lived Bearer tokens. Epicor publishes no webhooks, so employee and cost center records are read by polling with OData filters on date fields such as UpdatedOn to retrieve changed records since the last sync.

How Rippling works

Rippling exposes employees, departments, legal entities, accounting dimensions, and payroll runs through REST JSON endpoints at https://rest.ripplingapis.com. Authentication uses OAuth2 Authorization Code (for App Shop integrations) or API Key for direct server-to-server access. Webhooks for employee lifecycle events (created, updated, terminated, rehired) are restricted to App Shop integrations only; direct API-key integrations must poll using the updated_at filter on the employees endpoint or query the company activity event log for changes.

What moves between them

The main flow is Rippling into Epicor Kinetic. Employee records and department assignments flow from Rippling into Epicor Kinetic to keep the ERP headcount and cost center dimensions aligned. When an employee is hired, terminated, or moved to a different department in Rippling, ml-connector reads that change and updates or creates the corresponding employee record and cost center assignment in Epicor Kinetic. The sync runs on a schedule you define, such as daily or after each payroll run, to keep the two systems in agreement.

How ml-connector handles it

ml-connector stores both credential sets encrypted and uses OAuth2 on the Epicor Kinetic side, refreshing the bearer token before expiry (typically ~1 hour). On the Rippling side it uses either API Key or OAuth2 depending on your authentication method, and polls the employees endpoint with an updated_at filter to detect changes since the last run. Because neither system offers real-time webhooks for direct API-key integrations, ml-connector polls on a schedule and uses OData filters (UpdatedOn on Epicor Kinetic, updated_at on Rippling) to retrieve only records that have changed. Employee records are matched on unique identifiers and cost centers are validated in Epicor Kinetic before the update is written, so invalid dimension assignments are caught before they post. All records carry a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized contract manufacturer runs Epicor Kinetic ERP for finance and operations and uses Rippling for payroll and employee benefits across multiple locations. Before the integration, the finance team manually re-entered new hires and job transfers from Rippling into Epicor Kinetic each week, reconciling employee counts at month-end by hand. With Epicor Kinetic and Rippling connected, new hires and transfers flow automatically from Rippling into Epicor Kinetic, cost centers are validated and updated without re-keying, and the ERP headcount is always in sync with the payroll system. The manual reconciliation step at month-end is eliminated, and the finance team catches discrepancies in real time rather than at close.

What you can do

  • Sync employee records from Rippling into Epicor Kinetic, keeping headcount and employee master data aligned.
  • Map Rippling departments and cost centers to Epicor Kinetic GL dimensions so labor costs allocate to the correct accounts.
  • Authenticate Epicor Kinetic with OAuth2 or Basic Auth and Rippling with API Key or OAuth2.
  • Poll both systems on a schedule you define, with change detection on date fields and a full audit trail on every record.
  • Validate cost center dimensions in Epicor Kinetic before updating employee records to prevent invalid allocations.

Questions

Which direction does data move between Epicor Kinetic and Rippling?
The main flow is Rippling into Epicor Kinetic. Employee records, department assignments, and cost center dimensions flow from Rippling into Epicor Kinetic to keep the ERP headcount and labor costing aligned. Compensation and payroll data flow one direction only, so ml-connector does not write payroll entries back into Rippling.
How does the integration handle Epicor Kinetic's OAuth2 tokens and lack of webhooks?
ml-connector uses OAuth2 client credentials to authenticate to Epicor Kinetic and refreshes the bearer token before expiry (approximately 1 hour). Because Epicor Kinetic has no native webhooks, ml-connector polls the employee and cost center endpoints using OData filters on the UpdatedOn field to retrieve only records changed since the last sync, so the sync runs on a schedule rather than waiting for a push.
What happens if an employee record in Rippling maps to an invalid cost center in Epicor Kinetic?
ml-connector validates the cost center against Epicor Kinetic before updating the employee record. If the dimension does not exist or is inactive, the record is flagged in the audit trail and the update is not posted, so invalid allocations do not reach your general ledger. The record can be replayed once the cost center is corrected in Epicor Kinetic.

Related integrations

Connect Epicor Kinetic and Rippling

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

Get started