ml-connector
Epicor KineticHubSpot

Epicor Kinetic and HubSpot integration

Epicor Kinetic runs your supply chain and finance. HubSpot runs your sales and customer relationships. Connecting them keeps your customer master and vendor lists synchronized across both systems. New vendors added in Epicor automatically populate in HubSpot for procurement and supplier management, and customer records stay current across billing, sales, and service teams. ml-connector handles the different authentication schemes and moves data on a schedule you define.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, customers, purchase orders, APInvoices, parts, and GL accounts through REST endpoints with OData v4 filtering and pagination. Cloud instances use a tenant-specific URL with a Company segment mandatory in all v2 API paths. Authentication requires Basic Auth, API Key header (x-api-key), OAuth2 client credentials, or Token Resource Service bearer tokens. Epicor publishes no outbound webhooks, so records are retrieved by polling with OData date filters on fields like UpdatedOn. OAuth2 bearer tokens expire within an hour and require refresh logic. Write operations for complex objects follow a two-step pattern: GetNewXxx followed by UpdateMaster.

How HubSpot works

HubSpot exposes contacts, companies, deals, invoices, and line items through REST API with Private App Access Token (Bearer token) or OAuth 2.0. Records are retrieved via list and search endpoints with cursor-based pagination, limit 200 per page. Webhooks are available for real-time events but require a separate Public App registration distinct from authentication credentials. Batch operations are capped at 100 records per request. Invoices and commerce objects require associations to contacts and line items to be valid. Rate limits vary by plan tier: Professional tier allows 190 requests per 10 seconds.

What moves between them

The main flow runs from Epicor Kinetic into HubSpot. Vendor records from Epicor are polled based on UpdatedOn date and synced as HubSpot companies with vendor type classification. Customer records flow in the same direction, synced as HubSpot companies with customer classification. Reference mapping ensures each company in HubSpot carries the Epicor source ID for future updates. Changes are detected via OData UpdatedOn filtering on each polling cycle, so only records modified since the last sync are transferred.

How ml-connector handles it

ml-connector stores both authentication credentials encrypted and handles Epicor's mandatory API Key header plus OAuth2 bearer token refresh on 401 responses. It uses the customer-provided Epicor tenant URL and Company segment to build the correct v2 API endpoints and applies OData $filter on UpdatedOn with $top=100 and $skip pagination to retrieve only changed records since the previous sync. HubSpot companies are created or updated with the Epicor ID stored as a custom property, and the sync respects HubSpot's 100-record batch operation limit, chunking larger result sets. Associations between companies and contacts are preserved where available. The integration polls on a configurable schedule independent of Epicor's events, with exponential backoff on rate limits, and maintains a full audit trail of every record transferred so failed syncs can be replayed.

A real-world example

A mid-sized B2B distributor runs Epicor Kinetic for order management, supplier relationships, and inventory, and uses HubSpot for sales, quotes, and customer engagement. Before the integration, the sales team maintained a separate vendor and customer list in HubSpot, often out of sync with Epicor. Account managers would miss recent customer address changes or new suppliers. With Epicor and HubSpot connected, every vendor and customer update in Epicor flows to HubSpot automatically, and sales reps see current company information, supplier terms, and contact history in the CRM without manual re-entry or email updates.

What you can do

  • Sync vendor and customer records from Epicor Kinetic to HubSpot companies with type classification and source ID mapping.
  • Detect changes in Epicor using OData UpdatedOn filtering to transfer only modified records on each polling cycle.
  • Handle Epicor's API Key and OAuth2 authentication requirements, including bearer token refresh and v2 endpoint routing.
  • Respect HubSpot's batch operation limits and rate tier constraints while chunking large record sets.
  • Maintain a full audit trail of every vendor and customer record transferred, with replay capability for failed syncs.

Questions

Which records move between Epicor Kinetic and HubSpot?
Vendor and customer records from Epicor Kinetic sync into HubSpot as companies. Each company is classified by type (vendor or customer) and carries the Epicor source ID for matching on future updates. The sync runs on a schedule you define; only records modified in Epicor since the last sync are transferred.
How does ml-connector handle Epicor's API Key and token requirements?
Epicor requires both an API Key header and a bearer token. ml-connector stores both encrypted, includes the x-api-key header on every request, and refreshes the OAuth2 bearer token automatically when a call returns 401. The integration accepts your Epicor tenant URL and Company segment so it builds the correct v2 API endpoints.
What happens if the sync is interrupted or misses records?
Every record transferred is logged with a full audit trail. If a sync fails midway through a batch, the integration can replay that batch using the same OData query, so no data is lost. Successful transfers are marked to prevent duplicate entries on the next cycle.

Related integrations

Connect Epicor Kinetic and HubSpot

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

Get started