Import a single record crm.item.import

Scope: crm

Who can execute the method: any user with "import" access permission for the CRM object

A universal method for importing objects into CRM.

You can read about the differences between the import logic and the logic of regular element addition in the article Data Import into CRM.

Method Parameters

Required parameters are marked with *

Name
type

Description

entityTypeId*
integer

Identifier of the system or user-defined type for which the element needs to be created

fields*
object

Object format:

{
            field_1: value_1,
            field_2: value_2,
            ...,
            field_n: value_n,
        }
        
  • field_n — field name
  • value_n — field value

For multi-fields, such as PHONE, EMAIL, pass the data in the crm_multifield structure:

{
            field_name: [
                {
                    VALUE: "value_1",
                    VALUE_TYPE: "type_1"
                },
                {
                    VALUE: "value_2",
                    VALUE_TYPE: "type_2"
                },
                ...
            ]
        }
        
  • field_name — field name, for example PHONE
  • VALUE — field value, for example a phone number
  • VALUE_TYPE — value type, for example WORK

Each CRM object has its own set of fields. This means that the set of fields for creating a Lead does not have to match the set of fields for creating a Contact or SPA.

The list of available fields for each type of object is described below.

An incorrect field in fields will be ignored.

You can also find out the set of fields using the universal method crm.item.fields or methods for specific CRM objects:

useOriginalUfNames
[boolean][1]

Parameter to control the format of user field names in the request and response.
Possible values:

  • Y — original user field names, for example UF_CRM_2_1639669411830
  • N — user field names in camelCase, for example ufCrm2_1639669411830

Default is N

Parameter fields

Required parameters are marked with *

CRM object identifier entityTypeId: 1

Name
type

Description

title
string

Name of the entity.

By default, it is generated using the template {entityTypeName} #{id}, where

  • entityTypeName — name of the entity
  • id — identifier of the element

For example, for a lead with id = 13 — 'Lead #13'

honorific
crm_status

String identifier for the lead's salutation (e.g., 'HNR_RU_1' = 'Mr.').

The list of available salutations can be obtained using crm.status.list with the filter { ENTITY_ID: "HONOFIRIC" }.

By default — null

name
string

First name.

By default — null

secondName
string

Middle name.

By default — null

lastName
string

Last name.

By default — null

birthdate
date

Date of birth.

By default — null

companyTitle
string

Company name.

By default — null

sourceId
crm_status

String identifier for the source.

For example, 'CALL' = 'Call'.

The list of available sources can be obtained using crm.status.list with the filter { ENTITY_ID: "SOURCE" }.

By default, it takes the value of the first available source

sourceDescription
text

Additional information about the source.

By default — null

stageId
crm_status

String identifier for the stage of the element.

For example, 'NEW' = 'Unprocessed'.

The list of available stages can be obtained using crm.status.list with the filter { ENTITY_ID: "STATUS" }

By default, it takes the value of the first available stage

statusDescription
text

Additional information about the stage.

By default — null

post
string

Position.

By default — null

currencyId
crm_currency

Identifier for the currency of the element.

By default, it takes the default currency

isManualOpportunity
boolean

Calculation mode for the amount. Possible values:

  • Y — manual
  • N — automatic

By default — N

opportunity
double

Amount.

By default — null

opened
boolean

Is the element available to everyone? Possible values:

  • Y — yes
  • N — no

By default — Y. The default value can be changed in the CRM settings

comments
text

Comment.

By default — null

assignedById
user

Identifier of the person responsible for the element.

By default, this is the identifier of the user who calls the method

companyId
crm_company

Identifier of the company linked to the element.

The list of companies can be obtained using the crm.item.list method with entityTypeId = 4.

By default — null

contactId
crm_contact

Identifier of the contact linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

By default — null

contactIds
crm_contact[]

List of identifiers of contacts linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

By default — null

originatorId
string

External source.

By default — null

originId
string

Identifier of the element in the external source.

By default — null

webformId
integer

Identifier of the CRM Form.

By default — null

observers
user[]

Array of user identifiers who will be observers of the element.

By default — null

utmSource
string

Advertising system. For example: Google-Adwords

By default — null

utmMedium
string

Type of traffic. Possible values:

  • CPC — ads
  • CPM — banners

By default — null

utmCampaign
string

Identifier of the advertising campaign.

By default — null

utmContent
string

Content of the campaign. For example, for contextual ads.

By default — null

utmTerm
string

Search term for the campaign. For example, keywords for contextual advertising.

By default equals null

ufCrm...
crm_userfield

User-defined field.

For information on user-defined fields, see the section Custom Fields in CRM

Values of multiple fields are passed as an array.

To upload a file, the value of the user-defined field must be an array where the first element is the file name and the second is the base64 encoded content of the file.

parentId...
crm_entity

Parent field. An element of another type of CRM object that is linked to this element.

Each such field has the code parentId + {parentEntityTypeId}

CRM object identifier entityTypeId: 2

Name
type

Description

title
string

Name of the element.

By default, it is generated using the template {entityTypeName} #{id}, where

  • entityTypeName — name of the entity
  • id — identifier of the element
    For example, for a deal with id = 13 => 'Deal #13'

typeId
crm_status

String identifier for the type of entity.

For example, for a deal: 'SALE' = 'Sale'

The list of available entity types can be obtained using crm.status.list with the filter { ENTITY_ID: "DEAL_TYPE" }

By default — the first available entity type

categoryId
integer

Identifier of the direction (funnel) of the deal.

By default — 0 (general)

stageId
crm_status

String identifier for the stage of the element.

For example, 'NEW' = 'Unprocessed'.

The list of available stages can be obtained using crm.status.list with the filter:

  • If the deal is in the general funnel (direction) — { ENTITY_ID: "DEAL_STAGE" }
  • If the deal is not in the general funnel (direction) — { ENTITY_ID: "DEAL_STAGE_{categoryId}" }, where
    categoryId is the identifier of the funnel (direction) of the deal

By default — the first available stage relative to the funnel

isRecurring
boolean

Is the deal recurring? Possible values:

  • Y — yes
  • N — no

By default — N

probability
integer

Probability %.

By default — null

currencyId
crm_currency

Identifier for the currency of the element.

By default — the default currency

isManualOpportunity
boolean

Calculation mode for the amount. Possible values:

  • Y — manual
  • N — automatic

By default — N

opportunity
double

Amount.

By default — null

taxValue
double

Tax amount.

By default — null

companyId
crm_company

Identifier of the company linked to the element.

The list of companies can be obtained using the crm.item.list method with entityTypeId = 4.

By default — null

contactId
crm_contact

Identifier of the contact linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

By default — null

contactIds
crm_contact[]

List of identifiers of contacts linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

By default — null

quoteId
crm_quote

Identifier of the estimate that will be linked to the deal

begindate
date

Start date of the element.

By default — creation date

closedate
date

End date of the element.

By default — creation date + 7 days

opened
boolean

Is the element available to everyone? Possible values:

  • Y — yes
  • N — no

By default — Y. The default value can be changed in the CRM settings

comments
text

Comment.

By default — null

assignedById
user

Identifier of the person responsible for the element.

By default — the identifier of the user who calls the method

sourceId
crm_status

String identifier for the source.

For example, 'CALL' = 'Call'.

The list of available sources can be obtained using crm.status.list with the filter { ENTITY_ID: "SOURCE" }.

By default — the first available source

sourceDescription
text

Additional information about the source.

By default — null

leadId
crm_lead

Identifier of the lead based on which the element is created.

By default — null

additionalInfo
string

Additional information.

By default — null

originatorId
string

External source.

By default — null

originId
string

Identifier of the element in the external source.

By default — null

observers
user[]

Array of user identifiers who will be observers of the element.

By default — null

locationId
location

Identifier of the location. Service field.

By default — null

utmSource
string

Advertising system. For example: Google-Adwords

By default — null

utmMedium
string

Type of traffic. Possible values:

  • CPC — ads
  • CPM — banners

By default — null

utmCampaign string

Identifier of the advertising campaign.

By default — null

utmContent
string

Content of the campaign. For example, for contextual ads.

By default — null

utmTerm
string

Search term for the campaign. For example, keywords for contextual advertising.

By default — null

ufCrm...
crm_userfield

User-defined field. See the section Custom Fields in CRM

  • Values of multiple fields are passed as an array
  • To upload a file, the value of the user-defined field must be an array where the first element is the file name and the second is the base64 encoded content of the file.

parentId...
crm_entity

Parent field. An element of another type of CRM object that is linked to this element.

Each such field has the code parentId + {parentEntityTypeId}

CRM object identifier entityTypeId: 3

Name
type

Description

honorific
crm_status

String identifier for the contact's salutation.

For example, 'HNR_RU_1' = 'Mr.'.

The list of available salutations can be obtained using crm.status.list with the filter { ENTITY_ID: "HONOFIRIC" }.

By default — null

name
string

First name.

By default — null

secondName
string

Middle name.

By default — null

lastName
string

Last name.

By default — null

photo
file

Photo.

By default — null

birthdate
date

Date of birth.

By default — null

typeId
crm_status

String identifier for the type of entity.

For example, for a deal: 'SALE' = 'Sale'.

The list of available entity types can be obtained using crm.status.list with the filter { ENTITY_ID: "CONTACT_TYPE" }.

By default — the first available entity type

sourceId
crm_status

String identifier for the source.

For example, 'CALL' = 'Call'.

The list of available sources can be obtained using crm.status.list with the filter { ENTITY_ID: "SOURCE" }.

By default — the first available source

sourceDescription
text

Additional information about the source.

By default — null

post
string

Position.

By default — null

comments
text

Comment.

By default — null

opened
boolean

Is the element available to everyone? Possible values:

  • Y — yes
  • N — no

By default — Y. The default value can be changed in the CRM settings

export
boolean

Is the contact included in the export?

By default — Y

assignedById
user

Identifier of the person responsible for the element.

By default — the identifier of the user who calls the method

companyId
crm_company

Identifier of the company linked to the element.

The list of companies can be obtained using the crm.item.list method with entityTypeId = 4.

By default — null

companyIds
crm_company

Array of identifiers of companies that will be linked to the element

leadId
crm_lead

Identifier of the lead based on which the element is created.

By default — null

originatorId
string

External source.

By default — null

originId
string

Identifier of the element in the external source.

By default — null

originVersion
string

Version of the original.

By default — null

observers
user[]

Array of user identifiers who will be observers of the element.

By default — null

utmSource
string

Advertising system. For example: Google-Adwords

By default — null

utmMedium
string

Type of traffic. Possible values:

  • CPC — ads
  • CPM — banners

By default — null

utmCampaign
string

Identifier of the advertising campaign.

By default — null

utmContent
string

Content of the campaign. For example, for contextual ads.

By default — null

utmTerm
string

Search term for the campaign. For example, keywords for contextual advertising.

By default — null

ufCrm...
crm_userfield

User-defined field. See the section Custom Fields in CRM

  • Values of multiple fields are passed as an array
  • To upload a file, the value of the user-defined field must be an array where the first element is the file name and the second is the base64 encoded content of the file.

parentId...
crm_entity

Parent field. An element of another type of CRM object that is linked to this element.

Each such field has the code parentId + {parentEntityTypeId}

CRM object identifier entityTypeId: 4

Name
type

Description

title
string

Name of the element.

By default, it is generated using the template {entityTypeName} #{id}, where

  • entityTypeName — name of the entity
  • id — identifier of the element

For example, for a company with id = 13 => 'Company #13'

typeId
crm_status

String identifier for the type of entity.

For example, for a deal: 'SALE' = 'Sale'.

The list of available entity types can be obtained using crm.status.list with the filter { ENTITY_ID: "COMPANY_TYPE" }.

By default — the first available entity type

logo
file

Logo.

By default — null

bankingDetails
string

Banking details.

By default — null

industry
crm_status

String identifier for the type of industry.

For example, 'IT' = 'Information Technology'.

The list of available industry types can be obtained using the crm.status.list method with the filter { ENTITY_ID: "INDUSTRY"}.

By default — the first available industry type

employees
crm_status

String identifier for the number of employees.

The value is taken from the available list, for example, 'EMPLOYEES_1' = 'less than 50'.

The list of available employee counts can be obtained using the crm.status.list method with the filter { ENTITY_ID: "EMPLOYEES" }.

By default — the first available employee count type

currencyId
crm_currency

Identifier for the currency of the element.

By default — the default currency

revenue
double

Annual revenue.

By default — 0

opened
boolean

Is the element available to everyone? Possible values:

  • Y — yes
  • N — no

By default — Y. The default value can be changed in the CRM settings

comments
text

Comment.

By default — null

isMyCompany
boolean

Is the company my company?

By default — N

assignedById
user

Identifier of the person responsible for the element.

By default — the identifier of the user who calls the method

contactIds
crm_contact[]

List of identifiers of contacts linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

By default — null

leadId
crm_lead

Identifier of the lead based on which the element is created.

By default — null

originatorId
string

External source.

By default — null

originId
string

Identifier of the element in the external source.

By default — null

originVersion
string

Version of the original.

By default — null

observers
user[]

Array of user identifiers who will be observers of the element.

By default — null

utmSource
string

Advertising system. For example: Google-Adwords

By default — null

utmMedium
string

Type of traffic. Possible values:

  • CPC — ads
  • CPM — banners

By default — null

utmCampaign
string

Identifier of the advertising campaign.

By default — null

utmContent
string

Content of the campaign. For example, for contextual ads.

By default — null

utmTerm
string

Search term for the campaign. For example, keywords for contextual advertising.

By default — null

ufCrm...
crm_userfield

User-defined field. See the section Custom Fields in CRM

  • Values of multiple fields are passed as an array
  • To upload a file, the value of the user-defined field must be an array where the first element is the file name and the second is the base64 encoded content of the file.

parentId...
crm_entity

Parent field. An element of another type of CRM object that is linked to this element.

Each such field has the code parentId + {parentEntityTypeId}

CRM object identifier entityTypeId: 7

Name
type

Description

title
string

Name of the element.

By default, it is generated using the template {entityTypeName} #{id}, where

  • entityTypeName — name of the entity
  • id — identifier of the element

For example, for an estimate with id = 13 => 'Estimate #13'

assignedById
user

Identifier of the person responsible for the element.

By default — the identifier of the user who calls the method

opened
boolean

Is the element available to everyone? Possible values:

  • Y — yes
  • N — no

By default — Y. The default value can be changed in the CRM settings

content
text

Content.

By default — null

terms
text

Terms.

By default — null

comments
text

Comment.

By default — null

dealId
crm_deal

Identifier of the linked deal.

By default — null

leadId
crm_lead

Identifier of the lead based on which the element is created.

By default — null

storageTypeId
integer

Identifier of the storage type. Possible values:

  • 1 — file
  • 2 — WebDAV
  • 3 — disk

By default:

  1. If the disk module is enabled -> Disk
  2. If the webdav module is enabled -> WebDAV
  3. File
**storageElementIds**
         [`integer`][1] 
        
Array of files.
        

By default — null

webformId
integer

Identifier of the CRM Form.

By default — null

companyId
crm_company

Identifier of the company linked to the element.

The list of companies can be obtained using the crm.item.list method with entityTypeId = 4.

By default — null

contactId
crm_contact

Identifier of the contact linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3

By default — null

contactIds
crm_contact[]

List of identifiers of contacts linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

By default — null

locationId
location

Identifier of the location. Service field.

By default — null

currencyId
crm_currency

Identifier for the currency of the element.

By default — the default currency

isManualOpportunity
boolean

Calculation mode for the amount.

  • Y — manual
  • N — automatic

By default — N

opportunity
double

Amount.

By default — null

taxValue
double

Tax amount.

By default — null

stageId
crm_status

String identifier for the stage of the element.

For example, 'DRAFT' = 'New'.

The list of available stages can be obtained using crm.status.list with the filter { ENTITY_ID: "QUOTE_STATUS" }.

By default — the first available stage

begindate
date

Start date of the element.

By default — creation date of the element

closedate
date

End date of the element.

By default — creation date + 7 days

actualDate
date

Valid until.

By default — creation date + 7 days

mycompanyId
crm_company

Identifier of my company.

By default — identifier of the first available "my" company

utmSource
string

Advertising system. For example: Google-Adwords

By default — null

utmMedium
string

Type of traffic.

  • CPC — ads
  • CPM — banners

By default — null

utmCampaign
string

Identifier of the advertising campaign.

By default — null

utmContent
string

Content of the campaign. For example, for contextual ads.

By default — null

utmTerm
string

Search term for the campaign. For example, keywords for contextual advertising.

By default — null

ufCrm...
crm_userfield

User-defined field. See the section Custom Fields in CRM.

  • Values of multiple fields are passed as an array
  • To upload a file, the value of the user-defined field must be an array where the first element is the file name and the second is the base64 encoded content of the file.

parentId...
crm_entity

Parent field. An element of another type of CRM object that is linked to this element.

Each such field has the code parentId + {parentEntityTypeId}

CRM object identifier entityTypeId: 31

Name
type

Description

title
string

Name of the element.

By default, it is generated using the template {entityTypeName} #{id}, where

  • entityTypeName — name of the entity
  • id — identifier of the element

For example, for an invoice with id = 13 => 'Invoice #13'

xmlId
string

External code.

By default — null

assignedById
user

Identifier of the person responsible for the element.

By default — the identifier of the user who calls the method

opened
boolean

Is the element available to everyone? Possible values:

  • Y — yes
  • N — no

By default — Y. The default value can be changed in the CRM settings

webformId
integer

Identifier of the CRM Form.

By default — null

begindate
date

Start date of the element.

By default — creation date

closedate
date

End date of the element.

By default — creation date + 7 days

companyId
crm_company

Identifier of the company linked to the element.

The list of companies can be obtained using the crm.item.list method with entityTypeId = 4.

By default — null

contactId
crm_contact

Identifier of the contact linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

By default — null

contactIds
crm_contact[]

List of identifiers of contacts linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

By default — null

observers
user[]

Array of user identifiers who will be observers of the element.

By default — null

stageId
crm_status

String identifier for the stage of the element.

For example, 'DT31_13:N' = 'New'.

The list of available stages can be obtained using crm.status.list, with the filter: { ENTITY_ID: "SMART_INVOICE_STAGE_{categoryId}" }, where
categoryId — identifier of the default invoice funnel. It can be obtained using crm.category.list with entityTypeId = 31.

By default — the first available stage

sourceId
crm_status

String identifier for the source.

For example, 'CALL' = 'Call'.

The list of available sources can be obtained using crm.status.list with the filter { ENTITY_ID: "SOURCE" }.

By default — the first available source

sourceDescription
text

Additional information about the source.

By default — null

currencyId
crm_currency

Identifier for the currency of the element.

By default — the default currency

isManualOpportunity
boolean

Calculation mode for the amount. Possible values:

  • Y — manual
  • N — automatic

By default — N

opportunity
double

Amount.

By default — null

taxValue
double

Tax amount.

By default — null

mycompanyId
crm_company

Identifier of my company.

By default — identifier of the first available "my" company

comments
text

Comment.

By default — null

locationId
location

Identifier of the location. Service field.

By default — null

ufCrm...
crm_userfield

User-defined field. See the section Custom Fields in CRM.

  • Values of multiple fields are passed as an array
  • To upload a file, the value of the user-defined field must be an array where the first element is the file name and the second is the base64 encoded content of the file.

parentId...
crm_entity

Parent field. An element of another type of CRM object that is linked to this element.

Each such field has the code parentId + {parentEntityTypeId}

CRM object identifier entityTypeId: can be obtained using the crm.type.list method or created using the crm.type.add method.

Name
type

Description

title
string

Name of the element.

By default, it is generated using the template {entityTypeName} #{id}, where

  • entityTypeName — name of the SPA
  • id — identifier of the element

For example, for the SPA element "HR" with id = 13 => 'HR #13'

xmlId
string

External code.

By default — null

assignedById
user

Identifier of the person responsible for the element.

By default — the identifier of the user who calls the method

opened
boolean

Is the element available to everyone?

  • Y — yes
  • N — no

By default — Y. The default value can be changed in the CRM settings

webformId
integer

Identifier of the CRM Form.

By default — null

begindate
date

Start date of the element.

Available only if the isBeginCloseDatesEnabled setting is enabled for the corresponding SPA.

By default — creation date of the element

closedate
date

End date of the element.

Available only if the isBeginCloseDatesEnabled setting is enabled for the corresponding SPA.

By default — creation date + 7 days

companyId
crm_company

Identifier of the company linked to the element.

The list of companies can be obtained using the crm.item.list method with entityTypeId = 4.

Available only if the isClientEnabled setting is enabled for the corresponding SPA.

By default — null

contactId
crm_contact

Identifier of the contact linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

Available only if the isClientEnabled setting is enabled for the corresponding SPA.

By default — null

contactIds
crm_contact[]

List of identifiers of contacts linked to the element.

The list of contacts can be obtained using the crm.item.list method with entityTypeId = 3.

Available only if the isClientEnabled setting is enabled for the corresponding SPA.

By default — null

observers
user[]

Array of user identifiers who will be observers of the element.

Available only if the isObserversEnabled setting is enabled for the corresponding SPA.

By default — null

categoryId
crm_category

Identifier of the funnel of the SPA element.

The list of available funnels can be obtained using crm.category.list with the corresponding entityTypeId

stageId
crm_status

String identifier for the stage of the element.

For example, 'DT1220_30:NEW' = 'Start'.

The list of available stages can be obtained using crm.status.list with the filter { ENTITY_ID: "DYNAMIC_{entityTypeId}_STAGE_{categoryId}" }, where

  • entityTypeId — identifier of the SPA type
  • categoryId — identifier of the funnel (direction) of the SPA element

Learn more about funnels (directions).

Available only if the isStagesEnabled setting is enabled for the corresponding SPA.

By default — the first available stage relative to the funnel

sourceId
crm_status

String identifier for the source. (e.g., 'CALL' = 'Call').

The list of available sources can be obtained using crm.status.list with the filter { ENTITY_ID: "SOURCE" }.

Available only if the isSourceEnabled setting is enabled for the corresponding SPA.

By default — the first available source

sourceDescription
text

Additional information about the source.

Available only if the isSourceEnabled setting is enabled for the corresponding SPA.

By default — null

currencyId
crm_currency

Identifier for the currency of the element.

Available only if the isLinkWithProductsEnabled setting is enabled for the corresponding SPA.

By default — the default currency

isManualOpportunity
boolean

Calculation mode for the amount. Possible values:

  • Y — manual
  • N — automatic

Available only if the isLinkWithProductsEnabled setting is enabled for the corresponding SPA.

By default — N

opportunity
double

Amount.

Available only if the isLinkWithProductsEnabled setting is enabled for the corresponding SPA.

By default — null

taxValue
double

Tax amount.

Available only if the isLinkWithProductsEnabled setting is enabled for the corresponding SPA.

By default — null

mycompanyId
crm_company

Identifier of my company.

Available only if the isMycompanyEnabled setting is enabled for the corresponding SPA.

By default — Identifier of the first available "my" company

ufCrm...
crm_userfield

User-defined field. See the section Custom Fields in CRM.

  • Values of multiple fields are passed as an array
  • To upload a file, the value of the user-defined field must be an array where the first element is the file name and the second is the base64 encoded content of the file.

parentId...
crm_entity

Parent field. An element of another type of CRM object that is linked to this element.

Each such field has the code parentId + {parentEntityTypeId}

SPA Settings

For more information on managing SPA settings, you can read in Smart Processes: Overview of Methods

To upload a file, the value of the user field must be an array where the first element is the file name and the second is the base64 encoded content of the file.

Code Examples

How to Use Examples in Documentation

  1. How to import a deal

    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d '{"entityTypeId":2,"fields":{"title":"New Deal (specifically for the REST methods example)","typeId":"SERVICE","categoryId":9,"stageId":"C9:UC_KN8KFI","isReccurring":"Y","probability":50,"currencyId":"USD","isManualOpportunity":"Y","opportunity":999.99,"taxValue":99.9,"companyId":5,"contactId":4,"contactIds":[4,5],"quoteId":7,"begindate":"formatDate(monthAgo)","closedate":"formatDate(twelveDaysInAdvance)","opened":"N","comments":"commentsExample","assignedById":6,"sourceId":"WEB","sourceDescription":"There should be additional description about the source","leadId":102,"additionalInfo":"There should be additional information","observers":[2,3],"utmSource":"google","utmMedium":"CPC","ufCrm_1721244707107":1111.1,"parentId1220":2}}' \
            https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.import
            
    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d '{"entityTypeId":2,"fields":{"title":"New Deal (specifically for the REST methods example)","typeId":"SERVICE","categoryId":9,"stageId":"C9:UC_KN8KFI","isReccurring":"Y","probability":50,"currencyId":"USD","isManualOpportunity":"Y","opportunity":999.99,"taxValue":99.9,"companyId":5,"contactId":4,"contactIds":[4,5],"quoteId":7,"begindate":"formatDate(monthAgo)","closedate":"formatDate(twelveDaysInAdvance)","opened":"N","comments":"commentsExample","assignedById":6,"sourceId":"WEB","sourceDescription":"There should be additional description about the source","leadId":102,"additionalInfo":"There should be additional information","observers":[2,3],"utmSource":"google","utmMedium":"CPC","ufCrm_1721244707107":1111.1,"parentId1220":2},"auth":"**put_access_token_here**"}' \
            https://**put_your_bitrix24_address**/rest/crm.item.import
            
    const formatDate = (date) => {
                return date.toISOString().slice(0, 10);
            };
            
            const day = 60 * 60 * 24 * 1000;
            
            const now = new Date();
            const twelveDaysInAdvance = new Date(now.getTime() + 12 * day);
            const monthAgo = new Date(now.getTime() - 30 * day);
            
            const commentsExample = `
            Example comment inside the deal
            
            [B]Bold text[/B]
            [I]Italic[/I]
            [U]Underlined[/U]
            [S]Strikethrough[/S]
            [B][I][U][S]Mix[/S][/U][/I][/B]
            
            [LIST]
            [*]List item #1
            [*]List item #2
            [*]List item #3
            [/LIST]
            
            [LIST=1]
            [*]Numbered list item #1
            [*]Numbered list item #2
            [*]Numbered list item #3
            [/LIST]
            `;
            
            BX24.callMethod(
                'crm.item.import', 
                {
                    entityTypeId: 2,
                    fields: 
                    {
                        title: "New Deal (specifically for the REST methods example)",
                        typeId: "SERVICE",
                        categoryId: 9,
                        stageId: "C9:UC_KN8KFI",
                        isReccurring: "Y",
                        probability: 50,
                        currencyId: "USD",
                        isManualOpportunity: "Y",
                        opportunity: 999.99,
                        taxValue: 99.9,
                        companyId: 5,
                        contactId: 4,
                        contactIds: [4, 5],
                        quoteId: 7,
                        begindate: formatDate(monthAgo),
                        closedate: formatDate(twelveDaysInAdvance),
                        opened: "N",
                        comments: commentsExample,
                        assignedById: 6,
                        sourceId: "WEB",
                        sourceDescription: "There should be additional description about the source",
                        leadId: 102,
                        additionalInfo: "There should be additional information",
                        observers: [2, 3],
                        utmSource: "google",
                        utmMedium: "CPC",
                        ufCrm_1721244707107: 1111.1,
                        parentId1220: 2,
                    },
                },
                (result) => 
                {
                    result.error() 
                        ? console.error(result.error()) 
                        : console.info(result.data())
                    ;
                }
            );
            
    require_once('crest.php');
            
            $result = CRest::call(
                'crm.item.import',
                [
                    'entityTypeId' => 2,
                    'fields' => [
                        'title' => "New Deal (specifically for the REST methods example)",
                        'typeId' => "SERVICE",
                        'categoryId' => 9,
                        'stageId' => "C9:UC_KN8KFI",
                        'isReccurring' => "Y",
                        'probability' => 50,
                        'currencyId' => "USD",
                        'isManualOpportunity' => "Y",
                        'opportunity' => 999.99,
                        'taxValue' => 99.9,
                        'companyId' => 5,
                        'contactId' => 4,
                        'contactIds' => [4, 5],
                        'quoteId' => 7,
                        'begindate' => formatDate(monthAgo),
                        'closedate' => formatDate(twelveDaysInAdvance),
                        'opened' => "N",
                        'comments' => $commentsExample,
                        'assignedById' => 6,
                        'sourceId' => "WEB",
                        'sourceDescription' => "There should be additional description about the source",
                        'leadId' => 102,
                        'additionalInfo' => "There should be additional information",
                        'observers' => [2, 3],
                        'utmSource' => "google",
                        'utmMedium' => "CPC",
                        'ufCrm_1721244707107' => 1111.1,
                        'parentId1220' => 2,
                    ],
                ]
            );
            
            echo '<PRE>';
            print_r($result);
            echo '</PRE>';
            
  2. How to create an SPA element with a set of user fields

    User fields involved in the example
    {
                "ufCrm44_1721812760630": {
                    "type": "string",
                    "isRequired": false,
                    "isReadOnly": false,
                    "isImmutable": false,
                    "isMultiple": false,
                    "isDynamic": true,
                    "title": "Custom field (string)",
                    "listLabel": "Custom field (string)",
                    "formLabel": "Custom field (string)",
                    "filterLabel": "Custom field (string)",
                    "settings": {
                        "SIZE": 20,
                        "ROWS": 1,
                        "REGEXP": "",
                        "MIN_LENGTH": 0,
                        "MAX_LENGTH": 0,
                        "DEFAULT_VALUE": ""
                    },
                    "upperName": "UF_CRM_44_1721812760630"
                },
                "ufCrm44_1721812814433": {
                    "type": "enumeration",
                    "isRequired": false,
                    "isReadOnly": false,
                    "isImmutable": false,
                    "isMultiple": false,
                    "isDynamic": true,
                    "items": [
                        {
                            "ID": "79",
                            "VALUE": "List item #1"
                        },
                        {
                            "ID": "80",
                            "VALUE": "List item #2"
                        },
                        {
                            "ID": "81",
                            "VALUE": "List item #3"
                        },
                        {
                            "ID": "82",
                            "VALUE": "List item #4"
                        }
                    ],
                    "title": "Custom field (list)",
                    "listLabel": "Custom field (list)",
                    "formLabel": "Custom field (list)",
                    "filterLabel": "Custom field (list)",
                    "settings": {
                        "DISPLAY": "LIST",
                        "LIST_HEIGHT": 1,
                        "CAPTION_NO_VALUE": "",
                        "SHOW_NO_VALUE": "Y"
                    },
                    "upperName": "UF_CRM_44_1721812814433"
                },
                "ufCrm44_1721812853419": {
                    "type": "date",
                    "isRequired": false,
                    "isReadOnly": false,
                    "isImmutable": false,
                    "isMultiple": false,
                    "isDynamic": true,
                    "title": "Custom field (date)",
                    "listLabel": "Custom field (date)",
                    "formLabel": "Custom field (date)",
                    "filterLabel": "Custom field (date)",
                    "settings": {
                        "DEFAULT_VALUE": {
                            "TYPE": "NONE",
                            "VALUE": ""
                        }
                    },
                    "upperName": "UF_CRM_44_1721812853419"
                },
                "ufCrm44_1721812885588": {
                    "type": "url",
                    "isRequired": false,
                    "isReadOnly": false,
                    "isImmutable": false,
                    "isMultiple": true,
                    "isDynamic": true,
                    "title": "Multiple custom field (link)",
                    "listLabel": "Multiple custom field (link)",
                    "formLabel": "Multiple custom field (link)",
                    "filterLabel": "Multiple custom field (link)",
                    "settings": {
                        "POPUP": "Y",
                        "SIZE": 20,
                        "MIN_LENGTH": 0,
                        "MAX_LENGTH": 0,
                        "DEFAULT_VALUE": "",
                        "ROWS": 1
                    },
                    "upperName": "UF_CRM_44_1721812885588"
                },
                "ufCrm44_1721812898903": {
                    "type": "file",
                    "isRequired": false,
                    "isReadOnly": false,
                    "isImmutable": false,
                    "isMultiple": false,
                    "isDynamic": true,
                    "title": "Custom field (file)",
                    "listLabel": "Custom field (file)",
                    "formLabel": "Custom field (file)",
                    "filterLabel": "Custom field (file)",
                    "settings": {
                        "SIZE": 20,
                        "LIST_WIDTH": 0,
                        "LIST_HEIGHT": 0,
                        "MAX_SHOW_SIZE": 0,
                        "MAX_ALLOWED_SIZE": 0,
                        "EXTENSIONS": [],
                        "TARGET_BLANK": "Y"
                    },
                    "upperName": "UF_CRM_44_1721812898903"
                },
                "ufCrm44_1721812915476": {
                    "type": "money",
                    "isRequired": false,
                    "isReadOnly": false,
                    "isImmutable": false,
                    "isMultiple": false,
                    "isDynamic": true,
                    "title": "Custom field (money)",
                    "listLabel": "Custom field (money)",
                    "formLabel": "Custom field (money)",
                    "filterLabel": "Custom field (money)",
                    "settings": {
                        "DEFAULT_VALUE": ""
                    },
                    "upperName": "UF_CRM_44_1721812915476"
                },
                "ufCrm44_1721812935209": {
                    "type": "boolean",
                    "isRequired": false,
                    "isReadOnly": false,
                    "isImmutable": false,
                    "isMultiple": false,
                    "isDynamic": true,
                    "title": "Custom field (Yes/No)",
                    "listLabel": "Custom field (Yes/No)",
                    "formLabel": "Custom field (Yes/No)",
                    "filterLabel": "Custom field (Yes/No)",
                    "settings": {
                        "DEFAULT_VALUE": 0,
                        "DISPLAY": "CHECKBOX",
                        "LABEL": [
                            "",
                            ""
                        ],
                        "LABEL_CHECKBOX": {
                            "en": "Custom field (Yes/No)",
                            "ru": "Custom field (Yes/No)",
                            "th": "Custom field (Yes/No)",
                            "la": "Custom field (Yes/No)",
                            "tc": "Custom field (Yes/No)",
                            "sc": "Custom field (Yes/No)",
                            "br": "Custom field (Yes/No)",
                            "ar": "Custom field (Yes/No)",
                            "fr": "Custom field (Yes/No)",
                            "vn": "Custom field (Yes/No)",
                            "pl": "Custom field (Yes/No)",
                            "tr": "Custom field (Yes/No)",
                            "ja": "Custom field (Yes/No)",
                            "it": "Custom field (Yes/No)",
                            "ms": "Custom field (Yes/No)",
                            "id": "Custom field (Yes/No)"
                        }
                    },
                    "upperName": "UF_CRM_44_1721812935209"
                },
                "ufCrm44_1721812948498": {
                    "type": "double",
                    "isRequired": false,
                    "isReadOnly": false,
                    "isImmutable": false,
                    "isMultiple": false,
                    "isDynamic": true,
                    "title": "Custom field (number)",
                    "listLabel": "Custom field (number)",
                    "formLabel": "Custom field (number)",
                    "filterLabel": "Custom field (number)",
                    "settings": {
                        "PRECISION": 2,
                        "SIZE": 20,
                        "MIN_VALUE": 0,
                        "MAX_VALUE": 0,
                        "DEFAULT_VALUE": null
                    },
                    "upperName": "UF_CRM_44_1721812948498"
                }
            }
            
    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d '{
                "entityTypeId": 1302,
                "fields": {
                    "ufCrm44_1721812760630": "String for user field of type String",
                    "ufCrm44_1721812814433": 81,
                    "ufCrm44_1721812853419": "'"$(date '+%Y-%m-%d')"'",
                    "ufCrm44_1721812885588": [
                        "example.com",
                        "second-example.com"
                    ],
                    "ufCrm44_1721812898903": [
                        "green_pixel.png",
                        "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg=="
                    ],
                    "ufCrm44_1721812915476": "300|USD",
                    "ufCrm44_1721812935209": "Y",
                    "ufCrm44_1721812948498": 9999.9
                }
            }' \
            https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.import
            
    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d '{
                "entityTypeId": 1302,
                "fields": {
                    "ufCrm44_1721812760630": "String for user field of type String",
                    "ufCrm44_1721812814433": 81,
                    "ufCrm44_1721812853419": "'"$(date '+%Y-%m-%d')"'",
                    "ufCrm44_1721812885588": [
                        "example.com",
                        "second-example.com"
                    ],
                    "ufCrm44_1721812898903": [
                        "green_pixel.png",
                        "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg=="
                    ],
                    "ufCrm44_1721812915476": "300|USD",
                    "ufCrm44_1721812935209": "Y",
                    "ufCrm44_1721812948498": 9999.9
                },
                "auth": "**put_access_token_here**"
            }' \
            https://**put_your_bitrix24_address**/rest/crm.item.import
            
    const greenPixelInBase64 = "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==";
            
            BX24.callMethod(
                'crm.item.import', 
                {
                    entityTypeId: 1302,
                    fields: {
                        ufCrm44_1721812760630: "String for user field of type String",
                        ufCrm44_1721812814433: 81,
                        ufCrm44_1721812853419: (new Date()).toISOString().slice(0, 10),
                        ufCrm44_1721812885588: [
                            "example.com",
                            "second-example.com",
                        ],
                        ufCrm44_1721812898903: [
                            "green_pixel.png",
                            greenPixelInBase64,
                        ],
                        ufCrm44_1721812915476: "300|USD",
                        ufCrm44_1721812935209: "Y",
                        ufCrm44_1721812948498: 9999.9,
                    },
                },
                (result) => 
                {
                    result.error() 
                        ? console.error(result.error()) 
                        : console.info(result.data())
                    ;
                }
            );
            
    require_once('crest.php');
            
            $result = CRest::call(
                'crm.item.import',
                [
                    'entityTypeId' => 1302,
                    'fields' => [
                        'ufCrm44_1721812760630' => "String for user field of type String",
                        'ufCrm44_1721812814433' => 81,
                        'ufCrm44_1721812853419' => date('Y-m-d'),
                        'ufCrm44_1721812885588' => [
                            "example.com",
                            "second-example.com",
                        ],
                        'ufCrm44_1721812898903' => [
                            "green_pixel.png",
                            "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==",
                        ],
                        'ufCrm44_1721812915476' => "300|USD",
                        'ufCrm44_1721812935209' => "Y",
                        'ufCrm44_1721812948498' => 9999.9,
                    ],
                ]
            );
            
            echo '<PRE>';
            print_r($result);
            echo '</PRE>';
            

Response Handling

The method will return an item array with the identifier of the created element in case of success, or an error message.

HTTP status: 200

{
            "result": {
                "item": {
                    "id": 4
                }
            },
            "time": {
                "start": 1722940215.145257,
                "finish": 1722940217.94124,
                "duration": 2.795983076095581,
                "processing": 2.4315829277038574,
                "date_start": "2024-08-06T10:30:15+00:00",
                "date_finish": "2024-08-06T10:30:17+00:00",
                "operating": 2.4314892292022705
            }
        }
        

Returned Data

Name
type

Description

result
object

Root element of the response.

Contains a single key — item

item
object

Information about the created element.

Contains a single key — id

id
int

Identifier of the created element

time
time

Information about the request execution time

By default, user field names are passed and returned in camelCase, for example ufCrm2_1639669411830.
When passing the parameter useOriginalUfNames with the value Y, user fields will be returned with original names, for example UF_CRM_2_1639669411830.

Error Handling

HTTP status: 401, 400, 403

{
            "error": "NOT_FOUND",
            "error_description": "SPA not found"
        }
        

Name
type

Description

error
string

String error code. It may consist of digits, Latin letters, and underscores

error_description
error_description

Textual description of the error. The description is not intended to be shown to the end user in its raw form

Possible Error Codes

Status

Code

Description

Value

400

NOT_FOUND

SPA not found

Occurs when an invalid entityTypeId is passed

400

ACCESS_DENIED

Access denied

The user does not have permission to add elements of type entityTypeId

400

CRM_FIELD_ERROR_VALUE_NOT_VALID

Invalid value for field "field"

An incorrect value for the field field was passed.

For system fields of type createdTime, if the request is not made by an administrator

400

100

Expected iterable value for multiple field, but got type instead

One of the multi-fields received a value of type type, while an iterable type was expected. This can also occur with an incorrect request (invalid JSON or request headers)

400

CREATE_DYNAMIC_ITEM_RESTRICTED

You cannot create a new element due to your plan restrictions

Plan restrictions do not allow creating SPA elements

401

INVALID_CREDENTIALS

Invalid authorization data for the request

Incorrect user ID and/or code in the request path

403

allowed_only_intranet_user

Action allowed only for intranet users

The user is not an intranet user

Statuses and System Error Codes

HTTP Status: 20x, 40x, 50x

The errors described below may occur when calling any method.

Status

Code
Error Message

Description

500

INTERNAL_SERVER_ERROR
Internal server error

An internal server error has occurred, please contact the server administrator or Bitrix24 technical support

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

An internal server error has occurred, please contact the server administrator or Bitrix24 technical support

503

QUERY_LIMIT_EXCEEDED
Too many requests

The request intensity limit has been exceeded

405

ERROR_BATCH_METHOD_NOT_ALLOWED
Method is not allowed for batch usage

The current method is not allowed to be called using batch

400

ERROR_BATCH_LENGTH_EXCEEDED
Max batch length exceeded

The maximum length of parameters passed to the batch method has been exceeded

401

NO_AUTH_FOUND
Wrong authorization data

Invalid access token or webhook code

400

INVALID_REQUEST
Https required

The methods must be called using the HTTPS protocol

503

OVERLOAD_LIMIT
REST API is blocked due to overload

The REST API is blocked due to overload. This is a manual individual block, to remove it you need to contact Bitrix24 technical support

403

ACCESS_DENIED
REST API is available only on commercial plans

The REST API is available only on commercial plans

403

INVALID_CREDENTIALS
Invalid request credentials

The user whose access token or webhook was used to call the method lacks permissions

404

ERROR_MANIFEST_IS_NOT_AVAILABLE
Manifest is not available

The manifest is not available

403

insufficient_scope
The request requires higher privileges than provided by the webhook token

The request requires higher privileges than those provided by the webhook token

401

expired_token
The access token provided has expired

The provided access token has expired

403

user_access_error
The user does not have access to the application

The user does not have access to the application. This means that the application is installed, but the account administrator has allowed access to this application only for specific users

500

PORTAL_DELETED
Portal was deleted

The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the option "Temporary closure of the public part of the site". Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site

Continue Learning