Duplicate, diverging data
Customers, products and states are entered more than once and begin to differ as soon as something changes.
We connect CRM, ERP, ecommerce and internal tools through APIs, webhooks and controlled synchronisation so every data point has one source and a clear path.
Created on deal close · nobody typed it on this side
No double entry: the record is typed once and stays the same in both systems.
We build on what your team already knows. If the platform has an API or webhooks, it integrates; if it does not, we look for the most stable path before proposing a change of tool.
And any other platform with a public API.
The shops billed through a point of sale system, the online store ran on its own and the back office kept the ERP. The same product was loaded three times and stock never matched. We connected the three so each piece of data is entered in one place and travels to the rest on its own.
Clothing retail chain · Argentina
Point of sale in the shops with the sales of the day, online store with the catalogue and the photos, ERP with prices, costs and invoicing. A product was created three times, a price was updated twice and stock was adjusted by hand every morning off a spreadsheet someone put together before opening.
We defined which system rules over what: the ERP is the master for product, price and cost; the online store owns the commercial content, meaning photos, copy and categories; and stock has no single owner, it syncs as movements and not as a number. Nobody writes “12 left”: each channel reports “2 went out” and the ERP adds it up. That way two simultaneous sales in two channels are not competing to overwrite the same value. For data that really is a single value, the system that is not the master can propose a change but not impose it: if someone edits a price in the store, the sync puts it back to the ERP value and logs the attempt, so the conflict is visible instead of being settled in silence.
The online store fires a webhook as soon as an order is confirmed, so the sale reaches the ERP right away. Stock movements and price changes travel in a queue processed every few minutes, and every night a full comparison runs across the three systems. The point of sale in the shops had no usable API: we built a service that reads its database and publishes every receipt into the same queue, and to write back we use its own file importer instead of touching its tables from behind.
Every message carries its own identifier, source plus receipt number, so a retry does not enter twice. A dashboard shows the last sync for each channel, what is pending and what failed with the reason. Whatever does not go through after the retries lands in a separate queue, gets corrected and is reprocessed from there. The nightly comparison does not fix anything on its own: it flags the differences for someone to decide, because an automatic correction over a badly mapped field multiplies the problem. Stock is entered once and the three channels see it.
The same mechanics fit any operation with several systems touching the same data: a distributor with warehouses and online sales, a travel company between its booking engine and its invoicing, or an ERP that has to live alongside a CRM. The systems and the fields change, the way of deciding who rules does not.
A good CRM and a good ERP can still create a bad operation when people copy information between them and nobody knows which one holds the correct version.
Customers, products and states are entered more than once and begin to differ as soon as something changes.
The sale ends in one system and delivery begins in another through an email or intermediate spreadsheet.
When synchronisation fails, there is no queue, alert or owner. The customer discovers the break.
Integration does not mean copying everything everywhere. We define which system owns each entity, which events propagate and how a difference is resolved.
Real-time or scheduled connections chosen according to platform capacity, volume and criticality.
Updates in both directions with loop, conflict and duplicate prevention.
Stable keys that recognise the same customer, product or transaction across different systems.
Logs, queues, retries, alerts and reports for finding and recovering incomplete cases.
The connection technology is the short part. The important work is agreeing source, direction, frequency and behaviour when systems disagree.
Entities, fields, identifiers, volume, limits and business owners.
Which event moves, in which direction, with which validation and what happens when the destination fails.
Normal cases, duplicates, retries and differences inside a controlled environment.
Gradual launch, queue metrics, actionable alerts and operations documentation.
The deliverable covers the happy path and interruptions. Without reconciliation, integration can move data quickly and still leave information behind.
Sometimes exports, structured email or interface automation are available, but they have more limitations. We assess stability and risk before proposing an alternative.
Authorised changes can move in both directions. It requires priority rules, loop prevention and clear conflict identification.
We apply least privilege, separate credentials, encryption in transit, input validation and logs designed not to expose sensitive content.
It depends on API quality, entity count, volume and error cases. A bounded connection can often be delivered in weeks after discovery.
No. Migration moves data once; integration keeps systems connected over time. A project may need one, the other or both.
We review source, destination, volume and exceptions, then design an integration that can also recover when something fails.
Kai Kommit agent · Online
Hi — I'm Kai, Kommit's agent. Tell me which process is costing you hours and I'll tell you where to start.
AI agent: it can be wrong. Anything agreed is confirmed by the team. Prefer the form →