SYSPRO is the ERP of choice for a significant portion of mid-market manufacturing and distribution companies in Canada and South Africa. It handles inventory, purchasing, production, and financials with a depth that general-purpose ERPs often can't match for complex manufacturing operations. What it doesn't do particularly well is customer relationship management — and that's exactly where Salesforce comes in.
The combination makes sense on paper: SYSPRO for the back office, Salesforce for the front office. But connecting them requires navigating a few specific challenges that are unique to SYSPRO's architecture and data model. This article is a practical overview of what to expect.
Why SYSPRO and Salesforce Together
SYSPRO users typically run their sales processes in a mix of email, spreadsheets, and whatever built-in CRM functionality the platform provides — which is limited compared to Salesforce. Customer history, quotes, and communication records are scattered across systems that don't talk to each other.
The most common drivers for connecting the two are:
- Sales visibility into customer history. Reps want to see what a customer has ordered, what's outstanding, and whether they're current on their account — without calling someone in the warehouse.
- Quote accuracy. Salesforce quotes based on SYSPRO pricing rather than a manually maintained price list.
- Revenue reporting in one place. Leadership wants to see pipeline and actual invoiced revenue together — not one number from Salesforce and another from a SYSPRO report.
- Order handoff. A closed Salesforce opportunity automatically creates or updates a record in SYSPRO, eliminating re-keying.
Integration Options for SYSPRO
SYSPRO exposes data through a few mechanisms depending on the version you're running:
SYSPRO Business Objects (e-net)
Older SYSPRO deployments use the e-net business object layer — XML-based calls that interact with SYSPRO's business logic. This is reliable but requires more custom development work to bridge to Salesforce's REST-based APIs. It's not a modern integration pattern, but it works and is used in production at many sites.
SYSPRO APIs (SYSPRO 8 and later)
SYSPRO 8 introduced a REST API layer that significantly simplifies integration work. If you're on a recent version, this is the preferred approach — it's much more straightforward to connect to Salesforce's API ecosystem and to use standard middleware or custom code to move data between the two systems.
AppExchange Connectors
Several AppExchange connectors support SYSPRO, offering pre-built field mappings for common objects and scheduled sync without custom development. These are worth evaluating if your integration requirements are relatively standard — accounts, invoices, inventory quantities, price lists. If your requirements are complex or highly customized, a connector may require as much configuration as a custom build would.
Direct Database Integration
Some implementations read directly from the SYSPRO SQL database and push data to Salesforce via the API. This is fast and technically straightforward but creates a maintenance dependency — any SYSPRO schema change can break the integration. It also bypasses SYSPRO's business logic layer, which can cause issues with data consistency. We generally don't recommend it for new builds.
SYSPRO's Data Model: What to Know
A few things about how SYSPRO structures its data that are worth understanding before you design the integration:
Customer vs. Supplier vs. Contact
SYSPRO has separate entities for customers, suppliers, and contacts that don't map cleanly to Salesforce's Account and Contact objects. A SYSPRO "Customer" is closer to a Salesforce Account — it's the billing entity. Contacts in SYSPRO are typically sparse; most of the contact management ends up happening in Salesforce. Decide upfront which system owns contact data, because it won't make sense to sync in both directions.
Warehouses and Multi-Site Inventory
SYSPRO's inventory model is warehouse-centric. Item quantities are tracked per warehouse. If you're syncing inventory availability to Salesforce for quoting purposes, you need to decide whether you're showing total quantity, quantity at a specific warehouse, or available-to-promise quantity — and that decision affects both the integration design and what you display to sales reps.
Sales Orders vs. Invoices
SYSPRO distinguishes clearly between a Sales Order (committed, not yet shipped/invoiced) and an Invoice (shipped, billed). Both are relevant to Salesforce users, but for different reasons — sales reps care about order status, finance cares about invoice history. Your integration may need to sync both.
SYSPRO's Item Codes
Like most ERPs, SYSPRO item codes are often legacy alphanumeric strings that mean something to the warehouse but nothing to a sales rep. Before building a product catalog in Salesforce from SYSPRO item data, spend time on the naming and description cleanup. Sales reps won't use a product picker populated with codes like "WGT-002-MB-24."
What to Sync and What to Leave Alone
| Data Entity | Sync Direction | Notes |
|---|---|---|
| Customers / Accounts | SYSPRO → Salesforce | SYSPRO is master. Read-only in Salesforce. |
| Invoices | SYSPRO → Salesforce | Historical and current. Line-level if possible. |
| Item / Product Catalog | SYSPRO → Salesforce | Clean descriptions before syncing. |
| Pricing | SYSPRO → Salesforce Price Books | Sync on schedule, not real-time. |
| Inventory Availability | SYSPRO → Salesforce | Read-only; decide on warehouse scope. |
| Contacts | Salesforce master | Don't sync back to SYSPRO unless required. |
| Orders / Quotes | Salesforce → SYSPRO | Only if order entry is moving to Salesforce. |
The Implementation Approach That Works
For most SYSPRO + Salesforce projects, we recommend the same phased approach as any ERP integration: start with read-only SYSPRO data in Salesforce, validate it with real users, then add complexity from there.
The specific sequencing that works well for SYSPRO:
- Customers and recent invoice history first. This is the highest-value data for sales reps — they can see who they're calling and what that customer has ordered. It's also the lowest-risk sync: you're not writing anything back to SYSPRO.
- Item catalog and pricing second. Once sales reps can see customer history, pricing accuracy in quotes becomes the next pain point. Syncing the price book from SYSPRO solves it.
- Order integration third — only if needed. If the business wants to close the loop between Salesforce opportunities and SYSPRO orders, add this in phase three. It's the most complex part of the integration and the most disruptive to the sales process.
Version matters: The integration approach for SYSPRO 8+ is meaningfully different from older versions. Before scoping a project, confirm which version you're running and whether an upgrade is on the roadmap — because building against an old version that's about to be replaced doubles the work.
Getting Started
SYSPRO + Salesforce is a pairing we see regularly in Canadian manufacturing and distribution. The integration is technically well within reach — the main work is in making the right design decisions upfront and aligning the business on data ownership before the build starts.
If you're running SYSPRO and evaluating a Salesforce integration, we're happy to do a scoping conversation. We'll tell you what we've seen work, what's caught people off guard, and what a realistic implementation timeline looks like for your situation.