An online appliance store in Almaty advertises a vacuum cleaner on Instagram with the promise "Delivered tomorrow", while the product page for the same vacuum says "Delivery in 5-7 days". Leads from the "Buy in one click" form land in the manager's inbox, and he copies them into the CRM by hand: in a week the inbox has 45 leads and the CRM has 38. The owner is unhappy with sales and wants a bigger ad budget (the numbers in this lesson are illustrative).
Advertising is not the main problem here. People get one promise in the ad and a different one on the site, and some leads simply stay in the manager's inbox, and nobody calls those people. Raise the budget and more people will fall through the same holes.
A digital ecosystem is every place where a customer deals with the business, from the ad to the courier, plus the links between them. A person sees an ad, goes to the site, writes on WhatsApp, pays and waits for the courier, and at every step a different system and a different person deals with them. A marketer has to see the whole chain: while it is broken, no ad setting will fix it.
What it is made of
For the appliance store the ecosystem looks like this:
| Part | At the store | What it passes on |
|---|---|---|
| Channels | Instagram and Google ads, a 2GIS listing, a shop on Kaspi.kz | A promise (price, delivery time) and a link with UTM tags |
| Website | Product page, cart, "Buy in one click" form | An order or a lead: product, phone number, tags |
| Messengers | WhatsApp on the site and in the Instagram profile | A chat that shows the product and the platform |
| CRM | amoCRM or Bitrix24 | Lead status, owner, order number |
| Payment | Card on the payment provider's page, Kaspi QR on delivery | A confirmation with the order number and amount |
| Delivery | The store's own couriers in Almaty | A "delivered" or "returned" status |
| Analytics | GA4, Meta pixel | Events with their source, and purchases sent back to the ad account |
Channels bring people in and set their expectations. They are split into paid (ads), owned (the website, the Instagram profile, the customer list on WhatsApp) and earned (reviews on 2GIS, mentions in other people's posts). For the map, something else matters more: what the channel promised and whether it left a trace. A click on an ad carries UTM tags if the link was tagged to the shared scheme. A call from the 2GIS listing carries no tags, and only the manager knows the source, if he thinks to ask. Orders from the shop on Kaspi.kz arrive in the Kaspi seller account and reach the CRM only if someone copies them over or they are pulled in through the Kaspi API.
The website turns interest into an order or a lead. Along with the phone number, the form has to save the product and the tags, or the CRM gets a bare number and the manager opens the call with "So what were you after?". Send the lead straight to the CRM: an inbox in between is one more joint where it can get stuck.
Messengers. A plain WhatsApp button opens an empty chat, and the manager knows neither the product nor the platform. So each platform gets its own click to chat link with a ready first message, such as "Good afternoon, I'd like the vacuum, saw it on Instagram". The same trick works on 2GIS, OLX and Telegram channels. The chat is then tied to the lead in the CRM, or it stays on the manager's phone.
The CRM, as Salesforce defines it, stores contacts, the full history of dealings with each customer and the path of every lead to a sale. The main rule: every lead, whatever channel it came from, ends up in the CRM with an owner and a status. If there is no CRM yet, a spreadsheet with statuses will do for a start.
Payment. The payment confirmation carries the order number. That is how the CRM sets the status to "paid" and how the reports can tell that the 48,000 ₸ for the vacuum came from that very lead from the ad. If the Meta pixel sits on the "Thank you" page and the buyer closes the tab right after paying, the purchase never leaves the browser, and payments like that are sent from the server.
Delivery keeps the promise the ad made. The "delivered" or "returned" status has to reach the CRM too: a return cuts revenue, and a report without it praises the campaign for money the store has already handed back.
Analytics. GA4 and the Meta pixel only see what happens on the website. A call from 2GIS, an order on Kaspi and a return a week later stay invisible to them until you send them in. That is why lead counts in GA4 and in the CRM differ and have to be reconciled step by step, and why the ad account learns only from the conversions that actually reach it.
One purchase through every system
Here is how order T-310, a vacuum cleaner for 48,000 ₸, moves through the chain when everything works:
- A person taps the Instagram ad. The link leads to the vacuum's page and carries
utm_medium=paid_socialand the ad name inutm_content. - They place an order. The site creates order T-310 and stores the product, the phone number and the tags from the page URL.
- The payment provider charges 48,000 ₸ and sends the store's server a confirmation with the number T-310.
- The server immediately sends purchase T-310 for 48,000 ₸ to GA4 and to the ad account, and the order in the CRM changes to "paid".
- The manager calls to agree on a delivery time.
- The courier brings the vacuum, and the status in the CRM changes to "delivered". If the buyer returns it, a "returned" status goes to the CRM.
Two keys run through every step: the order number and the phone number. The order number lets the payment find its order, and the phone number shows in the CRM that the person who asked about the vacuum on WhatsApp yesterday bought it today. If a key is missing at any joint, the chain breaks and from then on people match records by guesswork.
The order connects the site, payment and delivery
A 48,000 ₸ vacuum cleaner passes through several systems.
- Order
- T-310
| Stage | Number | Data and status |
|---|---|---|
| Website | T-310 | Product, phone number and UTM tags |
| Payment provider | T-310 | Confirmation for 48,000 ₸ |
| CRM | T-310 | Paid |
| Delivery | T-310 | Delivered; the status changes if returned |
The order number links payment to the purchase; the phone number links the conversation to the customer.
Three gaps at the store
The promise. The ad says "tomorrow", the site says "5-7 days". Some people write on WhatsApp "So when will it arrive?", others close the tab without a word. How many left silently these data cannot tell: they left neither a lead nor a phone number. The delivery time is decided by the warehouse and the couriers, not by the marketer. If next-day delivery only works for items in stock in Almaty, the ad and the product page say exactly that.
The data. The inbox has 45 leads and the CRM has 38, and two totals alone cannot tell you why. So the leads were matched by phone number. Three of the 45 emails turned out to be repeat submissions by the same people, which leaves 42 people. The CRM has 38 of them: the manager never copied four leads, and nobody called those people. If all four wanted that same vacuum, that is 192,000 ₸ of orders nobody even tried to win. Ads will not fix this: the form is connected straight to the CRM through the amoCRM or Bitrix24 API, and the inbox drops out of the chain.
Ownership. The WhatsApp button on the site leads to the personal number of a manager who is on leave for two weeks. Technically everything works, there is just nobody to answer. Every joint needs a named person responsible for it: the developer for the form and its link to the CRM, the head of sales for WhatsApp replies, whoever runs the warehouse for delivery times.
Where to start when several links are broken
When the ad promises one thing, the site another, and the CRM loses leads, the first job is to align the customer path and see how data moves between the ads, the site and the CRM. A bigger budget brings more people to the same gaps. A new report will show the same 45 and 38 and will not move a single lead.
- Walk the path yourself on your phone, as a buyer: the ad, the product page, the form, WhatsApp. Write down what is promised at every step: price, delivery time, availability.
- Bring the promises into line. If "tomorrow" is only true in Almaty and only for items in stock, say so the same way everywhere.
- Submit a test lead through a tagged link and find it in the CRM. Did it arrive, and does it show the product and the source?
- Match a week's leads by phone number across the form, the inbox and the CRM.
- Assign an owner to every joint and agree how quickly they answer a lead.
Raise the budget once these five points are closed. Then the extra money brings people into a chain that takes them all the way to payment and delivery.
Exercise: add systems and data to your map
In the customer path exercise you drew a 5-7 step path for a business near you: a coffee shop, a dental clinic, an Instagram store. If you are following the Start track, that was a week 0 task. Now add a second layer to the map: systems and data. No map yet? Draw it first.
The map is done when every step has its system, the data between steps is labelled, and at least one place where people or their data get lost is marked.
For the dental clinic from that exercise, the second layer might look like this. An Instagram ad leads to WhatsApp on the reception number. The administrator writes the patient into a logbook and does not note where they came from. The patient pays at the till by card or through Kaspi QR, and the till knows nothing about ads. The source exists only in the ad account, the payment only at the till, and there is no shared field between them. The clinic cannot say how many patients the ads brought in.
The cheapest repair for a map like this is a "how did you hear about us" column in the logbook and a separate WhatsApp link with a ready message for each platform. It is not end-to-end analytics yet, but after a month you can already count how many patients who showed up came from each platform. This map will come in handy in week 1: it shows which events and fields to set up first.