Many companies in Turkey still run customer details, quotes and sales follow-up on Excel files and email threads. Once they decide to move to a CRM, the first big question comes up straight away: will the same customer and order details have to be typed into the CRM and the accounting software separately?
The answer should be no. But connecting a CRM to Logo, Mikro, Netsis or SAP takes more than saying "let's move some data between two systems." At BernSoftware we have collected the lessons we learned while integrating our CRM software, BernCRM, and our field sales platform, BernSFA, with these ERPs.
1. First decide which data belongs to which system
Most integration problems come from the same data being editable in two places. Draw a clear line from the start:
- The ERP's data: customer accounts and balances, stock, product records, price lists, invoices.
- The CRM's data: opportunities, pipeline stages, quotes, tasks, meeting notes.
The CRM can read the ERP's data but does not change it. If a salesperson is allowed to edit a customer's address in the CRM, there has to be a defined way for that change to reach the ERP, along with who approves it.
2. Make the customer account code the one shared key
Is "Kuzey Market" in the CRM the same customer as "KUZEY MARKET LTD. ŞTİ." in the ERP? An integration that matches records by name will produce duplicate accounts sooner or later.
Every customer record should be tied to its account code in the ERP. When a new prospect is created in the CRM it has no account code yet; the account should be opened in the ERP with the first order or approved quote, and the code written back to the CRM.
3. An approved quote should become an ERP order on its own
A CRM pays off most at the step from quote to order. The flow should look like this:
- The quote is built in the CRM from the price list and the discount rules.
- If required, it goes through manager approval.
- When the customer accepts, the quote is transferred to the ERP as an order.
- The document number the ERP assigns is written back to the CRM, and the opportunity is closed as "won".
That last step matters: the salesperson should see not only that the order was "sent", but that it really exists in the ERP.
4. Stop the same order from landing twice
What happens if the connection drops in the middle of a transfer? The CRM cannot tell whether the order made it, so it sends it again. Without a safeguard, the ERP ends up with the same order twice.
The fix is to give every order a unique ID on the CRM side and store that ID in a reference field of the ERP document. Before each transfer, the integration searches the ERP for that reference; if the document is already there, it does not create a new one but returns the existing document number.
5. Don't sync every kind of data at the same pace
"Everything in real time" sounds good, but it adds needless load and fragility. Look at how fast each kind of data actually changes:
- Orders and collections: immediately.
- Stock and price lists: at fixed intervals.
- Customer balances and reports: as needed, for example a few times a day.
For bulk data, sending only the records that have changed, rather than everything every time, improves both speed and reliability.
6. Nothing should get lost while the ERP is down
ERPs go down for maintenance too, servers restart, the office network drops. The integration should first write every transaction coming from the CRM to its own queue and pass them on in order once the ERP can be reached. Temporary errors (timeouts) should be retried after a pause; permanent errors (a closed customer account, an invalid product code) should land on a visible list of transactions that need attention, and not be retried indefinitely.
7. Keep track of the price list each quote used
A salesperson sends a quote on Monday, the price list is updated on Wednesday, and the customer accepts on Friday. Which price should the order carry into the ERP?
The answer is a commercial decision for the company, but the system has to be able to raise the question. If each quote stores the version of the price list used to prepare it, the order is not quietly repriced when the list changes; it goes to approval instead.
8. Plan permissions, audit trails and KVKK from the start
A CRM holds some of the company's most sensitive data: customer contact details, balances, meeting notes. Questions to settle at the outset:
- Which customers and which fields can each user see?
- Who changed what, and when? Is every integration transaction logged?
- Is the data kept on the company's own server or in a cloud it has chosen?
In short
A good CRM–ERP integration is invisible: the salesperson prepares the quote, the customer approves it, the order reaches accounting by itself, and nobody types the same information twice. Getting there means deciding who owns each piece of data, using a single customer account key, blocking duplicate records and being ready for the ERP's bad days.
We built BernCRM on these principles: customer records, the sales pipeline, quote and approval flows, tasks and reports work two ways with Logo, Mikro, Netsis, SAP and other systems that offer a web service.
Planning a project like this?
Plan it in 10 steps