ml-connector
Epicor KineticPipedrive

Epicor Kinetic and Pipedrive integration

Epicor Kinetic holds your master data for customers and vendors across your entire business. Pipedrive is where your sales team tracks customer relationships and deal progress. Connecting the two means your sales pipeline always references current customer records from your ERP, not stale spreadsheets. New customers, address changes, and credit status updates in Epicor Kinetic sync into Pipedrive on a schedule you control, so the sales team has accurate data without manual re-entry. When a deal closes and moves from Pipedrive back to an order in Epicor, the record IDs stay aligned.

How Epicor Kinetic works

Epicor Kinetic exposes customers, vendors, parts, purchase orders, GL accounts, and related business objects through REST OData v4 APIs at https://<tenant>.epicorsaas.com/<instance>/api/v2/odata/<Company>/ (cloud) or your on-premises server. Authentication uses Basic Auth (username and password base64-encoded), API Key (x-api-key header), OAuth2 client credentials (cloud SaaS only), or Token Resource Service (on-premises). Epicor has no native outbound webhooks, so connectors must poll using OData $filter queries on date fields to retrieve changed records since the last sync. Write operations for complex objects like invoices and purchase orders follow a two-step pattern: call GetNewXxx first, then UpdateMaster.

How Pipedrive works

Pipedrive exposes deals, organizations, persons, products, pipelines, stages, and activities through REST APIs at https://api.pipedrive.com/v1/ and https://api.pipedrive.com/api/v2/. Authentication uses either a scoped API token (x-api-token header) or OAuth2 authorization code flow with bearer token access. Pipedrive supports both v1 and v2 webhook formats with HMAC-SHA256 signature verification via X-Pipedrive-Signature. Webhook events arrive in action.object format (added, updated, deleted) on v1 and as separate action and entity fields on v2. Rate limits vary by plan: API tokens allow 20 to 120 requests per 2-second window, while OAuth apps allow 80 to 480 requests per 2-second window.

What moves between them

Customer and vendor records flow from Epicor Kinetic into Pipedrive as organization objects, with contact persons mapped to individual sales staff. Pipedrive's daily token budget caps the read rate; the integration tracks token consumption and backs off if approaching the budget. Changes in Epicor are detected via polling with OData timestamp filters, and only updated records are read on the next cycle. Pipedrive customers are marked with custom field tags mapping to their Epicor customer class or credit status. The integration never writes back to Epicor, so sales team edits in Pipedrive remain local and do not overwrite ERP master data.

How ml-connector handles it

ml-connector stores Epicor and Pipedrive credentials encrypted and uses Epicor's OAuth2 authentication with the required x-api-key header on each request to fetch customer and vendor records. For Epicor cloud instances, it builds the full OData URL from the tenant, instance, and company values provided per customer. On each sync cycle, it queries for records updated since the last timestamp using OData $filter (e.g., UpdatedOn gt '2026-06-12T14:30:00Z'), fetches a paginated result set (up to 100 records per request with $top and $skip), and maps each Epicor customer to a Pipedrive organization and each contact person to a Pipedrive person object. Pipedrive's daily token budget is tracked to avoid hitting the cap mid-integration, and rate limit 429 responses trigger exponential backoff retry. Custom fields are created once if missing and reused on every sync. Epicor's Bearer tokens refresh after expiry, and the integration logs every customer record created, updated, or skipped with full context so failed syncs can be replayed.

A real-world example

A mid-market distributor runs Epicor Kinetic to manage inventory, purchase orders, and customer accounts across three warehouses. The sales team uses Pipedrive to track opportunities and manage their pipeline. Before the integration, sales staff manually entered customer account numbers and credit limits into Pipedrive custom fields, and address changes in Epicor were never pushed to Pipedrive, leading to outdated phone numbers and ship-to addresses on sales activities. After new product launches, the sales team wasted time setting up organizations in Pipedrive that already existed in Epicor under different names. With Epicor and Pipedrive connected, customer records sync automatically after any change in Epicor, and sales staff can drill from a Pipedrive deal directly to the Epicor customer master to check credit and order history.

What you can do

  • Sync customer and vendor master records from Epicor Kinetic to Pipedrive as organization objects on a polling schedule you control.
  • Map Epicor customer contact persons to Pipedrive person records with phone, email, and custom field data.
  • Use OData timestamp filters to detect changed records and only re-sync updates since the last run.
  • Authenticate Epicor with OAuth2 and the required x-api-key header, and Pipedrive with OAuth2 or API token.
  • Track Pipedrive's daily token budget, back off on rate limits, and provide a full audit trail for every customer record synced.

Questions

Which direction does data move between Epicor Kinetic and Pipedrive?
Customer and vendor records flow from Epicor Kinetic into Pipedrive as organization objects. Address, contact, and credit status changes in Epicor are detected via polling and synced to Pipedrive, so the sales team always sees current data. Pipedrive itself does not push data back to Epicor; any changes in Pipedrive remain local to the CRM.
How does the integration handle Epicor's lack of native webhooks?
ml-connector polls Epicor's OData endpoints on a schedule you define, using $filter queries on date fields to retrieve only records changed since the last sync. This avoids full table scans and keeps API calls minimal while still catching updates within your desired sync window.
What happens if Pipedrive's daily token budget is exhausted during a sync run?
ml-connector tracks token consumption against Pipedrive's daily budget (which varies by plan tier and number of seats) and stops the sync gracefully if approaching the limit. It logs how many customer records were synced and how many remain, so the next scheduled run completes the batch without hitting the cap or failing mid-operation.

Related integrations

Connect Epicor Kinetic and Pipedrive

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

Get started