Case study · Web development and integrations
Ten WhatsApp bans in a row: how we gave a manufacturer its sales channel back without taking the phones off its sales team
A custom WhatsApp Business integration with amoCRM and MoySklad built on Meta Coexistence through YCloud, an official Meta Business Partner.
- Client
- VindAsia
- Industry
- DTF printing and textile manufacturing, B2B
- Geography
- Kyrgyzstan
- Year
- 2026
- Service
- Web development
Contents
The project at a glance
- Client
- VindAsia — a DTF printing and textile manufacturer working B2B
- Before
- WhatsApp integrated with amoCRM and MoySklad through Wazzup (QR-code connection)
- What happened
- Meta tightened its security algorithms — the company number was banned ten times in a row
- The dead end
- The official WABA route solved the bans but killed WhatsApp on the sales team's work phones
- Client requirement
- The company's WhatsApp Business must work on staff phones and on desktops (amoCRM + MoySklad) at the same time
- Solution
- A custom Node.js middleware service and Meta Coexistence through YCloud, an official Meta partner
- Outcome
- Zero bans since launch. The main number kept. The managers' phones work exactly as before
- Delivered by
- iWeb (iweb.kg) — web development, integrations and business automation, Kyrgyzstan
The problem: when your sales channel is switched off ten times in a row
This is not a case study about a company that failed to automate. The opposite — the client had done everything right. This manufacturer of DTF printing, merchandise and made-to-order textiles had been running amoCRM and MoySklad together for a long time, with WhatsApp integrated through a popular service, Wazzup.
It all worked. Up to a point.
What happened
Meta updated its algorithms and tightened its security rules for WhatsApp. And a setup that had run without complaint for years started falling apart:
- The company number was banned. Then again. And again.
- Around ten bans in a row, in total.
- Every ban is a full stop on the main sales channel. Not an inconvenience. A stop.
- Managers cannot answer customers. Customers cannot get through. Orders hang.
- Every restoration costs time, nerves, and the risk that next time the number does not come back at all.
Why it happened: the mechanics few people explain
Let us be straight about this, without blaming the services — they are hostages of the same architecture.
Services like Wazzup, Green API, i2crm and Chat2Desk connect to WhatsApp on their basic — and most popular — plan by scanning a QR code. Technically that is WhatsApp Web emulation: a third-party server pretending to be a browser with your WhatsApp open in it.
- Meta does not officially approve this connection method. It works not because it is allowed, but because for a while it is not detected.
- Meta's algorithms can recognise emulation. A sudden change of geolocation on connection, server IP addresses, activity patterns that do not look human — all of it is a marker.
- Each algorithm update makes detection sharper. That is exactly what happened to our client: another tightening of the rules, and something that had worked for a year started collecting bans.
- A ban can become permanent. You keep the phone number, but WhatsApp will never work on it again. There is no restoration.
Counting the cost: what those bans were worth
An abstract "it was bad" motivates nobody. Numbers do. Here is the arithmetic on the client's real data.
The inputs
- Customer base in the CRM — 3,645 contacts
- Deals in amoCRM over the period — 2,680
- Average order value — around 11,000 KGS
- Number of bans — around 10
Direct losses from downtime
- 2,680 deals over roughly a year averages about seven deals a day.
- Even if each ban knocked the channel out for a single working day, that is ten days of the main sales channel being down.
- 10 days × 7 deals × 11,000 KGS ≈ 770,000 KGS of revenue not earned.
And that is the optimistic scenario, where restoration takes a day. In practice it took longer.
What that figure misses, and what hurts just as much
- Reputational damage. A customer writes on WhatsApp — undelivered. Writes again — silence. On the third attempt they write to a competitor. They do not come back.
- Live negotiations cut off. A deal at the artwork-and-price stage is the most fragile there is. A two-day pause kills it outright.
- The risk of losing the number permanently. The company number is printed on business cards, the signage, the packaging, the advertising and the website. Losing it for good is on the scale of moving office without telling anyone.
- A demoralised sales team. A manager whose tool falls over every fortnight stops believing in the system and goes back to their personal phone. At that point everything collapses.
The obvious solution that did not work
Once it was clear the QR connection was no longer an option, the answer looked obvious: move to the official WhatsApp Business API (WABA).
The logic is airtight:
- WABA is the official, Meta-approved way to connect.
- Bans for "unauthorised integration" become impossible by definition.
- Wazzup, which the client already used, offers a WABA connection.
Switch the plan and sleep soundly, apparently. And here we hit a wall.
Why WABA did not fit: it kills the phones
On a classic WhatsApp Business API connection the number moves into Meta's cloud. And this is what follows:
- The WhatsApp Business app on the phone stops working. The number is unbound from the device. A manager physically cannot open a chat on their handset.
- WhatsApp calls disappear. The call button simply vanishes from the customer's interface.
- The account cannot be added to group chats.
For many companies that is tolerable. For this client it was categorically not.
Why this mattered so much to the client
The specifics of the business matter here. This is manufacturing, not an online store:
- Managers call customers through WhatsApp from their work phones. It is the primary channel — discussing artwork, agreeing a shade, checking a size range.
- A manager walks the production floor with a phone. Photographing a fabric sample, filming the press in operation, showing a finished run — that takes ten seconds from a phone and cannot be done any other way.
- Switching off the phones means pulling the sales team's main working tool out of their hands and replacing it with a computer they walk past between tasks.
And then the crucial fact surfaced
We checked the WABA connection options available on the market, including the one Wazzup offered. Not one of them supported Meta Coexistence.
So the choice the market offered looked like this:
- Stay on QR — and keep collecting bans, at the risk of losing the number for good.
- Move to WABA — and strip the managers of their work phones, breaking the whole sales department's process.
Both options are bad. A classic dead end. That is the point at which the client came to us with a question: can we make both work at once? The answer: yes. But no off-the-shelf solution exists — it has to be built.
Meta Coexistence: the technology that closes the dilemma
In May 2025 Meta shipped WhatsApp Coexistence. It is an official mechanism that lets the same number work simultaneously in the WhatsApp Business app on a phone and through the Cloud API.
How it works:
- The app on the phone keeps working normally. The manager sees every chat, calls customers, sends photos, voice notes and files. Nothing changes.
- In parallel, the same number is connected to the official Cloud API — and integrates with the CRM through it.
- Every message is mirrored both ways in real time. A customer writes on WhatsApp and the message appears in amoCRM instantly. A manager replies from the CRM and the message appears in the chat on the phone.
- Six months of conversation history is synchronised on connection.
- Messages sent from the app on the phone remain free — only those going through the API are billed.
- It is an official Meta channel. No emulation, no QR codes, no risk of a ban for an unauthorised integration.
This technology removed both constraints at once. What remained was to find a provider that supported it and to write the integration layer.
Why YCloud
We chose YCloud — an official Meta Business Partner with full Coexistence support.
- Official Meta partner status — direct access to the Cloud API with no intermediaries and no grey schemes.
- Full Coexistence support — precisely what the client's earlier options lacked.
- An open, documented API — you can build your own logic of any complexity instead of bending to somebody else's interface.
- Transparent pricing — you pay for message traffic, not a subscription per user and per channel.
- Works without geographic restrictions — critical for a business in Kyrgyzstan and Central Asia.
What we actually built
We designed and wrote a middleware service — our own integration layer in Node.js that sits between WhatsApp, amoCRM and MoySklad and governs every data flow.
Layer 1. WhatsApp via Coexistence
- Connecting the official Cloud API to the existing working number — no number change and no loss of audience.
- The WhatsApp Business app on the managers' phones keeps working unchanged.
- Inbound messages received through webhooks in real time.
- Outbound sending: text, images, documents, audio, video.
- Replying to a specific message (quoting) — exactly as in ordinary WhatsApp.
Layer 2. amoCRM — a proper conversation, not notes on a deal
Many integrations simply append the message text to the deal's notes. It looks poor and you cannot reply from there. We built a native integration through the amoCRM Chats API (amojo):
- Registering our own channel in amoCRM.
- Conversations land straight in Chats / Imbox — the same place as Instagram, Telegram and the other channels.
- The manager replies from inside the deal card — the message goes to the customer on WhatsApp and is mirrored into the chat on their phone.
- Media renders inline: photos have previews, documents download, voice notes play.
- Files are additionally attached to the deal through the Files API — artwork or a spec will not get lost in the message feed.
Layer 3. Contacts and deals created automatically
- A message arrives from a new number and the system creates the contact and the deal in amoCRM automatically.
- Numbers are normalised to international format with Kyrgyz specifics in mind: local numbers in the form 0XXXXXXXXX convert correctly to +996XXXXXXXXX.
- The search for an existing contact runs across every way the number can be written — no duplicates pile up.
- The deal is linked to the contact, and the conversation to both the contact and the deal.
Layer 4. A WhatsApp widget inside MoySklad
A separate piece, and probably the client's favourite — a built-in widget for MoySklad:
- A live WhatsApp chat opens directly inside a customer order or counterparty card.
- A production manager or warehouse clerk writes to the customer without leaving MoySklad or switching tabs.
- Messages from the widget mirror into amoCRM — management sees all communication in one place.
- Receiving and sending work without reloading the page.
- Attachments are supported — send a photo of the finished run straight from the inventory system.
Layer 5. Reliability — what separates production from a prototype
This is where "knocked together in an evening" ends and engineering begins:
- A queue with retries. If amoCRM is temporarily unavailable the message is not lost — it queues and is resent with increasing back-off (5 sec → 30 sec → 5 min).
- Message deduplication with a 48-hour TTL — Meta webhooks can arrive twice, and the customer must not see duplicates.
- Webhook signature validation — an outsider cannot inject a fake message into your CRM.
- Rate limiting on every public endpoint — protection against overload and abuse.
- Admin endpoints protected by a separate access key.
- 88+ automated tests and a CI pipeline — every change is checked before it reaches production.
- Telegram alerts — if something goes wrong the team knows within seconds rather than hearing it from an angry customer.
Comparison: three routes, and why we chose the third
| Criterion | QR integration (Wazzup, Green API) | WABA without Coexistence | Our solution: Coexistence + YCloud |
|---|---|---|---|
| Official Meta channel | No | Yes | Yes |
| Risk of the number being banned | High | Low | Low |
| WhatsApp on managers' phones | Works | Switched off | Works |
| WhatsApp calls to customers | Available | Disappear | Available |
| Works in amoCRM | Yes | Yes | Yes |
| Widget in MoySklad | Separate subscription | Usually none | Built in |
| Adapting to your processes | Impossible | Severely limited | Anything |
Scroll the table horizontally
The key argument: you pay a subscription forever and development once. At a few hundred conversations a month, the total cost of ownership of a subscription solution overtakes the cost of building your own within 12 to 18 months. After that you are simply saving.
And more importantly — your own solution does not depend on whether the vendor stays in business, triples its prices, or switches off your region.
The pitfalls we cleared on the client's behalf
The customer's name instead of "Deal #57198241" in the inbox
When a conversation is linked incorrectly, amoCRM shows the system deal name in Imbox instead of the customer's name. The manager sees a column of faceless numbers and cannot tell who is writing to them.
We went through the official Kommo/amoCRM documentation on Conversation Import, worked out the mechanics of the links, and attached the conversation to the contact rather than the deal — the way Kommo itself and the larger integrators do it. We also wrote a migration script that renamed 355 existing deals from auto-generated names to real customer names.
Coexistence limits we flag honestly
We do not sell magic. The technology has known limits:
- Group chats do not synchronise with the API — they stay in the phone app only.
- Disappearing messages and view-once are switched off for the number.
- Live location sharing is not supported.
- Status updates are not passed to the API.
- Broadcast lists in the app become read-only — bulk sending goes through the API.
- Throughput is up to five messages per second.
- The number has to be a live one: Meta rejects connections from freshly registered numbers with no real conversation history.
For the overwhelming majority of B2B scenarios none of these are critical. But you should know about them before the project, not after.
Results
| Metric | Before | After |
|---|---|---|
| WhatsApp bans | ~10 in a row | ~0 |
| Connection channel | QR emulation (unofficial) | Official Cloud API through a Meta partner |
| WhatsApp on managers' phones | Worked, but at risk of a ban | Works officially and reliably |
| The company's main number | Under constant threat of loss | Kept and protected |
| Link with amoCRM | Fell over along with every ban | Native conversations, replies from the deal card |
| Link with MoySklad | Fell over along with every ban | A built-in chat widget in the order card |
Scroll the table horizontally
What this means for the business
- The sales channel stopped switching off. The sales team works without downtime.
- Nobody had to be retrained. The phone in the pocket works exactly as it did. That matters: integrations more often fail through a team quietly refusing an awkward tool than through technology.
- The company's main number is protected. It stays on the business cards, the signage, the packaging and the advertising — and there is no longer a way to take it away.
- The customer base belongs to the company. The whole conversation history is in the CRM, not on the personal phone of an employee who has left.
- Analytics work. First response time, conversation-to-deal conversion, manager workload — all measurable and manageable.
Who this solution fits
We build WhatsApp integrations with CRM and inventory systems for companies that:
- Have already had WhatsApp bans, or fear getting one.
- Have WhatsApp connected to a CRM by QR code — and have only now learned what that means.
- Have managers calling customers through WhatsApp from work phones, where switching them off is not an option.
- Have staff working in the field — on the shop floor, in the workshop, on site — who physically need a phone.
- Have a working number with history and an audience that cannot be lost.
- Already run amoCRM, Bitrix24, MoySklad, RetailCRM or another system of record.
- Have a warehouse and inventory records, so communication has to be tied to real orders and stock.
- Find off-the-shelf products do not cover their processes and need logic built for the specific business.
Industries where this works especially well: manufacturing and contract garment production, DTF and textile printing, wholesale, print production, building materials, furniture manufacturing, distribution, and service companies with a long sales cycle.
Why iWeb
iWeb is a web studio and development team from Osh, Kyrgyzstan. We do not build brochure sites — we build working systems whose value shows up in the numbers.
- We take on problems with no off-the-shelf answer. This case is exactly that: the market offered two bad options, so we built a third and better one.
- We work only with official APIs: the Meta WhatsApp Cloud API through a Meta partner, the amoCRM/Kommo API and Chats API, the MoySklad JSON API, the Bitrix24 REST API. No grey schemes that get your number banned later.
- We write automated tests and set up CI. Our projects do not fall apart six months after handover.
- We understand the business, not only the code. We also build marketing strategies and sales departments — so we design an integration around the real process, not around a tidy diagram.
- We work in three languages — Kyrgyz, Russian and English — with clients around the world.
Frequently asked questions
Why does Meta ban WhatsApp numbers integrated through Wazzup or Green API?
On their basic plans these services connect by scanning a QR code, which technically is WhatsApp Web emulation. Meta does not approve this connection method and its algorithms can recognise it. Detection sharpens with every security update — which is why numbers that ran without trouble for years suddenly start collecting bans.
Can you connect WhatsApp to amoCRM and keep using the app on the phone?
Yes. Meta's WhatsApp Coexistence, available since May 2025, lets one number work in the WhatsApp Business app and through the official Cloud API at the same time. Messages mirror both ways in real time. iWeb builds integrations on exactly this technology.
Why does the standard WhatsApp Business API not suit manufacturing companies?
On a classic WABA connection the number is unbound from the phone: the WhatsApp Business app stops working and WhatsApp calls disappear. For companies whose managers call customers and photograph samples straight from a phone, that is unacceptable. Coexistence solves it.
Do all integration services support Coexistence?
No. At the time this project was delivered, the widespread solutions in the CIS market — including the WABA connection through Wazzup — did not support Coexistence. We build integrations through YCloud, an official Meta partner with full support for it.
Is conversation history preserved when Coexistence is enabled?
Yes. On activation, the last six months of chats are synchronised, and every new message mirrors in real time.
Can WhatsApp be linked to amoCRM and MoySklad at the same time?
Yes. We build an end-to-end integration: messages land in amoCRM conversations, while inside MoySklad a built-in chat widget works within the order or counterparty card. Both channels stay synchronised with each other.
How does a custom integration compare in cost with a subscription service?
Subscription services bill monthly per channel and per user — you pay indefinitely. Custom development is paid once, after which you pay only for message traffic. From a few hundred conversations a month, building your own pays back within 12 to 18 months.
How long does development take?
A base WhatsApp-to-amoCRM integration on Coexistence takes from one month. The full scope with MoySklad, the widget and custom logic takes from six weeks. Timelines depend on how many systems are integrated and on the specifics of the processes.
Does the solution work in other countries?
Yes. It runs on cloud infrastructure and does not depend on local restrictions. We account for regional specifics — correct phone number normalisation, among other things.
Tags
- WhatsApp ban CRM integration
- WhatsApp amoCRM integration
- WhatsApp MoySklad integration
- WhatsApp Coexistence
- WhatsApp Business API setup
- WABA integration
- Wazzup alternative
- Custom integration development
- WhatsApp sales automation
- CRM integration Kyrgyzstan
- Web development Osh Bishkek
- amoCRM Chats API
- MoySklad WhatsApp widget
- YCloud Meta Business Partner
- Custom CRM integration
- Omnichannel sales
The first consultation is free
Facing a similar challenge?
We will walk through your process and tell you honestly whether it needs custom work or just a proper setup of what you already have.
info@iweb.kg · +996 228 005 000 · 76 Sankt-Peterburgskaya St, Osh, Kyrgyzstan
More case studies

MoySklad · 2026
Three countries, eight cities, one system: tracking spray-foam raw material at Mister PENA
A MoySklad implementation by iWeb for Mister PENA: isocyanate and polyol tracked per truck and per field crew across Kyrgyzstan, Kazakhstan and Uzbekistan.

iiko · 2026
A restaurant that opened with its accounting already working: implementing iiko for Eden Taste in Osh
A case study by iWeb (Osh, Kyrgyzstan) — automating a premium restaurant on iiko: recipe cards and food cost, inventory tracking, fiscal receipts, a waiter app running on personal phones and a separate delivery menu.

MedLock · 2025
A clinic without a single paper chart: digitising Zamanmed in Aravan
A case study by iWeb (Osh, Kyrgyzstan) — implementing the MedLock clinic information system in a multi-speciality practice: electronic records, scheduling, a dental module, inpatient care, referral tracking and doctor payroll.
