Обновление Лида
Обновление данных лида в Liner.
Адрес и метод
POST /v2/lead/update/{leadId}/
leadIdint
Идентификатор лида в Liner. Значение> 0.
Параметры (Body)
Передавайте только те поля, которые нужно обновить.
namestringнеобязательный
Имя клиента.
phonestringнеобязательный
Телефон клиента в формате E.164 (допускается передача номеров с + и без него), например79001234567.
sourceCommentstringнеобязательный
Комментарий/лог анкеты (строка; при необходимости — JSON-строка).
externalIdBitrix24stringнеобязательный
Идентификатор лида в Битрикс24 системе.
externalIdAmostringнеобязательный
Идентификатор лида в АмоЦРМ системе.
externalIdMacrostringнеобязательный
Идентификатор лида в МакроЦРМ системе.
externalIdDomoplanerstringнеобязательный
Идентификатор лида в Домопланере системе.
statusIdintнеобязательный
Статус лида в Liner.
priorityintнеобязательный
Приоритет лида в очереди дозвона.
utcOffsetintнеобязательный
Часовой пояс клиента — смещение от UTC, например3,-5.
telegramUserNamestringнеобязательный
Имя пользователя в Telegram.
telegramPhonestringнеобязательный
Телефон пользователя в Telegram (рекомендуется E.164).
vkIdintнеобязательный
Идентификатор пользователя в VK. Значение> 0.
instagramLoginstringнеобязательный
Логин пользователя в Instagram.
customValuesobjectнеобязательный
Словарь значений пользовательских полей: ключ — ID пользовательского поля, значение — сохраняемое значение этого поля.
Пример запроса
curl -X POST "https://YOUR_LINER_API_HOST/v2/lead/update/{{leadId}}" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_TOKEN" \
-d '{
"name": "{{name}}",
"phone": "{{phone}}",
"sourceComment": "{{sourceComment}}",
"externalIdBitrix24": "{{externalIdBitrix24}}",
"externalIdAmo": "{{externalIdAmo}}",
"externalIdMacro": "{{externalIdMacro}}",
"externalIdDomoplaner": "{{externalIdDomoplaner}}",
"statusId": {{statusId}},
"priority": {{callPriority}},
"utcOffset": {{utcOffset}},
"telegramUserName": "{{telegramUserName}}",
"telegramPhone": "{{telegramPhone}}",
"vkId": {{vkId}},
"instagramLogin": "{{instagramLogin}}",
"customValues": {
"{{customFieldId}}": "{{customFieldValue}}"
}
}'
<?php
$host = 'https://YOUR_LINER_API_HOST';
$token = 'YOUR_API_TOKEN';
$leadId = (int)$leadId;
// Важно: заполняйте только те поля, которые хотите обновить
$payload = [
'name' => $name,
'phone' => $phone,
'sourceComment' => '',
'externalIdBitrix24' => $externalIdBitrix24,
'externalIdAmo' => $externalIdAmo,
'externalIdMacro' => $externalIdMacro,
'externalIdDomoplaner' => $externalIdDomoplaner,
'statusId' => $leadStatus,
'priority' => isset($callPriority) ? (int)$callPriority : null,
'utcOffset' => isset($utcOffset) ? (int)$utcOffset : null,
'telegramUserName' => $telegramUserName,
'telegramPhone' => $telegramPhone,
'vkId' => isset($vkId) ? (int)$vkId : null,
'instagramLogin' => $instagramLogin,
'customValues' => [
$customFieldId => $customFieldValue,
],
];
// Удаляем null-поля, чтобы не затирать значения случайно
$payload = array_filter($payload, fn($v) => $v !== null);
$ch = curl_init($host . '/v2/lead/update/' . $leadId);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-Api-Key: ' . $token,
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_TIMEOUT => 15,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) {
throw new RuntimeException('cURL error: ' . curl_error($ch));
}
curl_close($ch);
echo "HTTP {$httpCode}\n";
echo $response;
const host = "https://YOUR_LINER_API_HOST";
const token = "YOUR_API_TOKEN";
const leadId = Number(leadId);
// Важно: добавляйте только те поля, которые хотите обновить
const payload = {
name: name,
phone: phone,
sourceComment: "",
externalIdBitrix24: externalIdBitrix24,
externalIdAmo: externalIdAmo,
externalIdMacro: externalIdMacro,
externalIdDomoplaner: externalIdDomoplaner,
statusId: leadStatus,
priority: callPriority != null ? Number(callPriority) : undefined,
utcOffset: utcOffset != null ? Number(utcOffset) : undefined,
telegramUserName: telegramUserName,
telegramPhone: telegramPhone,
vkId: vkId != null ? Number(vkId) : undefined,
instagramLogin: instagramLogin,
customValues: {
[customFieldId]: customFieldValue
}
};
// Удаляем undefined-поля
Object.keys(payload).forEach((k) => payload[k] === undefined && delete payload[k]);
const res = await fetch(`${host}/v2/lead/update/${leadId}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": token
},
body: JSON.stringify(payload)
});
const data = await res.json();
console.log("HTTP", res.status, data);