Блог Горошко Андрея Bitrix24,PHP Создать новый лид crm.lead.add

Создать новый лид crm.lead.add

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Создать новый лид crm.lead.add». Вы узнаете экспертные методики работы с crm.lead.add и научитесь избегать типичных ошибок начинающих разработчиков.

Создать новый лид crm.lead.add

> Scope: crm
>
> Кто может выполнять метод: любой пользователь с правом на создание лидов

Метод crm.lead.add создает новый лид.

Параметры метода

Название
тип
Описание
fields
object
Объект формата:

{
    field_1: value_1,
    field_2: value_2,
    ...,
    field_n: value_n,
}

где:
— field_n — название поля
— value_n — значение поля

Список доступных полей описан ниже

params
object
Необязательный массив опций ("optionName"=>"value"[, ...]). Перечень возможных полей описан ниже

Параметр fields {#fields}

Название
тип
Описание
ADDRESS
string
Адрес
ADDRESS_2
string
Вторая страница адреса. В некоторых странах принято разбивать адрес на 2 части
ADDRESS_CITY
string
Город
ADDRESS_COUNTRY
string
Страна
ADDRESS_COUNTRY_CODE
string
Код страны
ADDRESS_POSTAL_CODE
string
Почтовый индекс
ADDRESS_PROVINCE
string
Область
ADDRESS_REGION
string
Район
ASSIGNED_BY_ID
user
Ответственный
BIRTHDATE
date
Дата рождения
COMMENTS
string
Комментарии
COMPANY_ID
crm_company
Привязка лида к компании
COMPANY_TITLE
string
Название компании, указанное в соответствующем поле лида. Для привязки существующей компании стоит передавать её id в поле COMPANY_ID
CONTACT_ID
crm_contact
Привязка лида к контакту
CONTACT_IDS
crm_contact
Список привязанных к лиду контактов.

Контакты можно добавлять или удалять группой методов crm.lead.contact.

CURRENCY_ID
crm_currency
Идентификатор валюты
EMAIL
crm_multifield
Адрес электронной почты. Множественное
HONORIFIC
crm_status
Вид обращения
IM
crm_multifield
Мессенджер. Множественное
LINK
crm_multifield
ID пользователя, привязанного через открытую линию. Множественное
LAST_NAME
string
Фамилия
NAME
string
Имя
SECOND_NAME
string
Отчество
OPENED
char
Признак доступности лида для всех. Допустимые значения Y или N.
OPPORTUNITY
double
Сумма
IS_MANUAL_OPPORTUNITY
char
Признак ручного режима расчёта суммы. Допустимые значения Y или N
ORIGINATOR_ID
string
Идентификатор источника данных.

Используется только для привязки к внешнему источнику

ORIGIN_ID
string
Идентификатор элемента в источнике данных. Используется только для привязки к внешнему источнику
PHONE
crm_multifield
Телефон. Множественное
POST
string
Должность
SOURCE_DESCRIPTION
string
Описание источника
SOURCE_ID
crm_status
Идентификатор источника.
Значения по умолчанию:

#

Дополнительно о стадии
STATUS_IDНазвание
NEWНе обработан
IN_PROCESSВ работе
PROCESSEDОбработан
JUNKНекачественный лид
CONVERTEDКачественный лид
Название лида
Обозначение рекламной кампании
Содержание кампании. Например, для контекстных объявлений
Тип трафика. CPC (объявления), CPM (баннеры)
Рекламная система. Yandex-Direct, Google-Adwords и другие
Условие поиска кампании. Например, ключевые слова контекстной рекламы
Сайт. Множественное
UF_…

В зависимости от настроек портала у лидов может быть набор пользовательских полей определенных типов.

Информация
Так же, чтобы узнать требуемый формат полей, можно выполнить метод crm.lead.fields и посмотреть формат пришедших значений этих полей.

Информация
При добавлении лида нельзя явно установить признак повторного лида (поле IS_RETURN_CUSTOMER), однако, это поле автоматически принимает значение Y, если при добавлении лида указать значение для COMPANY_ID или CONTACT_ID

Параметр params {#params}

Название
тип
Описание
REGISTER_SONET_EVENT
boolean
Флаг Y/N — произвести регистрацию события добавления лида. Дополнительно будет отправлено уведомление ответственному за лид

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"TITLE":"ИП Титов","NAME":"Глеб","SECOND_NAME":"Егорович","LAST_NAME":"Титов","STATUS_ID":"NEW","OPENED":"Y","ASSIGNED_BY_ID":1,"CURRENCY_ID":"USD","OPPORTUNITY":12500,"PHONE":[{"VALUE":"555888","VALUE_TYPE":"WORK"}],"WEB":[{"VALUE":"www.mysite.com","VALUE_TYPE":"WORK"}]},"params":{"REGISTER_SONET_EVENT":"Y"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.lead.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"TITLE":"ИП Титов","NAME":"Глеб","SECOND_NAME":"Егорович","LAST_NAME":"Титов","STATUS_ID":"NEW","OPENED":"Y","ASSIGNED_BY_ID":1,"CURRENCY_ID":"USD","OPPORTUNITY":12500,"PHONE":[{"VALUE":"555888","VALUE_TYPE":"WORK"}],"WEB":[{"VALUE":"www.mysite.com","VALUE_TYPE":"WORK"}]},"params":{"REGISTER_SONET_EVENT":"Y"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/crm.lead.add
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'crm.lead.add',
    		{
    			fields:
    			{
    				TITLE: 'ИП Титов',
    				NAME: 'Глеб',
    				SECOND_NAME: 'Егорович',
    				LAST_NAME: 'Титов',
    				STATUS_ID: 'NEW',
    				OPENED: 'Y',
    				ASSIGNED_BY_ID: 1,
    				CURRENCY_ID: 'USD',
    				OPPORTUNITY: 12500,
    				PHONE: [
    					{ 
    						VALUE: '555888',
    						VALUE_TYPE: 'WORK',
    					},
    				],
    				WEB: [
    					{
    						VALUE: 'www.mysite.com',
    						VALUE_TYPE: 'WORK',
    					}
    				],
    			},
    			params: {
    				REGISTER_SONET_EVENT: 'Y',
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(`Создан лид с ID ${result}`);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'crm.lead.add',
                [
                    'fields' => [
                        'TITLE'          => 'ИП Титов',
                        'NAME'           => 'Глеб',
                        'SECOND_NAME'    => 'Егорович',
                        'LAST_NAME'      => 'Титов',
                        'STATUS_ID'      => 'NEW',
                        'OPENED'         => 'Y',
                        'ASSIGNED_BY_ID' => 1,
                        'CURRENCY_ID'    => 'USD',
                        'OPPORTUNITY'    => 12500,
                        'PHONE'          => [
                            [
                                'VALUE'      => '555888',
                                'VALUE_TYPE' => 'WORK',
                            ],
                        ],
                        'WEB'            => [
                            [
                                'VALUE'      => 'www.mysite.com',
                                'VALUE_TYPE' => 'WORK',
                            ],
                        ],
                    ],
                    'params' => [
                        'REGISTER_SONET_EVENT' => 'Y',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Создан лид с ID ' . $result;
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Ошибка при создании лида: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "crm.lead.add",
        {
            fields:
            {
                TITLE: "ИП Титов",
                NAME: "Глеб",
                SECOND_NAME: "Егорович",
                LAST_NAME: "Титов",
                STATUS_ID: "NEW",
                OPENED: "Y",
                ASSIGNED_BY_ID: 1,
                CURRENCY_ID: "USD",
                OPPORTUNITY: 12500,
                PHONE: [
                    { 
                        VALUE: "555888",
                        VALUE_TYPE: "WORK",
                    },
                ] ,
                WEB: [
                        {
                        VALUE: "www.mysite.com",
                        VALUE_TYPE: "WORK",
                        }
                ],
            },
            params: {
                REGISTER_SONET_EVENT: "Y",
            }
        },
        (result) => {
            if (result.error())
            {
                console.error(result.error());
                
                return;
            }
            
            console.info(`Создан лид с ID ${result.data()}`);
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'crm.lead.add',
        [
            'fields' => [
                'TITLE' => 'ИП Титов',
                'NAME' => 'Глеб',
                'SECOND_NAME' => 'Егорович',
                'LAST_NAME' => 'Титов',
                'STATUS_ID' => 'NEW',
                'OPENED' => 'Y',
                'ASSIGNED_BY_ID' => 1,
                'CURRENCY_ID' => 'USD',
                'OPPORTUNITY' => 12500,
                'PHONE' => [
                    [
                        'VALUE' => '555888',
                        'VALUE_TYPE' => 'WORK',
                    ],
                ],
                'WEB' => [
                    [
                        'VALUE' => 'www.mysite.com',
                        'VALUE_TYPE' => 'WORK',
                    ],
                ],
            ],
            'params' => [
                'REGISTER_SONET_EVENT' => 'Y',
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
    "result": 3465,
    "time": {
        "start": 1705764932.998683,
        "finish": 1705764937.173995,
        "duration": 4.1753120422363281,
        "processing": 3.3076529502868652,
        "date_start": "2024-01-20T18:35:32+03:00",
        "date_finish": "2024-01-20T18:35:37+03:00",
        "operating_reset_at": 1705765533,
        "operating": 3.3076241016387939
    }
}

Возвращаемые данные

Название
тип
Описание
result
integer
Корневой элемент ответа, содержит идентификатор созданного лида
time
time
Информация о времени выполнения запроса

Обработка ошибок

> HTTP-статус: 40x, 50x Error

{
    "error": "",
    "error_description": "Access denied."
}

Возможные ошибки

КодТекст ошибкиОписание
Пустое значениеAccess denied.У пользователя нет прав на добавление лида
  • [](./crm-lead-delete)
  • [](./crm-lead-fields)
  • [](../../../tutorials/crm/how-to-add-crm-objects/how-to-add-lead)
  • [](../../../tutorials/crm/how-to-add-crm-objects/how-to-add-lead-with-files)
  • [](../../../tutorials/crm/how-to-add-crm-objects/how-to-add-repeat-lead)
  • [](../../../tutorials/crm/how-to-add-crm-objects/how-to-add-objects-with-crm-mode)

💡 Экспертное мнение и рекомендации

Ключевые выводы по теме «Создать новый лид crm.lead.add»:

Использование современных стандартов D7 при работе с crm.lead.add позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Работа с кнопками: Подробное руководствоРабота с кнопками: Подробное руководство

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Работа с кнопками: Подробное руководство», разберем архитектурные особенности

Получить сделку по Id crm.deal.getПолучить сделку по Id crm.deal.get

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Получить сделку по Id crm.deal.get», разберем архитектурные особенности

Получить список шаблонов landing.template.getlistПолучить список шаблонов landing.template.getlist

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить список шаблонов landing.template.getlist», проанализируем лучшие практики и