Custom Fields for Estimates: Overview of Methods and Events
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
Custom fields add data to the estimate detail form for which there are no system fields: a string, a number, a link, an address, a reference to another CRM object. The methods for working with the estimates themselves are collected in the section Estimates.
Quick navigation: all methods and events
User documentation: Custom fields in CRM
Getting Started
- Choose the field type — it determines the format of the stored data and the set of available settings. The full list of types is returned by the method crm.userfield.types
- Find out which settings the chosen type supports using the method crm.userfield.settings.fields, and the list of general field characteristics using the method crm.userfield.fields
- Create the field using the method crm.quote.userfield.add. The response contains the field identifier, and the full name is returned by the method crm.quote.userfield.get
- Write and read the field value by its full name in the methods crm.quote.add, crm.quote.update, and crm.quote.get
Custom Field Name
The field code is passed in the required parameter FIELD_NAME of the method crm.quote.userfield.add, and the system builds the full name itself: the prefix UF_CRM_ is added to the code. For FIELD_NAME = MANAGER_NOTE, the full field name will be UF_CRM_MANAGER_NOTE. For fields created in the Bitrix24 interface, the code is substituted automatically, and their names look like UF_CRM_QUOTE_1768404002.
It is the full name that is used further on:
- in the
fieldsparameter of the methods crm.quote.add and crm.quote.update — to write the value - in the
selectparameter of the method crm.quote.list — to return the value in the selection. TheUF_*mask selects all custom fields at once - in the
FIELD_NAMEfield of custom field events — to determine which field has changed
Types of Custom Fields
The type is set in the USER_TYPE_ID field when the field is created and cannot be changed afterwards.
|
Type |
What It Stores |
|
|
A string |
|
|
An integer |
|
|
A floating-point number |
|
|
A yes or no value |
|
|
A date |
|
|
A date and time |
|
|
An amount with a currency |
|
|
A link |
|
|
An address on a map |
|
|
A file |
|
|
A value from a list that is defined in the |
|
|
A reference to a Bitrix24 user |
|
|
A reference to a CRM entity: a lead, deal, contact, or company |
|
|
A reference to a CRM reference guide item |
|
|
A reference to an information block element |
|
|
A reference to an information block section |
The current list of types is returned by the method crm.userfield.types, and the set of settings for a specific type — by the method crm.userfield.settings.fields.
Errors When Working with Custom Fields
When creating or deleting custom fields, the request may be interrupted with an error INTERNAL_SERVER_ERROR. This is an internal server error, and its cause is visible only in the server logs at the time of the request:
- in cloud Bitrix24, submit a request to technical support to get details about the error
- in on-premise Bitrix24, request the server error log from the server or hosting administrator, and then contact technical support and attach the log for analysis
Common Causes of Server Errors
-
You can create 1016 custom fields for estimates — this is a limitation of the database architecture. If there are already 1016 fields for estimates in Bitrix24, attempting to create a new field will result in the method crm.quote.userfield.add returning an error INTERNAL_SERVER_ERROR
You can check the number of custom fields for estimates using the method crm.quote.userfield.list
-
There is a limitation on servers for the execution time of a single request —
max_execution_time, with a standard value of 60 seconds. If the request takes longer, it is interrupted with an error INTERNAL_SERVER_ERRORThe time for creating or deleting a custom field depends on the number of estimates: when a field is created, it is added to all estimate detail forms, and when it is deleted, it is removed from all detail forms. The fewer estimates you have in Bitrix24, the faster fields are created and deleted
To find out the number of estimates, use the method crm.quote.list
Overview of Methods and Events
Scope:
crmWho can execute the method: depending on the method — only a CRM administrator can create, update, and delete fields, while a user with permission to read estimates can read them
|
Method |
Description |
|
Creates a new custom field for estimates |
|
|
Updates an existing custom field for estimates |
|
|
Returns a custom field for estimates by ID |
|
|
Returns a list of custom fields for estimates by filter |
|
|
Deletes a custom field for estimates |
|
Event |
Triggered |
|
When a custom field is added manually or via the method crm.quote.userfield.add |
|
|
When a custom field is updated manually or via the method crm.quote.userfield.update |
|
|
When a custom field is deleted manually or via the method crm.quote.userfield.delete |
|
|
When the set of values for a list-type custom field is changed manually or via the method crm.quote.userfield.update |