Data Types and Object Structure in the CRM Forms REST API
Choose a tool for developing with an AI agent:
- use Alaio Vibecode to build an app for Bitrix24 from a task description without knowing any programming language. The agent writes the code and deploys the app to a server, with no manual hosting setup
- use the MCP server to develop a REST API integration in your own project. The agent refers to the official REST documentation
CRM form data types describe the identifiers and object structures in the parameters and responses of the crm.form.* methods. This reference shows which fields a form has, which of them can be written, and where to get their values. The basic types integer, string, object, and others are listed in Data Types in the REST API.
How to Choose an Object
|
Object |
When to Use |
Methods |
|
To read, create, and update a CRM form: fields, CRM scheme, appearance, consents, post-submission actions, integrations |
||
|
To retrieve the values required to create a form: CRM schemes, pipelines, field types, languages, payment systems, permissions, and the active forms limit |
||
|
To choose a ready-made form scenario |
||
|
To group scenarios by category |
||
|
To choose the CRM object fields the form is built from |
||
|
To retrieve the embed code, the public link, and the button and auto-display settings |
||
|
To retrieve the code of a single placement option |
||
|
To check which website widgets the form is connected to |
||
|
To check in which Open Channels the form is the welcome form |
Data Types
|
Type |
Descriptions and Values |
|
Integer identifier of a CRM form, for example |
|
|
Form version — the date and time of the last change in ISO 8601 format, for example |
|
|
Integer identifier of a CRM scheme, for example |
|
|
Integer identifier of a deal pipeline, |
|
|
Integer identifier of an SPA pipeline. Passed in |
|
|
String code of a form field type, for example |
|
|
String code of the form language, for example |
|
|
Integer identifier of a payment system. Passed in |
|
|
String code of a scenario, for example |
|
|
String code of a scenario category, for example |
|
|
String code of a CRM object field, for example |
|
|
Integer identifier of a website widget. Can be retrieved with crm.form.sitebutton.list |
|
|
Integer identifier of an Open Channel. Can be retrieved with crm.form.openline.list |
How to Read and Write Form Fields
- Without
select, read methods return only the simple top-level fields:id,code,name,active,system,languageId,templateId,createdTime,updatedTime,activeChangedById,activeChangedTime. Theappearance,crm,fields, and other sections must be requested inselectexplicitly - In
select, you can pass an entire section, for examplecrm, or a single section field using dot notation, for examplecrm.entityScheme - When writing, pass only the fields you want to change. Fields missing from the request remain unchanged
- A section cannot be cleared entirely with
null: clear individual section fields instead - The
fields,dependencies,presetFields,responsible.userIds,agreements.items,payment.disabledPaySystemsId, andintegrations.adscollections are replaced entirely. An empty array[]clears a collection;nullis not accepted - A single collection can contain up to 500 elements, and the whole request up to 2000 elements across all collections
- Fields marked as read-only cannot be passed in
fields: the method returns the`field` is published for reading onlyerror
Object Structure
crm_form
A CRM form. Returned by crm.form.get and crm.form.list, passed in fields of crm.form.add, crm.form.update, and crm.form.validate.
crm.form.field.list returns the list of form fields with filtering and sorting flags.
|
Name |
Description |
Write |
|
id |
Form identifier |
Read-only |
|
code |
Form symbolic code |
Read-only |
|
name |
Form name, up to 50 characters |
Required on creation |
|
active |
Form activity. Possible values:
Passed only in crm.form.add, |
On creation only |
|
system |
System form flag. A system form cannot be updated or deleted Possible values:
|
Read-only |
|
languageId |
Form language. crm.form.configuration.get returns the list of languages in the |
Yes |
|
templateId |
Scenario the form was created from, for example |
Yes |
|
createdTime |
Form creation date and time |
Read-only |
|
updatedTime |
Form version — the date and time of the last change. Passed in |
Read-only |
|
activeChangedById |
Identifier of the user who last activated or deactivated the form |
Read-only |
|
activeChangedTime |
Date and time the form was last activated or deactivated |
Read-only |
|
appearance |
Form title, description, and button. Section structure |
Yes |
|
crm |
CRM objects the form creates. Section structure |
Yes |
|
fields |
Form fields. The element structure is described below |
Yes |
|
dependencies |
Dependent field rules. Element structure |
Yes |
|
presetFields |
CRM field values the form fills in automatically. Element structure |
Yes |
|
responsible |
Responsible persons queue. Section structure |
Yes |
|
agreements |
Consents the customer accepts. Section structure |
Yes |
|
submission |
What the customer sees after submitting the form. Section structure |
Yes |
|
payment |
Payment after the form is submitted. Section structure |
Yes |
|
callback |
Callback after the form is submitted. Section structure |
Yes |
|
booking |
Online booking. Contains the |
Read-only |
|
analytics |
Web analytics counters. Section structure |
Yes |
|
spamProtection |
Spam protection. Contains the |
Yes |
|
integrations |
Integrations with messengers and advertising services. Section structure |
Yes |
Appearance Section
|
Name |
Description |
Write |
|
title |
Form title |
Yes |
|
description |
Description below the title |
Yes |
|
buttonCaption |
Submit button text |
Yes |
|
buttonTextColor |
Button text color |
Yes |
|
buttonBackgroundColor |
Button background color |
Yes |
|
backgroundImageId |
Background image identifier |
Read-only |
|
copyrightRemoved |
Whether the "Powered by Bitrix24" label is hidden. Possible values:
If the plan does not allow removing the label, the value |
Yes |
The form theme cannot be changed via REST yet.
Crm Section
|
Name |
Description |
Write |
|
entityScheme |
CRM scheme — the objects created by submitting the form, for example a lead or a deal with a contact. crm.form.configuration.get returns the scheme identifiers in the The scheme determines which CRM fields can be added to the form |
Required on creation |
|
duplicateMode |
What to do if the customer already exists in CRM. Possible values from the
|
Yes |
|
dealCategoryId |
Deal pipeline. |
Yes |
|
dealDuplicateControlEnabled |
Duplicate control for deals. Possible values:
|
Yes |
|
smartProcessCategoryId |
SPA pipeline. crm.form.configuration.get returns the pipeline identifiers in the |
Yes |
|
smartProcessDuplicateControlEnabled |
Duplicate control for SPA items. Possible values:
|
Yes |
Fields Element
|
Name |
Description |
Write |
|
name |
Field code, for example |
Yes |
|
type |
Field type, for example Fields with choice options and products cannot be added via REST yet: |
Yes |
|
label |
Field label |
Yes |
|
sort |
Field order. Calculated from the element's position in the |
Read-only |
|
required |
Whether the field is required. Possible values:
|
Yes |
|
multiple |
Whether multiple values can be entered. Possible values:
|
Yes |
|
placeholder |
Hint shown inside an empty field |
Yes |
|
valueType |
Value type for contact fields, for example a work or mobile phone |
Yes |
|
value |
Default value |
Yes |
Dependencies Element
Each element is a group of rules that show or hide fields depending on the customer's answers.
|
Name |
Description |
|
logic |
How the group's rules are combined. Possible values:
|
|
rules |
Group rules. A group must contain at least one rule. Each rule contains the |
|
rules[].condition.fieldName |
Code of the form field the rule tracks. The field must be in |
|
rules[].condition.event |
Field event. Possible value: |
|
rules[].condition.operation |
Comparison. Possible values:
|
|
rules[].condition.value |
Value to compare with |
|
rules[].action.fieldName |
Code of the form field the rule acts on |
|
rules[].action.type |
Action. Possible values:
|
|
rules[].action.value |
Action value |
PresetFields Element
|
Name |
Description |
|
entityName |
CRM object, for example |
|
fieldName |
Object field code |
|
value |
Value the form writes to the field |
Responsible Section
|
Name |
Description |
|
userIds |
Identifiers of the responsible persons in queue order. An identifier cannot be repeated. User identifiers can be retrieved with user.get |
|
checkWorkTime |
Whether to take working hours into account when choosing the next responsible person. Possible values:
|
Agreements Section
|
Name |
Description |
|
enabled |
Whether to show consents in the form. Possible values:
|
|
items |
Consents. Each element contains:
|
Submission Section
|
Name |
Description |
|
success |
Result of a successful submission: |
|
failure |
Result of a failed submission: |
|
redirectDelay |
Delay before the redirect after a successful submission, from 0 to 10 seconds |
|
refill |
Offer to fill in the form again: |
Payment Section
|
Name |
Description |
|
enabled |
Whether payment is enabled. Payment can be enabled if orders are available in Bitrix24 |
|
disabledPaySystemsId |
Payment systems the form does not offer. All other Bitrix24 payment systems are available, including those connected later. An empty array enables all payment systems. crm.form.configuration.get returns the identifiers in the |
Callback Section
|
Name |
Description |
|
enabled |
Whether callback is enabled. It can be enabled if callback is available in Bitrix24 |
|
from |
Number Bitrix24 uses to call the customer back. The number must be among the Bitrix24 telephony numbers |
|
text |
Text the customer hears during the call |
Analytics Section
|
Name |
Description |
|
googleAnalyticsId |
Google Analytics identifier |
|
googleAnalyticsPageViewEnabled |
Whether to send page views to Google Analytics |
|
yandexMetricaId |
Web analytics counter identifier |
Integrations Section
|
Name |
Description |
|
whatsAppEnabled |
Whether the form is enabled in the messenger. It can be enabled if the feature is available in Bitrix24 |
|
ads |
Links to advertising service forms. Each element contains:
|
crm_form_configuration
Form builder directories. Returned by crm.form.configuration.get in the item key.
|
Name |
Description |
|
entitySchemes |
CRM object creation schemes: which objects a submitted form creates (detailed description). The scheme identifier is passed in the |
|
duplicateModes |
Modes for handling repeated form submissions: elements with the The |
|
lead |
Object with the
|
|
dealCategories |
Deal pipelines: elements with the The |
|
smartProcesses |
SPAs whose items the form can create (detailed description) |
|
languages |
Form languages: elements with the The |
|
currencies |
Bitrix24 currencies (detailed description) |
|
fieldTypes |
Field types a form can be built from (detailed description). The |
|
paySystems |
Payment systems that can be used to pay for a submitted form: elements with the The identifiers of the systems the form must not offer are passed in the |
|
permissions |
Current user's permissions for CRM forms:
|
|
limits |
Object with the
If the number of active forms in Bitrix24 is unlimited, |
|
product |
Product information:
|
|
region |
Bitrix24 region code, for example |
EntitySchemes Element
|
Name |
Description |
|
id |
Scheme identifier |
|
name |
Scheme name |
|
description |
Scheme description: which objects it creates |
|
entityNames |
Codes of the CRM objects the scheme creates, for example The codes are passed in the filter of crm.form.entityfield.list to retrieve the fields for the form |
|
mainEntityName |
Code of the scheme's main object. For the "Client" scheme — |
|
hasInvoice |
Flag indicating that the scheme creates an invoice |
|
dynamic |
SPA scheme flag |
SmartProcesses Element
|
Name |
Description |
|
entityTypeId |
SPA type identifier |
|
entityName |
SPA code, for example |
|
name |
SPA name |
|
categories |
SPA pipelines: elements with the The |
Currencies Element
|
Name |
Description |
|
id |
Currency code, for example |
|
fullName |
Currency name |
|
formatString |
Amount output template, |
FieldTypes Element
|
Name |
Description |
|
id |
Form field type code, for example |
|
name |
Field type name |
|
parameters |
Parameters that can be set for a field of this type in the |
The fieldTypes directory does not contain field types with choice options: list, checkboxes, radio buttons. Such fields, as well as products and booking, cannot be added to a form via REST yet.
crm_form_scenario
Form creation scenario. Returned by crm.form.scenario.list in the items array. The scenario code id is passed in the form's templateId field.
|
Name |
Description |
|
id |
Scenario code, for example |
|
title |
Scenario name |
|
description |
Scenario description or |
|
categoryId |
Scenario category code. crm.form.scenariocategory.list returns the category names |
|
iconUrl |
Path to the scenario icon in Bitrix24, or |
|
sections |
Builder sections the scenario opens for setup, for example |
|
expertSections |
Builder sections the scenario opens in advanced mode. Can be empty |
|
defaultSection |
Section the builder opens with, or |
|
openable |
Flag indicating that the scenario opens the form builder. Possible values:
|
|
soon |
Announced scenario flag. Possible values:
|
|
actions |
Additional scenario actions, for example |
crm_form_scenario_category
Scenario category. Returned by crm.form.scenariocategory.list in the items array.
|
Name |
Description |
|
id |
Category code. Matches the |
|
title |
Category name |
crm_form_entity_field
A CRM object field that can be added to a form. Returned by crm.form.entityfield.list in the items array.
|
Name |
Description |
|
name |
Field code, for example |
|
label |
Field name |
|
type |
Field type, for example |
|
required |
Required field flag in CRM |
|
multiple |
Multiple field flag |
|
entityName |
Code of the CRM object the field belongs to |
|
entityLabel |
CRM object name |
|
items |
Value options of a list field: elements with the fields |
crm_form_embedding
Form placement options. Returned by crm.form.embedding.get without the variant parameter in the item key. The click.settings and auto.settings settings are changed by crm.form.embedding.update.
|
Name |
Description |
|
formActive |
Whether the form is active. Possible values:
|
|
resourcesReady |
Whether the form files are built for publishing. Possible values:
|
|
publicUrl |
Public link to the form |
|
inline |
Option for embedding the form in a website page. The option has no settings, so |
|
click |
Option for showing the form on a button or link click, detailed description |
|
auto |
Option for showing the form automatically after a specified time, detailed description |
Inline, Click, Auto Objects
|
Name |
Description |
|
code |
HTML code for embedding on a website. |
|
previewUrl |
Link to the form preview in this placement option |
|
settings |
Current display settings. Available only for the |
|
options |
Allowed values of the display settings. Available only for the |
Settings Object
If a setting value is not saved in the form, null is returned. In this case, the default value is applied on the website.
|
Name |
Description |
|
type |
Form window type. Possible values:
|
|
position |
Horizontal window position. Possible values:
|
|
vertical |
Vertical window position. Possible values:
|
|
delay |
Auto-display delay in seconds. Available only for the |
|
button |
Settings of the button that opens the form. Available only for the |
Button Object
|
Name |
Description |
|
use |
Whether to show the Bitrix24 button on the website. Possible values:
|
|
text |
Button text |
|
font |
Button font. The allowed values are listed in |
|
align |
Button alignment. The allowed values are listed in |
|
plain |
Flag for a button without a background. Possible values:
|
|
rounded |
Rounded corners flag. Possible values:
|
|
outlined |
Button outline flag. Possible values:
|
|
decoration |
Button text underline. The interface offers the values |
|
color |
Button colors in HEX format, for example
|
Options Object
|
Name |
Description |
|
type |
Allowed values of |
|
position |
Allowed values of |
|
vertical |
Allowed values of |
|
delay |
Allowed values of |
|
button |
Allowed values of the button settings: |
crm_form_embedding_selection
A single placement option. Returned by crm.form.embedding.get with the variant parameter in the item key.
|
Name |
Description |
|
variant |
Selected placement option: |
|
code |
HTML code for embedding on a website. Returned for the |
|
url |
Public link to the form. Returned for the |
crm_form_site_button
Website widget. Returned by crm.form.sitebutton.list in the items array. A form cannot be linked to a widget via REST.
|
Name |
Description |
|
formId |
CRM form identifier from the request filter |
|
id |
Widget identifier |
|
name |
Widget name |
|
system |
System widget flag. Possible values:
|
|
bound |
Whether the form from the filter is connected to this widget. Possible values:
|
|
formsId |
Identifiers of all CRM forms connected to the widget |
|
previewUrl |
Link to the widget preview. The form from the filter is visible in the preview only if |
crm_form_open_line
Open Channel. Returned by crm.form.openline.list in the items array. A form cannot be set as the welcome form via REST.
|
Name |
Description |
|
formId |
CRM form identifier from the request filter |
|
id |
Open Channel identifier |
|
name |
Open Channel name |
|
bound |
Whether the form from the filter is the welcome form of this Open Channel. Possible values:
|
|
welcomeFormEnabled |
Whether a welcome form is enabled in the Open Channel: this one or another. Possible values:
|
|
welcomeFormId |
Identifier of the Open Channel welcome form. |
|
welcomeFormDelayed |
When the welcome form is shown. Possible values:
|
|
previewUrl |
Link to the preview of the website widget with this Open Channel. |
User Documentation
- Create and Configure CRM Forms
- Change CRM Form Title, Name, and Page Name
- Collect Customer Consent via a CRM Form
- Configure Field Show Rules in CRM Forms
- CRM Forms: How to Fix Errors in Field Display Rules Settings
- Autocomplete Fields in CRM Forms
- Default Values for Hidden Fields in CRM Forms
- Create Personalized CRM Forms
- Configure reCAPTCHA V2 for CRM Forms