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

  1. Determine the entity type. The numeric entityTypeId identifiers 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
  2. Retrieve the entity's set of fields with the crm.item.fields method. For deals and Smart Processes, select the categoryId funnel — crm.category.list — and the stageId stage — crm.status.list — in advance
  3. Create an entity with the crm.item.add method and update it with crm.item.update
  4. 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 start parameter — 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.

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.

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

entityTypeId

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

id

CRM object identifier

Reading, updating, relationships between entities

From the list of entities crm.item.list or after creating an entity crm.item.add

categoryId

Funnel identifier

Deals and Smart Processes — needed when creating and filtering entities

From the list of funnels crm.category.list

stageId

Stage identifier

Creating and filtering deal and Smart Process entities

From the list of stages crm.status.list with a filter by ENTITY_ID

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: crm

Who can execute the method: depending on the method

Reference Materials

Article

Description

Data Types and Structure of Objects in the REST API CRM

What is entityTypeId, what identifiers exist, and how CRM entities are structured

Fields of Main CRM Entities

Fields of key CRM entities in one place

Typical Use-Cases and Tutorials

Practical scenarios and examples of using CRM

CRM Entities

Section

When to Use

Key Methods

Universal CRM Methods

For working with CRM entities and Smart Processes through entityTypeId

crm.item.add, crm.item.update, crm.item.list

All methods in the section

Deals

For working with deals, their cards, and relationships with contacts

crm.deal.add, crm.deal.update, crm.deal.list

All methods in the section

Leads

For working with leads, their cards, and relationships with contacts

crm.lead.add, crm.lead.update, crm.lead.list

All methods in the section

Contacts

For working with contacts, their cards, and relationships with companies

crm.contact.add, crm.contact.update, crm.contact.list

All methods in the section

Companies

For working with companies, their cards, and relationships with contacts

crm.company.add, crm.company.update, crm.company.list

All methods in the section

Estimates

For working with estimates and product items

crm.quote.add, crm.quote.update, crm.quote.list

All methods in the section

Settings and Directories

Section

When to Use

Key Methods

Directories

For managing system lists in CRM: stages, sources, types

crm.status.add, crm.status.update, crm.status.list

All methods in the section

Currencies

For managing CRM currencies, base currency, and localization

crm.currency.add, crm.currency.update, crm.currency.list

All methods in the section

Requisites

For working with requisites, addresses, and banking information in CRM

crm.requisite.add, crm.requisite.update, crm.requisite.list

All methods in the section

Activities and Documents

Section

When to Use

Key Methods

Timeline and Activities

For working with activities, comments, calls, and other timeline records

crm.activity.todo.add, crm.timeline.comment.add

All methods in the section

Call Lists

For creating call lists and managing their statuses

crm.calllist.add, crm.calllist.list

All methods in the section

Document Generator

For generating documents based on templates and managing templates and numerators

crm.documentgenerator.document.add, crm.documentgenerator.template.list

All methods in the section

Automation and Analytics

Section

When to Use

Key Methods

CRM Automation

For executing configured webhook triggers and registering application triggers

crm.automation.trigger, crm.automation.trigger.add, crm.automation.trigger.execute

All methods in the section

Sales Intelligence

For creating traces and linking CRM entities to lead sources

crm.tracking.trace.add, crm.tracking.trace.delete

All methods in the section

Additional Tools

Section

When to Use

Key Methods

Finding and Merging Duplicates

For finding and merging duplicate CRM records

crm.duplicate.findbycomm, crm.entity.mergeBatch

All methods in the section

Digital Workplaces

For creating and configuring digital workplaces for Smart Processes

crm.automatedsolution.add, crm.automatedsolution.list

All methods in the section

Auxiliary Objects

For working with enumerations, multiple fields, and other auxiliary CRM objects

crm.enum.ownertype

All methods in the section

Individual Methods

Method

Description

crm.settings.mode.get

Returns the current mode of CRM

crm.stagehistory.list

Returns the history of the entity's movement through stages