Salesforce integration with a custom ERP

The systems are meant to work together seamlessly, leading to more enhanced data consistency, elevating team productivity and efficiency, and generating savings in economic and human resources.
One of our clients came to us with a request to integrate their Salesforce CRM with a custom ERP.

The ERP system of our client is being used to manage the product catalog of the company, price listings, budgeting, accounting, and warehouse inventory. The company’s production, warehouse, accounting and delivery teams work in the ERP, while the sales team works in Salesforce.

The goal of the integration is to get the ERP system to “talk to” Salesforce and vice versa, so as to speed up information flows and reduce operational costs for the organization.
Schedule a free consultation on a similar issue
At the first meeting, we specify the task, understand the possible ways of solving it, and estimate the cost

Tasks that needed to be solved

An integration between Salesforce and the ERP software was therefore needed to perform these tasks:
  1. Update the distributor base automatically.
  2. Before working with any distributor, they must first go through checks to determine the validity of the company. These checks are carried out in the ERP. After all checks are complete, the company profile is updated on the ERP, and then, manually updated in Salesforce.
  3. An integration was needed to automatically update the company profile in Salesforce, and set next sales activities for the account owner
  4. Update prices in Salesforce with new prices from the ERP.
  5. Update the availability of products so that sales agents can communicate the right information on when to expect deliveries or stock quantities to their customers.
To update the accounting department which works in the ERP with information on new contracts signed, sales and deliveries made in Salesforce.
Integration between Salesforce and ERP software
Photograph: Lee Scott / Unsplash

How we implemented the integration

There is currently no ready-made solution for integrating salesforce with such custom made ERP, so we have developed our own.

On the ERP side, the OData protocol is used. With the help of this web protocol, a full-fledged exchange can be carried out. In our task, we use it only to import data from the client’s ERP to Salesforce.

We mapped and imported the following entities from the ERP into Salesforce:orce.
1. Product groups -> custom object in Salesforce: Product Groups
Product groups
Photograph: Lee Scott / Unsplash
Custom object in Salesforce: Product Groups
Photograph: Lee Scott / Unsplash
2. Price types -> standard Salesforce object: PriceBooks
Standard Salesforce object: PriceBooks
Photograph: Lee Scott / Unsplash
3. Prices -> standard Salesforce object: PriceBookEntry
Standard Salesforce object: PriceBookEntry
Photograph: Lee Scott / Unsplash
4. Products (standard Salesforce object: Products)
Product price list
Photograph: Lee Scott / Unsplash
Standard Salesforce object: Products
Photograph: Lee Scott / Unsplash
The import takes place using classes developed in Apex, which imports entities in a strict order:
  • Import of product groups
  • Import of products
  • Import of price types
  • Import of prices

This order is important in order to properly link entities and ensure that there is no conflict.

We also scheduled automatic imports to take place once a day.

The code execution schedule can be tracked in Salesforce => Jobs: Environments / Jobs / Scheduled Jobs.

Results of our implementation

The need for double entry of data by teams has been eliminated. This means more time is available for meaningful work.
Both systems now work as one, employees do not need to log into multiple systems or call each other to ask about product details.
The possibility of making errors during data entry has been eliminated.
The activities of Production, warehouse management and sales teams are synced. Each team has real time data they need for their work.
Production understands what goods are fast selling so as to increase production, the warehouse team understands what stocks to replenish.
Sales has up to date information on new, discontinued products, and products on sale.