An order lands on your online store at 9pm. The next morning someone opens the back office and retypes the customer name, the ICE number, the delivery address and the product lines into the ERP to issue the invoice, then enters the same details in the CRM so the sales rep knows his account has bought something. At noon, logistics exports an Excel file for the carrier. At month end, accounting reconciles the whole thing because the totals do not match.
Every step of that journey takes a few minutes, and the wasted time is the easiest part to measure. The real damage is that there are now three versions of the same customer and two versions of the same amount, with no rule saying which one is official.
Removing that retyping has a name: data integration. In Morocco in 2026, a project like this runs from a few tens of thousands of dirhams for a single flow to several hundred thousand for a full exchange between four systems. What moves the invoice and the calendar has almost nothing to do with the technology you pick.
What your team still does by hand to make your tools talk
Before the budget conversation, look at the daily gestures. In Moroccan SMEs that arrive with this need, the same symptoms keep showing up:
- A daily or weekly Excel export from one tool, cleaned by hand (columns renamed, rows deleted), then imported into another.
- A reference file that lives on one person’s laptop and that everyone requests from her over WhatsApp.
- Stock levels that are right in the ERP and wrong on the website, or the reverse, updated whenever someone remembers.
- A monthly close that starts with two days of reconciliation between online sales and accounting entries.
- A sales rep calling a customer without knowing he ordered online the week before.
Those gestures are the real specification, far more than the list of software products. And when management orders a dashboard before fixing this plumbing, the dashboard simply shows wrong numbers faster than before. That is why a data quality audit belongs before the integration project, or at the very least alongside it.
Data integration: what the word actually covers
Four families of solutions hide behind the term. A serious provider tells you which one he is proposing, and why he is ruling out the others.

- APIs. Every modern application exposes endpoints to read and write its data. A connector between the ERP API and the CRM API is the cleanest route: near real time, usable error messages, no stray files. It assumes both tools have a documented API that your licence actually grants you.
- ETL or ELT. Extract, transform, load, usually in batches (hourly, overnight). This is the right approach for feeding a warehouse or consolidated reporting, and the wrong one when the requirement is “the invoice must exist within two minutes”.
- Middleware. An intermediate layer (an integration platform or custom middleware) centralises the flows, keeps a trace of every message and replays what failed. Once an SME goes past three or four connections, that middleware prevents the spider web of scripts where nobody knows any more who writes what.
- RPA. A robot that drives the software interface the way a human would. A last resort when an old ERP offers no other door. It works, it is fragile, and it breaks the first time a screen changes.
The choice depends mostly on what your ERP allows. Check that before any price discussion: some vendors charge separately for the API module or cap the number of calls, and an integration quote built on an API your contract does not include will not survive contact with reality.
The journey of one order, from the store to accounting
To make this concrete, here is what an automated flow performs on every order, and what your team currently does from memory:
- The trigger. The site notifies the flow that an order has been paid (a webhook), or the flow polls every two minutes to ask whether anything is new. The first is more responsive, the second is easier to supervise.
- Extraction. The full order is retrieved: customer, addresses, lines, discounts, shipping fees, payment method, VAT applied.
- Normalisation. Formats are forced into the ERP standard: phone numbers in +212 form, city names written the same way everywhere, amounts with the right decimal separator, dates in the right timezone, ICE numbers stripped of spaces.
- Customer matching. This step decides the quality of the whole result. Does this customer already exist in the ERP? On which key do you decide: email, phone, ICE, company name? Without a written rule you create a duplicate every time an existing customer orders.
- Writing. The order becomes a document in the ERP and an opportunity or activity in the CRM. The same payment must never produce two invoices, even if the flow is restarted, which is what an idempotency key stored on the integration side is for.
- The return trip. The invoice number and status go back to the website. Without that return, nobody on the e-commerce side knows what has been processed.
- Logging. Every message is traced with its payload, timestamp and result, so that three weeks later someone can answer “where did order 10427 go?”.
- Error handling. A failure raises an alert addressed to a named person and queues the message for replay, instead of vanishing into a log file.
Steps 4, 7 and 8 are the first ones sacrificed in a cheap quote. They are also what separates a script that works in a demo from a flow still running three years later.
What data integration Morocco projects really cost in 2026
The ranges below reflect what local providers charge for design, development and testing, excluding vendor licences and platform subscriptions. They assume the systems are already in place and that access is granted.
- A single one-way flow between two tools with documented APIs (WooCommerce or Shopify orders pushed into a cloud ERP): MAD 15,000 to 45,000.
- A two-way flow between two systems (orders down, stock levels and shipping statuses back up), with logging and replay: MAD 50,000 to 120,000.
- Three or four connected systems (e-commerce, ERP, CRM, accounting) with deduplication rules, a customer master and monitoring: MAD 120,000 to 350,000.
- An older ERP with no API, reachable only through the database, flat files or interface automation: budget 30 to 50 percent more, and heavier maintenance afterwards.
Then there is the recurring cost, often missing from quotes: hosting the middleware or subscribing to an integration platform, from a few hundred to a few thousand dirhams per month depending on message volume, plus annual maintenance that usually sits between 10 and 20 percent of the project cost. That line is not decorative. When a carrier or banking API changes version, something has to be adapted, and someone has to do it.
Two billing models circulate. A fixed price per flow, which is readable but tempts providers to cut into error handling, and time and materials, with a daily rate for a data or integration profile typically running from MAD 3,500 to 7,000 depending on seniority and firm size. If you are comparing fixed ETL prices across two offers, compare above all what each one puts into testing and monitoring. The same reading habits apply here as for any IT quote in Morocco, and the integration budget comes before the reporting budget covered in our guide to BI dashboard cost in Morocco.
How long it takes, and where it goes off the rails
For a first two-way flow between two systems, an honest calendar is six to ten weeks. For a three or four system programme, plan on three to six months, sequenced flow by flow rather than as a big bang. The breakdown usually looks like this: one to two weeks of scoping and field mapping, one to four weeks of development per flow, one to three weeks of testing on real data, then two weeks of cutover while manual entry continues in parallel.
The line item that never appears in the initial plan is getting access. API keys, a service account, a port opened towards the ERP server, vendor authorisation: announced as two days, delivered in two to four weeks, especially when the ERP is maintained by a third party with no interest in opening its black box.
The other three causes of slippage are predictable. First, nobody has decided which system is the master, so the project team discovers mid-testing that no one wants to rule on whether the site or the ERP is right about a customer address. Second, the only person who knows what the ERP fields really mean is also the person who runs the close, and she is unavailable three weeks a quarter. Third, moving to real data reveals a history in which the same customer exists under four company names. Cleaning that up is a project of its own, not a testing detail.
Duplicates, formats and silent failures
Duplicates are the most common and most expensive defect. They almost always come from the absence of a stable unique key: the email changes, the phone number is entered with or without the country code, the company name appears with and without “SARL”. For business customers, the ICE number is the strongest key, provided you make it mandatory and normalise it. For individuals you need an explicit matching rule and a queue of doubtful cases that a human validates, rather than an automatic merge that blends two different people.
Formats waste an unreasonable amount of time on file-based exchanges: accents broken by anything other than UTF-8 encoding, dates as dd/mm/yyyy on one side and mm/dd/yyyy on the other, comma decimals read as text, product codes whose leading zeros Excel helpfully removed. Every flow that travels through a CSV pays that tax sooner or later, which is one more argument for API exchanges wherever they are available.
Silent failures are always discovered too late. The authentication token expired, the flow stopped on a Friday evening, and you find out three weeks later when a customer asks for an invoice. So insist on three things in the quote: an alert sent to a named person when something fails, a heartbeat signal that reports even when everything is fine (no news is not good news), and a screen or report for replaying blocked messages. Add handling for API rate limits and a watch on ERP upgrades, which sometimes change field behaviour without warning.
CNDP and data flows between systems: what to check
Automatically moving names, phone numbers, addresses and purchase histories between several applications is still processing of personal data under Law 09-08. Three points deserve attention before go live, not after.
First, consistency with what you declared. If your declaration covers a customer file managed in the ERP, and the new flow duplicates that data into a CRM and a marketing tool, both the purpose and the recipients have changed. Second, location: if the middleware, the integration platform or the message backups sit outside Morocco, you are dealing with a cross-border transfer, which requires authorisation. Check the applicable forms and procedure on the CNDP website before choosing where the flow is hosted, because reversing that decision later costs more than getting it right at the start.
Third, minimisation, which also happens to be sound engineering. A flow does not need to copy an ID card number or a date of birth into four systems in order to raise an invoice. Limit the fields you move, set a retention period for integration logs (which often hold personal data in clear text), encrypt the exchanges, and have your provider sign a processor clause stating what he may see and do. Our CNDP Law 09-08 compliance checklist walks through these obligations one by one.
Where to start without rebuilding everything
You do not need an eighteen-month programme to get out of double entry. The sequence that works best, and costs the least in lessons learned, comes down to five decisions.
- Quantify the manual time per flow, in minutes per document and documents per month. The flow that costs the most time, not the one that is loudest in meetings, goes first.
- Name the master system for each type of data: customer, product, price, stock. One source of truth per data type, and that is a management decision, not a technical one.
- Write the field mapping before development starts, even in a shared spreadsheet, including the matching key and the expected behaviour when the two sides conflict.
- Run the test phase on an extract of real data, not on three clean test orders.
- Keep manual entry running in parallel for two weeks after cutover and compare both results. That is the last moment when you can catch a discrepancy before a customer has been invoiced for it.
If the choice between automating and carrying on with spreadsheet exports is still open, our Excel versus Power BI comparison gives useful markers for when the spreadsheet becomes the bottleneck.
Arrowlancer designs and runs this kind of connector and pipeline work for Moroccan SMEs: APIs between ERP, e-commerce, CRM and accounting, supervised middleware, and data flows hosted in line with Law 09-08, as part of the data practice listed on our services page. If you are weighing two quotes or want a price for a first flow before committing a BI budget, describe your situation through the contact form and we will tell you what is reasonable in your case.
