Designing the structure of Bitrix24 CRM entities

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Designing the CRM Entity Structure in Bitrix24

Designing the CRM Entity Structure in Bitrix24

One of the most frequent questions during a Bitrix24 implementation: "Why do we need leads if there are deals?" Or the reverse: "Let's just save everything as contacts — why overcomplicate things?" The wrong answer at the start of a project results in a CRM full of duplicates six months later, managers who don't know where to find a client's history, and reports that don't work as expected.

Designing the CRM entity structure is an architectural decision that sets all subsequent rules for working with the system.

Entity Map of Bitrix24 CRM

Bitrix24 provides the following set of built-in entities:

  • Lead (crm_lead, table b_crm_lead) — an unqualified interest, a potential client before their value has been verified.
  • Contact (crm_contact, b_crm_contact) — an individual person with whom communication is conducted.
  • Company (crm_company, b_crm_company) — a legal entity or organization.
  • Deal (crm_deal, b_crm_deal) — a specific sale or project with an amount and a funnel.
  • Invoice (crm_invoice) — a commercial document linked to a deal or contact.
  • Quote (crm_quote) — a commercial proposal prior to invoice issuance.
  • Smart Processes (crm_dynamic_*) — custom entities with an arbitrary field structure and funnel.

Key Architectural Questions

Are leads enabled or disabled?

This is the first and most important choice. In Bitrix24, you can work in "classic" mode (leads → deals) or in "simple" mode (deals from the start, leads disabled). Leads are needed when:

  • There is a high volume of incoming inquiries that require qualification before the sale begins
  • Different teams handle qualification and sales
  • Separate analytics on inquiry sources before conversion is required

If the company is small and every incoming request is immediately qualified — leads add an unnecessary extra step with no benefit.

When are smart processes needed?

Smart processes (introduced in Bitrix24 in late 2021) are configurable entities. Technically, they are stored in b_crm_dynamic_{type_id} — a separate table per type. They are used when:

  • An entity with its own funnel is needed, but it isn't a "sale" (e.g., "Service Request," "Complaint," "Project")
  • Standard deal fields don't cover the required logic
  • Separate analytics are needed, not mixed with deals

It's important to understand the limitations: smart processes don't support certain features available in deals (for example, the product catalog in older versions). Before choosing — verify the Bitrix24 version and the list of limitations.

Relationships between entities.

A contact can be linked to a company (M:1 relationship). A deal can be linked to a contact and/or a company. A lead, when converted, creates a contact, company, and/or deal. These relationships are stored in b_crm_entity_link.

When designing the structure, decisions must be made: is linking a deal to a contact mandatory? Can a deal exist without a company? What happens when a contact is deleted — are related deals also deleted?

Case Study: CRM Structure for a Service Center

Client — a chain of electronics repair service centers, 5 cities, 30 employees. Initial structure: everything in deals, one funnel "Repair," fields jumbled together — device serial number, model, fault description, parts cost, labor cost, promised return date.

Problem: a deal would be closed, but the client would come back — a new deal was created with no link to the history. A year in, the CRM contained 3,200 "Ivanovs" with no way to understand how many times each had visited.

Designed structure:

Contact — an individual (the client). Mandatory. Stores the history of all visits.

Smart Process "Device" — each piece of equipment that has ever been brought in for repair. Fields: serial number, model, brand, year of purchase. Linked to the contact. One contact — multiple devices.

Deal "Repair" — a specific repair case. Linked to the contact and to the "Device" smart process. Fields: fault description, diagnosis, labor cost, parts cost, warranty status.

Result: the repair history for a device is visible on a single screen. Repeat visits from a client are linked through the contact. A "most frequently repaired devices" report emerged — which turned out to be a genuine insight for the parts procurement team.

Custom Fields vs. Smart Processes

A common mistake: adding 20–30 custom fields to a standard deal instead of creating a separate entity. Symptoms: the deal card becomes a four-screen-scroll form, managers fill in a third of the fields, analytics don't work.

Rule: if a group of fields describes a separate object (not the sale itself) — consider a smart process. If the fields supplement the sale — keep them in the deal, but group them by tabs.

Timeline

Designing the CRM entity structure for a typical B2B business takes 4–8 days: interviews, analysis, relationship schema design, approvals, basic structure implementation, and documentation. Complex structures with multiple smart processes and non-standard relationships take 2–4 weeks.