ml-connector
Sage 100Pipedrive

Sage 100 and Pipedrive integration

Sage 100 runs back-office AR, AP, GL, and inventory on Windows servers in your office. Pipedrive runs your sales team's deal pipeline in the cloud. Connecting them keeps your CRM and your ERP in sync so sales data flows into Sage 100 without re-entry, customer contact changes in Pipedrive update Sage 100 customer records, and your finance team can see what is in the pipeline when they close the books.

How Sage 100 works

Sage 100 exposes customers, contacts, sales orders, vendors, AP invoices, purchase orders, GL accounts, and journal entries through SOAP Web Services at a customer-hosted IIS endpoint, and through the BOI COM layer wrapped by a local Windows agent for deeper AP and GL access. Authentication uses stateless username and password passed with each SOAP call; the agent layer adds Windows service account auth or mutual TLS. There are no webhooks or event stream; data is discovered by polling via DateLastUpdated and DateCreated fields. A company code (3-character identifier) must be included in every call. IIS SSL is required, and the user account must be individually enabled for Web Services in Sage 100 administration.

How Pipedrive works

Pipedrive exposes deals, organizations, persons, products, and activities through REST APIs at api.pipedrive.com, using OAuth2 bearer tokens or API key authentication. The platform supports webhook push with HMAC-SHA256 signature verification, and v1 and v2 webhook formats with separate action and entity fields. Pagination uses cursor-based (v2 and collections) or offset-based (v1 most endpoints) with limits up to 500 records. Pipedrive is CRM-only with no invoices, GL accounts, or employee objects. API token budgets and rate limits vary by plan, ranging from 20 to 480 requests per 2-second window.

What moves between them

The main flow is Sage 100 to Pipedrive. ml-connector polls Sage 100 for customers and sales orders every 15 to 30 minutes, transforms them into Pipedrive organizations and deals, and writes them to the CRM. Contact information in Sage 100 customer records maps to Pipedrive persons. The reverse flow uses Pipedrive webhooks to notify ml-connector of contact and organization changes, which are then written back into Sage 100 customer and contact records via the BOI agent or SOAP Web Services. Custom fields in Pipedrive are handled as opaque hashes; field definitions are retrieved separately from the Pipedrive metadata endpoints.

How ml-connector handles it

ml-connector manages Sage 100's authentication by building SOAP requests with the username, password, and company code per customer, handling the stateless nature of each call and storing credentials encrypted. For deeper AP and GL access, it routes through the local Windows agent, presenting the agent's certificate or API key at the TLS layer and managing the agent's own credential lifecycle. It polls Sage 100 at intervals tied to your sales cycle (typically 15 to 30 minutes for sales orders and customers), transforming Sage 100's multi-segment GL account format and date fields into Pipedrive's deal and organization schema. Pipedrive's OAuth2 token is refreshed on 401 responses. Webhook signatures are verified using HMAC-SHA256 before processing incoming contact and organization updates. Write operations into Sage 100 include existence checks to avoid duplicate creates (Sage 100 supports no idempotency keys), and retries with backoff for COM record-lock conflicts. The system tracks Sage 100's daily polling boundaries and Pipedrive's token budget to avoid burst overruns.

A real-world example

A mid-market industrial distributor runs Sage 100 for order processing, inventory, and general ledger on Windows servers at their warehouse. Their sales team uses Pipedrive to manage customer pipelines and forecast revenue. Before the integration, every time a deal closed in Pipedrive, the sales manager exported the opportunity and manually created a sales order in Sage 100, or passed a spreadsheet to the operations team to re-enter. Contact changes in Pipedrive (a customer moves to a new office, a buyer leaves the company) sat in the CRM but never made it back into Sage 100, so follow-up invoices went to outdated addresses. With Sage 100 and Pipedrive connected, each closed deal flows into Sage 100 as a sales order on the customer's account, and contact updates from the sales team sync back into Sage 100's customer file, ensuring invoicing always reaches the current address.

What you can do

  • Poll Sage 100 customers and sales orders every 15 to 30 minutes and write them to Pipedrive as organizations and deals.
  • Sync contact changes from Pipedrive back into Sage 100 customer records via webhooks.
  • Handle Sage 100 SOAP authentication, company-code routing, and the local Windows BOI agent.
  • Map Sage 100's multi-segment GL account format and date fields to Pipedrive's deal and organization schema.
  • Verify Pipedrive webhook signatures, manage OAuth2 token refresh, and retry COM-locked writes with exponential backoff.

Questions

Which direction does data flow between Sage 100 and Pipedrive?
The main flow is Sage 100 into Pipedrive. ml-connector polls Sage 100 for customers and sales orders and writes them to the CRM as organizations and deals. Contact and organization changes from Pipedrive are synced back into Sage 100 customer records via webhooks.
Does ml-connector work with the Sage 100 SOAP endpoint or the local agent?
ml-connector supports both. The SOAP endpoint at https://<customer-server>/ebusinesswebservices/ exposes customers and sales orders. For deeper access to AP invoices, purchase orders, and GL accounts, ml-connector uses the local Windows agent wrapping the BOI COM layer, managing the agent's certificate or API key at the TLS layer.
How does ml-connector handle Sage 100's lack of webhooks and Pipedrive's token budget?
Sage 100 is pull-only, so ml-connector polls customers and sales orders on a schedule (typically every 15 to 30 minutes). Pipedrive webhooks are used for the reverse direction (contact changes back into Sage 100). ml-connector tracks Pipedrive's daily token budget per plan and rate limits (20 to 480 requests per 2-second window) to avoid burst overruns and quota exhaustion.

Related integrations

Connect Sage 100 and Pipedrive

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

Get started