Перейти к содержанию

Обновление Лида

Обновление данных лида в Liner.


Адрес и метод

POST /v2/lead/update/{leadId}/

leadId int
Идентификатор лида в Liner. Значение > 0.


Параметры (Body)

Передавайте только те поля, которые нужно обновить.

name string необязательный
Имя клиента.

phone string необязательный
Телефон клиента в формате E.164 (допускается передача номеров с + и без него), например 79001234567.

sourceComment string необязательный
Комментарий/лог анкеты (строка; при необходимости — JSON-строка).

externalIdBitrix24 string необязательный
Идентификатор лида в Битрикс24 системе.

externalIdAmo string необязательный
Идентификатор лида в АмоЦРМ системе.

externalIdMacro string необязательный
Идентификатор лида в МакроЦРМ системе.

externalIdDomoplaner string необязательный
Идентификатор лида в Домопланере системе.

statusId int необязательный
Статус лида в Liner.

priority int необязательный
Приоритет лида в очереди дозвона.

utcOffset int необязательный
Часовой пояс клиента — смещение от UTC, например 3, -5.

telegramUserName string необязательный
Имя пользователя в Telegram.

telegramPhone string необязательный
Телефон пользователя в Telegram (рекомендуется E.164).

vkId int необязательный
Идентификатор пользователя в VK. Значение > 0.

instagramLogin string необязательный
Логин пользователя в Instagram.

customValues object необязательный
Словарь значений пользовательских полей: ключ — 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);

Пример ответа

{
  "success": true,
  "message": "",
  "data": []
}