Обновление существующего лида

Этот PHP-код позволяет обновить поля существующего лида в Битрикс24 по его ID.

use Bitrix\Crm\LeadTable;
use Bitrix\Main\Result;

$leadId = $this->GetRootActivity()->GetVariable("LeadID"); // ID лида для обновления
$fieldsToUpdate = $this->GetRootActivity()->GetVariable("FieldsToUpdate"); // Массив полей для обновления (JSON-строка)

$updateLeadStatus = "ERROR";
$updatedLeadId = 0;
$updateLeadErrorMessage = "";

if (empty($leadId)) {
    $updateLeadErrorMessage = "КРИТИЧНО: Не указан ID лида для обновления.";
    $this->WriteToTrackingService($updateLeadErrorMessage);
} elseif (empty($fieldsToUpdate)) {
    $updateLeadErrorMessage = "КРИТИЧНО: Не указаны поля для обновления лида.";
    $this->WriteToTrackingService($updateLeadErrorMessage);
} else {
    $updateData = json_decode($fieldsToUpdate, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
        $updateLeadErrorMessage = "КРИТИЧНО: Ошибка декодирования JSON для FieldsToUpdate: " . json_last_error_msg();
        $this->WriteToTrackingService($updateLeadErrorMessage);
    } else {
        /** @var Result $result */
        $result = LeadTable::update($leadId, $updateData);

        if ($result->isSuccess()) {
            $updateLeadStatus = "SUCCESS";
            $updatedLeadId = $leadId;
        } else {
            $updateLeadStatus = "ERROR";
            $updateLeadErrorMessage = implode(", ", $result->getErrorMessages());
            $this->WriteToTrackingService("ОШИБКА: Обновление лида ID " . $leadId . " - " . $updateLeadErrorMessage);
        }
    }
}

$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("UpdateLeadStatus", $updateLeadStatus);
$rootActivity->SetVariable("UpdatedLeadID", $updatedLeadId);
$rootActivity->SetVariable("UpdateLeadErrorMessage", $updateLeadErrorMessage);

Параметры

  • LeadID (int): ID лида, который необходимо обновить.
  • FieldsToUpdate (string): JSON-строка, содержащая массив полей лида для обновления. Например: {"TITLE": "Новое название лида", "STATUS_ID": "NEW"}.

Возвращаемые значения

  • UpdateLeadStatus (string): Статус операции обновления (SUCCESS или ERROR).
  • UpdatedLeadID (int): ID обновленного лида (совпадает с LeadID в случае успеха).
  • UpdateLeadErrorMessage (string): Сообщение об ошибке, если операция обновления не удалась.

Рекомендации по использованию

  • Используйте этот скрипт для программного изменения данных лидов.
  • Убедитесь, что FieldsToUpdate содержит только те поля, которые вы хотите изменить.
  • Для получения списка доступных полей лида и их значений обратитесь к документации Битрикс24 API.