Обновление Заказа
Обновление данных Заказа в Лайнере.
Адрес и метод
POST /v2/order/update/{orderId}/
orderIdint
Идентификатор Заказа в Лайнере. Значение> 0.
Параметры (Body)
Передавайте только те поля, которые нужно обновить.
codestringнеобязательный
Код заказа в Лайнере.
serviceTitlestringнеобязательный
Внутреннее название заказа.
titlestringнеобязательный
Отображаемое название заказа.
callSchedulearrayнеобязательный
Список, каждый элемент которого содержит время начала и конца рабочего дня.
callHolidayOverridesarrayнеобязательный
Список праздничных дней.
autoDialingEnabledboolнеобязательный
Разрешены ли звонки в заказе.
predictiveModeEnabledboolнеобязательный
Разрешены ли звонки в предиктивном режиме.
aiModeEnabledboolнеобязательный
Разрешен ли ИИ звонок.
standaloneAiModeEnabledboolнеобязательный
ИИ-обработка без онлайн агентов.
aiModePromptstringнеобязательный
Базовый промпт для ИИ бота.
aiModeFirstPhrasestringнеобязательный
Первая фраза для ИИ бота.
aiDefaultLanguagestringнеобязательный
Язык по-умолчанию для ИИ. Доступные значения:ru,gb.
amdDetectionEnabledboolнеобязательный
Включено ли распознавание автоответчиков.
callRecordRulestringнеобязательный
Когда начинать запись разговора. Доступные значения:client_is_connected,agent_is_connected.
callCenterPhonestringнеобязательный
Основной номер телефона КЦ.
additionalCallCenterPhonesarrayнеобязательный
Дополнительные номера телефона КЦ.
sipEndpointUsageSchemestringнеобязательный
Схема использования номеров. Доступные значения:random_default,random_without_repetition,even_loaded,even_loaded_daily.
agentUserIdsarrayнеобязательный
Идентификаторы агентов, которые могут работать в этом заказе.
agentGroupIdsarrayнеобязательный
Идентификаторы групп агентов, которые могут работать в этом заказе.
showLeadContactsToAgentboolнеобязательный
Могут ли агенты видеть контакты лидов.
callAttemptsGroupIdintнеобязательный
Идентификатор группы интервалов попыток дозвона.
qualifiedLeadsPerDayLimitintнеобязательный
Максимальное количество целевых лидов в день.
callScenarioIdintнеобязательный
Идентификатор сценария разговора.
leadTransformEnabledboolнеобязательный
Разрешено ли агенту изменять тип лида.
leadsPriorityintнеобязательный
Приоритет Лидов в заказе.
statusstringнеобязательный
Статус заказа. Доступные значения:success,secondary,info.
speechRecognitionEnabledboolнеобязательный
Включено ли распознавание звонков.
ignoreLeadTimezoneboolнеобязательный
Игнорировать ли часовой пояс клиента.
sipEndpointIdsarrayнеобязательный
Список идентификаторов виртуальных номеров.
customValuesobjectнеобязательный
Словарь значений пользовательских полей: ключ — ID пользовательского поля, значение — сохраняемое значение этого поля.
Пример запроса
curl -X POST "https://YOUR_LINER_API_HOST/v2/order/update/{orderId}/" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_TOKEN" \
-d '{
"code": "{{code}}",
"serviceTitle": "{{serviceTitle}}",
"title": "{{title}}",
"status": "{{status}}",
"sipEndpointIds": [{{sipEndpointId}}, {{sipEndpointId2}}],
"callSchedule": [[{{start}}, {{end}}]],
"callHolidayOverrides": ["{{holiday}}"],
"autoDialingEnabled": {{autoDialingEnabled}},
"predictiveModeEnabled": {{predictiveModeEnabled}},
"aiModeEnabled": {{aiModeEnabled}},
"standaloneAiModeEnabled": {{standaloneAiModeEnabled}},
"aiModePrompt": "{{aiModePrompt}}",
"aiModeFirstPhrase": "{{aiModeFirstPhrase}}",
"aiDefaultLanguage": "{{aiDefaultLanguage}}",
"amdDetectionEnabled": {{amdDetectionEnabled}},
"callRecordRule": "{{callRecordRule}}",
"callCenterPhone": "{{callCenterPhone}}",
"additionalCallCenterPhones": ["{{additionalCallCenterPhone}}", ...],
"sipEndpointUsageScheme": "{{sipEndpointUsageScheme}}",
"agentUserIds": [{{agentUserId}}, ...],
"agentGroupIds": [{{agentGroupId}}, ...],
"showLeadContactsToAgent": {{showLeadContactsToAgent}},
"callAttemptsGroupId": {{callAttemptsGroupId}},
"qualifiedLeadsPerDayLimit": {{qualifiedLeadsPerDayLimit}},
"callScenarioId": {{callScenarioId}},
"leadTransformEnabled": {{leadTransformEnabled}},
"leadsPriority": {{leadsPriority}},
"speechRecognitionEnabled": {{speechRecognitionEnabled}},
"ignoreLeadTimezone": {{ignoreLeadTimezone}},
"customValues": {
"{{customFieldId}}": "{{customFieldValue}}"
}
}'
<?php
$host = 'https://YOUR_LINER_API_HOST';
$token = 'YOUR_API_TOKEN';
$orderId = (int)$orderId;
// Важно: заполняйте только те поля, которые хотите обновить
$payload = [
'code' => $code ?? null,
'serviceTitle' => $serviceTitle ?? null,
'title' => $title ?? null,
'status' => $status ?? null,
'sipEndpointIds' => $sipEndpointIds ?? null,
'callSchedule' => $callSchedule ?? null,
'callHolidayOverrides' => $callHolidayOverrides ?? null,
'autoDialingEnabled' => isset($autoDialingEnabled) ? (bool)$autoDialingEnabled : null,
'predictiveModeEnabled' => isset($predictiveModeEnabled) ? (bool)$predictiveModeEnabled : null,
'aiModeEnabled' => isset($aiModeEnabled) ? (bool)$aiModeEnabled : null,
'standaloneAiModeEnabled' => isset($standaloneAiModeEnabled) ? (bool)$standaloneAiModeEnabled : null,
'aiModePrompt' => $aiModePrompt ?? null,
'aiModeFirstPhrase' => $aiModeFirstPhrase ?? null,
'aiDefaultLanguage' => $aiDefaultLanguage ?? null,
'amdDetectionEnabled' => isset($amdDetectionEnabled) ? (bool)$amdDetectionEnabled : null,
'callRecordRule' => $callRecordRule ?? null,
'callCenterPhone' => $callCenterPhone ?? null,
'additionalCallCenterPhones' => $additionalCallCenterPhones ?? null,
'sipEndpointUsageScheme' => $sipEndpointUsageScheme ?? null,
'agentUserIds' => $agentUserIds ?? null,
'agentGroupIds' => $agentGroupIds ?? null,
'showLeadContactsToAgent' => isset($showLeadContactsToAgent) ? (bool)$showLeadContactsToAgent : null,
'callAttemptsGroupId' => isset($callAttemptsGroupId) ? (int)$callAttemptsGroupId : null,
'qualifiedLeadsPerDayLimit' => isset($qualifiedLeadsPerDayLimit) ? (int)$qualifiedLeadsPerDayLimit : null,
'callScenarioId' => isset($callScenarioId) ? (int)$callScenarioId : null,
'leadTransformEnabled' => isset($leadTransformEnabled) ? (bool)$leadTransformEnabled : null,
'leadsPriority' => isset($leadsPriority) ? (int)$leadsPriority : null,
'speechRecognitionEnabled' => isset($speechRecognitionEnabled) ? (bool)$speechRecognitionEnabled : null,
'ignoreLeadTimezone' => isset($ignoreLeadTimezone) ? (bool)$ignoreLeadTimezone : null,
'customValues' => [
$customFieldId => isset($customFieldValue) ? $customFieldValue : null,
],
];
// Удаляем null-поля, чтобы не затирать значения случайно
$payload = array_filter($payload, fn($v) => $v !== null);
$ch = curl_init($host . '/v2/order/update/' . $orderId . '/');
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 orderId = Number(orderId);
// Важно: добавляйте только те поля, которые хотите обновить
const payload = {
code: code,
serviceTitle: serviceTitle,
title: title,
status: status,
sipEndpointIds: sipEndpointIds,
callSchedule: callSchedule,
callHolidayOverrides: callHolidayOverrides,
autoDialingEnabled: autoDialingEnabled != null ? Boolean(autoDialingEnabled) : undefined,
predictiveModeEnabled: predictiveModeEnabled != null ? Boolean(predictiveModeEnabled) : undefined,
aiModeEnabled: aiModeEnabled != null ? Boolean(aiModeEnabled) : undefined,
standaloneAiModeEnabled: standaloneAiModeEnabled != null ? Boolean(standaloneAiModeEnabled) : undefined,
aiModePrompt: aiModePrompt ?? undefined,
aiModeFirstPhrase: aiModeFirstPhrase ?? undefined,
aiDefaultLanguage: aiDefaultLanguage ?? undefined,
amdDetectionEnabled: amdDetectionEnabled != null ? Boolean(amdDetectionEnabled) : undefined,
callRecordRule: callRecordRule ?? undefined,
callCenterPhone: callCenterPhone ?? undefined,
additionalCallCenterPhones: additionalCallCenterPhones ?? undefined,
sipEndpointUsageScheme: sipEndpointUsageScheme ?? undefined,
agentUserIds: agentUserIds ?? undefined,
agentGroupIds: agentGroupIds ?? undefined,
showLeadContactsToAgent: showLeadContactsToAgent != null ? Boolean(showLeadContactsToAgent) : undefined,
callAttemptsGroupId: callAttemptsGroupId != null ? Number(callAttemptsGroupId) : undefined,
qualifiedLeadsPerDayLimit: qualifiedLeadsPerDayLimit != null ? Number(qualifiedLeadsPerDayLimit) : undefined,
callScenarioId: callScenarioId != null ? Number(callScenarioId) : undefined,
leadTransformEnabled: leadTransformEnabled != null ? Boolean(leadTransformEnabled) : undefined,
leadsPriority: leadsPriority != null ? Number(leadsPriority) : undefined,
speechRecognitionEnabled: speechRecognitionEnabled != null ? Boolean(speechRecognitionEnabled) : undefined,
ignoreLeadTimezone: ignoreLeadTimezone != null ? Boolean(ignoreLeadTimezone) : undefined,
customValues: {
[customFieldId]: customFieldValue != null ? customFieldValue : undefined,
},
};
// Удаляем undefined-поля
Object.keys(payload).forEach((k) => payload[k] === undefined && delete payload[k]);
const res = await fetch(`${host}/v2/order/update/${orderId}/`, {
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);
Пример ответа
Примечание
Выше описана структура поля data. Общий формат ответа API см. в разделе Схема запросов