CRM: Overview of Sections and Methods
CRM methods manage the Bitrix24 customer base: leads, deals, contacts, companies, estimates, invoices, and Smart Processes. They create and update entities, move them through funnels and stages, record the history of work in the timeline, generate documents, and launch automation.
For example, you can create a Smart Process, configure its structure, and then interact with its elements through universal CRM methods.
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect the MCP server so that the assistant can utilize the official REST documentation.
Quick navigation: all sections and methods
User documentation: CRM implementation steps
How to Get Started
- Determine the entity type. The numeric
entityTypeIdidentifiers of all types, including Smart Processes, are returned by crm.enum.ownertype. The settings of the Smart Processes themselves — whether funnels, stages, automation, and other capabilities of the type are enabled — are returned by crm.type.list - Retrieve the entity's set of fields with the crm.item.fields method. For deals and Smart Processes, select the
categoryIdfunnel — crm.category.list — and thestageIdstage — crm.status.list — in advance - Create an entity with the crm.item.add method and update it with crm.item.update
- Read the data: a single entity by its identifier is returned by crm.item.get, and a selection by crm.item.list. CRM list methods return up to 50 entities per request, and the next page is selected with the
startparameter — the details are in the article Features of List Methods
You can subscribe to entity changes with events: they are described in the sections of the entities themselves, for example deal events and Smart Process item events.
CRM operates in classic mode with leads or in simple mode without leads. The current mode is returned by crm.settings.mode.get. In simple mode, a deal is created right away, without a preceding lead.
Universal Methods or Entity Methods
Universal methods crm.item.* operate through entityTypeId and cover the basic operations: creation, reading, updating, and filtering. They are suitable for leads, deals, contacts, companies, estimates, and invoices, and for Smart Processes they are the only way to work with items. The current invoice type is SMART_INVOICE with entityTypeId = 31.
If the operation pertains to only one type of entity—such as the relationships between deals and contacts—use the methods from the relevant section: crm.deal.*, crm.lead.*, crm.contact.*, crm.company.*, crm.quote.*.
The universal methods section has its own subtopics: funnels, detail card sections, product items, invoices, payments and deliveries, order linking, custom fields and their settings, Smart Process types, data import, and events.
The old branches of CRM methods are no longer developed. Invoices are replaced by the universal methods for invoices, and their stages are managed through the SMART_INVOICE_STAGE_xx directory in the crm.status.* methods. Product items are replaced by crm.item.productrow.*, deal funnels by crm.category.*, and products, catalogs, catalog sections, and units of measurement by the product catalog methods.
Field names differ between the two branches of methods: universal methods use camelCase, entity methods use UPPER_CASE. The deal stage is returned in the stageId field by crm.item.get and in the STAGE_ID field by crm.deal.get. The name conversion rules are described in the Universal CRM Methods section.
What is Included in a CRM Card
A CRM card combines the entity's data, the stage of work with it, and the history of interactions.
Fields. The card stores the entity's data, the composition of which depends on its type. A list of available fields can be obtained using the crm.item.fields method. Common fields are described in the article Fields of Main CRM Entities. Custom fields are configured using the userfieldconfig.add or userfieldconfig.update methods — they require the userfieldconfig scope and the module scope from moduleId, which is crm for CRM, as well as the "Allow to modify settings" access permission.
Funnel and Stage. For deals and Smart Processes, the card shows which funnel the entity is in and at what stage. To work with funnels, you need categoryId, which can be retrieved using crm.category.list. Stages are returned by crm.status.list with a filter by the ENTITY_ID directory: DEAL_STAGE — the stages of the main deal funnel, DEAL_STAGE_1 — the stages of the funnel with categoryId = 1. The stage code is returned in the STATUS_ID field: for the main funnel it is NEW or PREPARATION, and for an additional one it carries the funnel prefix, for example C1:NEW. This code is passed in the stageId field of universal methods or in STAGE_ID of entity methods.
Timeline. The timeline stores the history of interactions with the CRM object: activities and comments. To add a record to the entity's card, you typically create a universal activity using the crm.activity.todo.add method or a comment using the crm.timeline.comment.add method.
Documents. Documents are generated from document generator templates: a template is added with the crm.documentgenerator.template.add method, and the document itself is created and linked to a CRM object with the crm.documentgenerator.document.add method.
Automation. The card participates in automation scenarios that depend on the entity's state. An application registers its own trigger with the crm.automation.trigger.add method and executes it with the crm.automation.trigger.execute method — both methods work only in the context of an application.
Typical use-cases and scenarios
Smart Processes
Smart Processes are custom types of CRM entities for business scenarios that go beyond standard leads, deals, contacts, and companies. They are used to describe contract approvals, internal requests, or equipment accounting.
For a Smart Process, unlike standard entities, the structure is configured first. The type is created using the crm.type.add method, which returns the entityTypeId of the new Smart Process. A list of existing types and their entityTypeId can be retrieved using crm.type.list.
Custom fields are added using the userfieldconfig.add method. If necessary, funnels can be configured separately using the crm.category.add method and stages using crm.status.add.
After configuring the structure, you can work with elements using the crm.item.* methods, just like with standard CRM entities.
User documentation
Widgets
An application can be embedded into a CRM entity card or list — as its own tab, as a menu item of a card, a list, or analytics, as a button above the timeline, or in sales funnels. All the placements, supported entity types, and the parameters passed to the handler are collected in the section Widgets in CRM: Overview of Placements, and the general mechanism is described in the article Widget Embedding Mechanism.
The placement code follows a pattern like CRM_XXX_DETAIL_TAB: replace XXX with LEAD, DEAL, CONTACT, COMPANY, QUOTE, SMART_INVOICE, ORDER, or ACTIVITY, and for Smart Processes use DYNAMIC_ followed by the numeric identifier of the type, for example CRM_DYNAMIC_183_DETAIL_TAB.
The second way to embed an application is a custom field that loads the application's interface. A complete example is walked through in the tutorial How to Embed a Widget into a CRM Item Tab.
Key Identifiers
|
Identifier |
Meaning |
Where Used |
How to Obtain |
|
|
CRM object type |
Universal methods, funnels, custom fields |
All types, including Smart Processes — crm.enum.ownertype; the settings of a Smart Process — crm.type.list |
|
|
CRM object identifier |
Reading, updating, relationships between entities |
From the list of entities crm.item.list or after creating an entity crm.item.add |
|
|
Funnel identifier |
Deals and Smart Processes — needed when creating and filtering entities |
From the list of funnels crm.category.list |
|
|
Stage identifier |
Creating and filtering deal and Smart Process entities |
From the list of stages crm.status.list with a filter by |
Relationships with Other Entities
CRM entities are linked to Bitrix24 users, tasks, the product catalog, and telephony.
Users. The person responsible for the CRM object is stored in the assignedById field in universal methods and in ASSIGNED_BY_ID in entity methods. User data can be retrieved using the user.get or user.search methods.
Tasks. Tasks are linked to CRM entities through the multiple field UF_CRM_TASK. It takes an array of identifiers prefixed with the entity type, for example ["D_10", "C_7"]. The prefixes are listed in the article Data Types and Structure of Objects. The relationship is recorded when creating a task using the tasks.task.add method, and it can be read using the tasks.task.get method. For the field to accept Smart Process items, enable task linking for the entity type with the linkedUserFields parameter in the crm.type.update method.
Catalog. Product items in deals and estimates are sourced from the product catalog. Products can be managed using the catalog.product.* methods.
Telephony. Calls create activities in the CRM timeline. The telephony.externalcall.finish method ends the call and returns the identifier of the created activity in the CRM_ACTIVITY_ID parameter.
Overview of Sections and Methods
Scope:
crmWho can execute the method: depending on the method
Reference Materials
|
Article |
Description |
|
What is |
|
|
Fields of key CRM entities in one place |
|
|
Practical scenarios and examples of using CRM |
CRM Entities
|
Section |
When to Use |
Key Methods |
|
For working with CRM entities and Smart Processes through |
||
|
For working with deals, their cards, and relationships with contacts |
||
|
For working with leads, their cards, and relationships with contacts |
||
|
For working with contacts, their cards, and relationships with companies |
||
|
For working with companies, their cards, and relationships with contacts |
||
|
For working with estimates and product items |
Settings and Directories
|
Section |
When to Use |
Key Methods |
|
For managing system lists in CRM: stages, sources, types |
||
|
For managing CRM currencies, base currency, and localization |
||
|
For working with requisites, addresses, and banking information in CRM |
Activities and Documents
|
Section |
When to Use |
Key Methods |
|
For working with activities, comments, calls, and other timeline records |
||
|
For creating call lists and managing their statuses |
||
|
For generating documents based on templates and managing templates and numerators |
crm.documentgenerator.document.add, crm.documentgenerator.template.list |
Automation and Analytics
|
Section |
When to Use |
Key Methods |
|
For executing configured webhook triggers and registering application triggers |
crm.automation.trigger, crm.automation.trigger.add, crm.automation.trigger.execute |
|
|
For creating traces and linking CRM entities to lead sources |
Additional Tools
|
Section |
When to Use |
Key Methods |
|
For finding and merging duplicate CRM records |
||
|
For creating and configuring digital workplaces for Smart Processes |
||
|
For working with enumerations, multiple fields, and other auxiliary CRM objects |
Individual Methods
|
Method |
Description |
|
Returns the current mode of CRM |
|
|
Returns the history of the entity's movement through stages |