The built-in "Duplicate control" in Bitrix24 searches for matches across leads, contacts and companies — it does not check deals. Two open deals for one client are not treated as a duplicate: a deal has no phone or email of its own, so the stock mechanism has nothing to compare. That is why duplicate deals are caught differently: a workflow looks up a contact's open deal before creating a new one, a condition decides what to do with the match, and a blocking check on the stages is added by the "Duplicates No More" app.

Why doesn't the built-in duplicate search see deals?

The stock mechanism compares full name, phone and email — the client's details. Those fields exist on a lead, a contact and a company, which is why both the warning at card creation and the bulk "Duplicate search" from the list work for them. A deal has no contact data of its own: it references a contact and a company, and its own fields — title, amount, stage — match across different deals all the time and cannot serve as a comparison key. Two "Equipment supply" deals on one contact are simply two different records to the system. How the stock mechanism works for leads and contacts is covered in the breakdown of duplicates in Bitrix24.

Where do duplicate deals come from?

The main source is repeat enquiries. A client left a request on the site, then called a day later: each channel created its own deal, even though an open one already existed. Integrations amplify the effect: telephony, forms and messengers create deals by their own rules and do not check for existing ones. The third source is managers: couldn't find the deal in a long list, created a new one. The fourth is import without matching. The outcome is the same: the negotiation history is smeared across two cards, two managers call the same client, and the pipeline shows a conversion that isn't real — a noticeable share of "lost" deals are actually doubled ones. The more enquiry channels you have, the faster such pairs pile up.

How do I avoid creating a duplicate on a repeat enquiry?

The rule: before creating a deal, the process looks up an existing one. Step one — the Find contact by phone/email robot: from the phone number in the enquiry it returns the contact ID and a "Found" flag (Y/N). Step two — the Find deal by condition robot: by contact ID and the filter {"CLOSED":"N"} it searches the client's open deals and returns the ID of the first one found, the list of all IDs, the count and a Y/N flag. Then a branch on the condition: on Y the enquiry is added to the existing deal as a comment or an activity, on N the process creates a new one. The duplicate is intercepted before it appears.

How do I check an already-created deal for a duplicate?

The same search works after creation too — for example, on the first stage of the pipeline. The process on the deal runs Find deal by condition with this deal's contact ID and a filter on open deals: the returned count shows how many open deals the client has. The Compound condition (AND / OR / NOT) robot checks several conditions at once — for example, the count is greater than one AND the new deal's amount is empty — and returns a single Y/N flag. On Y the process assigns the responsible person a task to sort out the duplicate and notifies the manager. Merging deals automatically is unwise: which one is the primary is for a human to decide.

When are workflows not enough?

A workflow catches duplicates at the points you anticipated: creation, the first stage, a repeat enquiry. Everything that arrives past those points — manual creation that bypasses the process, old doubled records, lead and contact duplicates that grow into deal duplicates — stays in the base. The systematic solution is the Duplicates No More app: it checks the card on every move through the pipeline and does not let it pass until the duplicate is merged, plus it bulk-scans the existing base. The result is a three-layer setup: workflows prevent duplicates from being created, the check on the stages catches what slipped through, and scanning sorts out the accumulated backlog.

Checklist

Put a contact-and-open-deal search before creating a new deal; on the first stage, check the count of the client's open deals via a compound condition; hand found duplicates to a manager as a task rather than merging blindly; for a blocking check on the stages and bulk scanning, install "Duplicates No More". The search and check robots are in the CRM robot catalog. If the robot you need is missing — describe the task, we build it for free and add it to the shared library.