ml-connector
Epicor KineticServiceNow

Epicor Kinetic and ServiceNow integration

Epicor Kinetic runs your supply chain and finance. ServiceNow runs your procurement and supplier management. Keeping the two in sync means purchase orders and invoices flow from Epicor into ServiceNow without re-entry, and vendor changes stay aligned across both platforms. ml-connector polls Epicor on a schedule you control, transforms the records to match ServiceNow's schema, and writes them into your accounts payable staging tables so they are ready for downstream approval workflows.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, purchase orders, invoices, and GL accounts through REST and OData v4 APIs at a tenant-specific URL (https://<tenant>.epicorsaas.com or on-premises equivalent). Authentication uses Basic Auth, API Key headers, or OAuth2 client credentials, and the company segment is mandatory in all v2 API paths. Epicor has no native outbound webhooks, so records are retrieved by polling with OData filter expressions on date fields (e.g., UpdatedOn gt {timestamp}) to retrieve only changed records since the last sync. Pagination uses offset-based $top and $skip parameters.

How ServiceNow works

ServiceNow exposes purchase orders, invoices, GL accounts, and cost centers through REST APIs at a customer-supplied subdomain (https://{instance}.service-now.com). Authentication uses OAuth2 Client Credentials (recommended for integrations) or Basic Auth, and every customer runs an isolated instance. Source-to-Pay Operations (the accounts payable and procurement module) is a licensed add-on; records are written to staging tables like sn_apo_invoice and proc_po. ServiceNow has no native outbound webhooks, so ml-connector retrieves records by querying on sys_updated_on timestamps on a schedule. Default token lifespan is 30 minutes.

What moves between them

The main flow is from Epicor Kinetic into ServiceNow. Purchase orders and invoices are polled from Epicor at a cadence you control and written into ServiceNow's accounts payable staging tables. Vendors are polled from Epicor and synced to ServiceNow's supplier records to keep procurement contact and payment details aligned. Reference data such as GL accounts and cost centers are matched between the two systems so invoices land on valid financial dimensions in both platforms. Writes flow one direction only; ServiceNow data does not flow back into Epicor.

How ml-connector handles it

ml-connector stores Epicor and ServiceNow credentials encrypted and refreshes OAuth2 bearer tokens on both sides before they expire (Epicor at roughly 1 hour, ServiceNow at 30 minutes). On the Epicor side, it includes the required API Key header in addition to the Bearer token, accepts the customer's tenant URL (cloud or on-premises), and includes the mandatory company segment in all OData paths. It polls with OData filter expressions on UpdatedOn to retrieve only records changed since the last sync, using offset pagination with $top=100 and $skip. On the ServiceNow side, it routes to the customer's unique instance subdomain and writes records into the appropriate Source-to-Pay staging tables. Purchase orders and invoices are transformed from Epicor's data model to ServiceNow's schema, mapping Epicor vendors to ServiceNow suppliers and GL accounts to cost centers. ml-connector backs off and retries on transient errors, tracks every record in its audit log, and can replay a record if a downstream write fails.

A real-world example

A mid-sized discrete manufacturer runs Epicor Kinetic ERP for procurement and finance, and ServiceNow for IT service management with the Source-to-Pay Operations procurement module. Before the integration, the procurement team exported purchase orders and invoices from Epicor twice a week and manually re-entered them into ServiceNow for approval workflows and cost allocation, a process that created data drift and delayed approvals by days. With Epicor Kinetic and ServiceNow connected, every new purchase order and invoice appears in ServiceNow automatically within minutes, routed to the correct cost center, and ready for approval. The procurement team no longer re-keys data, and approval workflows start with complete, accurate information.

What you can do

  • Poll purchase orders and invoices from Epicor Kinetic on a schedule you control and sync them into ServiceNow's accounts payable staging tables.
  • Map Epicor vendors to ServiceNow supplier records so procurement contact and payment details stay aligned across both systems.
  • Transform Epicor GL accounts and cost center data to ServiceNow dimensions so invoices land on the correct financial accounts.
  • Handle Epicor's tenant-specific URLs, company segment requirement, API Key headers, and OAuth2 token refresh at both sides.
  • Track every record with a full audit trail and replay failed writes if a downstream API call fails.

Questions

Which direction does data move between Epicor Kinetic and ServiceNow?
The main flow is from Epicor Kinetic into ServiceNow. Purchase orders, invoices, and vendor records are polled from Epicor and written into ServiceNow's accounts payable staging tables and supplier records. Reference data such as GL accounts and cost centers are aligned in both directions so invoices land on valid financial dimensions. Writes flow one direction only; ServiceNow data does not flow back into Epicor.
How does ml-connector handle Epicor's lack of webhooks and the requirement for company segments?
ml-connector polls Epicor on a schedule you define using OData filter expressions on date fields to retrieve only changed records since the last sync. Every API call includes the required API Key header in addition to the Bearer token, and the company segment is included in all OData v2 paths. Pagination uses offset-based $top and $skip parameters to retrieve large datasets reliably.
What happens when OAuth2 tokens expire on either side?
ml-connector tracks token lifespan on both sides and refreshes Bearer tokens before they expire (Epicor roughly hourly, ServiceNow at 30 minutes). The refresh happens transparently, so your integration does not experience outages from expired credentials. If a refresh fails, ml-connector returns an error and logs it to your audit trail for investigation.

Related integrations

Connect Epicor Kinetic and ServiceNow

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

Get started