language
theme
WhatsApp +7 701 960 13 11
//Practice · September 16, 2026 · 12 min

One client, three legal entities: where duplicate companies in Bitrix24 come from and how to fit an LLP, a sole proprietor and a branch into one record

The five doors duplicates come through, what stock duplicate control catches and what it does not, the "company = client, entities = requisites" model, a clean-up routine for a base of 2–3 thousand companies, and a rule that keeps duplicates from coming back.

The client's accountant calls the sales rep: "You invoiced the LLP, we asked for the sole proprietor." The rep opens the CRM and finds three records: Alfa LLP, "Alfa" and "ТОО Альфа". One holds the director's phone number, another three deals from last year, the third nothing but a name. Nobody knows which one is real — the system included.

This is not about sales discipline or a bad CRM. In Kazakhstan a client almost always operates several legal entities, and every system that feeds data into the CRM creates records in its own way. Below: where duplicates come from, what stock Bitrix24 can do about them, which data model still holds a year later, and what we actually do when we clean a base of two or three thousand companies.

The short version. 1) A company in the CRM is a client, not a legal entity; legal entities live in the requisites inside the record. 2) Duplicates arrive through five doors: import, inbound requests, manual creation, 1C sync and telephony. 3) Stock duplicate control matches by phone, e-mail, name and requisites; merging is irreversible. 4) Of five duplicate types, the Merge button solves exactly one. 5) Without a written rule the base is dirty again within a quarter.

Why a client has three legal entities

The typical picture: an LLP on the general tax regime for large buyers, a sole proprietor on the simplified regime for retail, a separate LLP for a new line of business or a tender, a branch in another city with its own BIN. Sometimes an "old" LLP with history plus a "new" one after a change of founders. Since 2026 the mandatory VAT registration threshold is 10,000 MCI — 43.25 million tenge a year — so the "one entity with VAT, one without" pairing is even more common among small businesses.

As integrators we do not care why it is structured that way. What matters is this: the invoice, the contract and the e-invoice go to a specific BIN, while the person who calls, negotiates and decides is the same. The CRM asks "which company?", and the honest answer is "one client, three payers". If the data model ignores that, the rep solves it the only way available — by creating another record.

Five doors the mess comes through

Five sources of duplicates in a CRM: Excel import, website and messenger requests, manual creation, 1C sync, telephony
Every channel creates records on its own — and none of them asks the others
  • Excel import. Every rep keeps their own spreadsheet, and the same client appears as "Alfa LLP", "Alfa" and "ТОО Альфа". On import, duplicate control only fires if it is enabled and a phone or e-mail matches. How to prepare the file is covered in a separate article.
  • Website and messenger requests. The lead is created before anyone looks at the base. The client writes from a new number — new contact; the lead gets converted — new company.
  • Manual creation. Search found nothing because the name was spelled differently, so the rep created a new record in five seconds. This is the most common source of duplicates with people's names in them: "Alfa (Ivan)", "Alfa warehouse".
  • 1C sync. In 1C a counterparty is a legal entity. The standard exchange brings every LLP of a client in as a separate company, and three entities become three records. How the exchange works is in the 1C integration article.
  • Telephony. An inbound call from an unknown number spawns a nameless contact — "Incoming 16.09". The client calls back from another number — one more.

None of these channels checks with the others. In our experience a base of two to three thousand companies carries 10–15% duplicates, and roughly half of them are empty shells: a name and nothing else.

What breaks while duplicates live

  • History is torn apart. Calls in one record, deals in another, documents in a third. The rep sees a "new client" and cold-calls a regular.
  • Reports lie. Three records mean three clients. LTV, repeat sales, the new-versus-returning ratio — all computed on the wrong base.
  • Two reps, one client. The records have different owners and both call. The client is annoyed; internally, an argument about whose deal it is.
  • Invoice to the wrong entity. The client's accountants send it back, the e-invoice is redone, payment slips by a week.
  • Double messaging. A WhatsApp campaign hits one number from two records — a complaint and a ban risk for the number. How to avoid that is in the messaging article.
  • Access rights stop working. A rep sees "their" companies, but the same client also sits in somebody else's record. The role model we covered separately protects the base, not its copies.

What stock Bitrix24 can do

The tool is called duplicate control and is enabled under CRM → Settings → Duplicate control. It works in two modes: when a record is created, and across the base you already have.

  • On creation of a lead, contact or company the system checks the selected fields against the base and shows the matches — you can open the existing record instead of spawning a new one.
  • Fields checked. For companies — name, phone, e-mail and requisites: in the Kazakhstan template that is the BIN and the bank account. For contacts — full name, phone, e-mail. A match on any one selected field counts as a duplicate.
  • Scanning the base. Runs manually or on a schedule, once a day by default. Records where every field matches, the owner is the same and — for leads — the stage is the same are merged automatically. The rest land in a list for manual review.
  • Merging moves fields, activities, history and links into one record. If field values conflict, the system asks which one to keep. It requires edit and delete rights.
Merging is irreversible. There is no "split" button. Before a clean-up, export companies and contacts to Excel; on the self-hosted edition, back up the database. It takes ten minutes and will save you exactly once — which is enough.

The other half of the toolkit is requisites. One company can hold several sets of requisites, there is a Kazakhstan template with BIN and IIN, and the data is pulled in automatically by BIN from the "Search requisites" field. When issuing an invoice you choose which requisites it goes to. Finally, links: a contact can be attached to several companies via "Add participant", and a deal can have several contacts but only one company — which is itself a hint at how to build the model.

SituationStockWhat to do
Two contacts with the same phoneYesFind duplicates → merge
One company under three namesPartlyFound by phone and e-mail; by name only on an exact match — "Alfa" and "Alfa LLP" will not meet
One client, three BINsYesOne company, three requisite sets, requisite chosen on the invoice
A person works for two companiesYesIn the contact record → "Add participant"
1C sends three counterpartiesNoMapping is configured during implementation or customised
Empty shells from telephonyNoFilter "no activities, no deals" → check → delete
The button closes half of the cases; the other half is about the data model and a written rule

The model that holds: a company is a client

Diagram: one company Alfa with two contacts, three requisite sets — LLP, sole proprietor and a branch LLP — and deals, each invoicing its own legal entity
Legal entities live in requisites, people in contacts, and the deal chooses whom to invoice

The rule we lay down on every implementation: a company in the CRM is a business client — the party you have a relationship with, not a row from a register of legal entities. Legal entities are requisite sets inside the record. People are contacts with roles: director, accountant, buyer. There is one owner per client. A deal is linked to the company and picks the right requisite set when the invoice is issued.

Sometimes two records are justified after all: the entities have different decision-makers, different contracts and terms, different cities and reps. Then it is two companies with a shared contact and a "Group of companies" field that reports are built on. The simple test: one director — one record.

1C is a separate conversation. The standard exchange transfers counterparties as companies one-to-one, and the "one record, three requisite sets" model does not fit it. For three counterparties to converge into one company, the mapping is configured during implementation, not afterwards. It is one of the first questions we ask whenever a project involves 1C.

Names: agree on how to write them

Half of the "duplicates by name" are not duplicates at all — they are one client written four ways. Stock search only counts an exact spelling as a match, so a naming rule matters more than any automation.

How it gets writtenCorrect formWhy
Alfa LLPAlfaThe legal form belongs in requisites, not in the name
Alfa, LLP / LLP AlfaAlfaWord order breaks search
ТОО АльфаAlfaOne spelling per record; the other script goes in an "Also known as" field
Alfa (Ivan)Alfa + contact IvanPeople live in contacts
Alfa warehouse / Alfa officeAlfa + addresses in requisitesSites are not companies
Five lines of policy that remove most future duplicates

Cleaning the base: an order that works

  • Export and back up. Companies and contacts to Excel; on self-hosted, a database copy. Date and time in the file name.
  • Enable duplicate control by phone and e-mail for contacts and companies. These are reliable signals: two different clients sharing a number is almost unheard of.
  • Run the base scan. Exact matches merge on their own; the rest come back as a list.
  • Work the list by phone and e-mail first: this is where errors are rarest.
  • Names — through normalisation. Export to Excel, strip LLP/IE/quotes, bring transliterations to one spelling, compare. In our experience this step finds the most.
  • Multi-entity clients — into requisites. For each group of records belonging to one client: keep one, move the other BINs into requisite sets, bring deals and contacts over by merging.
  • Empty shells. Filter "no activities, no deals, no phone" → check that no lead hangs on the record → delete.
  • Write the rule down (below) — otherwise it all repeats within a quarter.
Decision table by duplicate type: merge, one record with requisites, two records with a link, delete the empty shell, check manually
The Merge button is right only in the first row; the rest is done by hand and by rule

How long it takes: a base of 2,500 companies takes the two of us three to four working days. A day goes to automation and name normalisation; the rest is manual review of disputed pairs together with the reps, because only they know whether "this is one client or two".

What the button does not solve

  • Telephony keeps spawning shells. Configure unknown numbers to create a lead rather than a contact, and have a robot delete leads with no activity after a few days.
  • WhatsApp numbers are personal. One employee of the client writing from two phones is two contacts until someone merges them by hand.
  • Merging does not merge deals. Two open deals for one client stay two; closing the extra one is the rep's call.
  • After a merge there is one owner. The other rep loses the client from "theirs". Discuss it before the clean-up, not after — or you get quiet sabotage.
  • 1C will keep sending counterparties its own way until the mapping is configured.

A five-point rule

  • Before creating a company — search by phone and BIN, not by name.
  • Company name — no legal form, no quotes, no people's names; the other script goes in "Also known as".
  • A client's new legal entity is a new requisite set, not a new record.
  • Only the head of sales may delete and merge.
  • Once a month — run the duplicate scan and work the list; the result is logged.
Is duplicate control available on every Bitrix24 plan?
The feature is part of the CRM, but the vendor revises plan contents from time to time — check the current grid or ask us. On the self-hosted edition it is always available.
Can a merge be undone?
No. Merged records cannot be split again, which is why a clean-up starts with an Excel export and, on self-hosted, a database backup.
How do I find duplicates by BIN?
Enable the requisites check in duplicate control and make sure the BIN is filled in the company's requisites rather than in a custom field: stock search only looks at requisites. If the BIN lives in its own field, an Excel export or a Marketplace app will help.
1C sends every LLP as a separate company. What now?
That is how the standard exchange works: a counterparty is transferred as a company one-to-one. For one client's entities to converge into a single record with several requisite sets, the mapping is configured when the exchange is set up, or customised. Doing it retroactively is more expensive, so raise it before go-live.
How long does a base clean-up take?
A base of two to three thousand companies takes the two of us three to four working days. Automation and name normalisation take a day; the rest is manual review of disputed pairs with the reps.
How do I stop reps from breeding duplicates again?
Three things: duplicate control enabled on record creation, the five-point naming rule, and delete/merge rights held only by the manager. Plus a monthly duplicate scan — twenty minutes that keep the base in order.
Not sure how many duplicates your base carries? In a free 30-minute consultation we look at your portal: whether duplicate control is on, how many records have no activities or deals, how counterparties arrive from 1C — and tell you what to clean with a button and what by hand. Request a consultation.
Next step
Bitrix24 implementationFree auditPricing and timeline
//ready to start

Ready for hands-on implementation?

A free 30-minute audit — we will show how to apply this article in your business.

Call UsSee pricing