crm.lead.details.configuration.set
Установить параметры карточки
Описание
Метод crm.lead.details.configuration.set устанавливает настройки карточки лидов.
Настройки карточки повторных лидов могут отличаться от настроек карточки простых лидов. Для переключения между настройками карточек лидов применяйте параметр leadCustomerType.
Параметры
data
section[]
обязательный
Список разделов карточки. Каждый раздел содержит набор полей, которые будут выведены в карточке лида
userId
user
необязательный
Идентификатор пользователя, для которого нужно сохранить личную конфигурацию.
Если параметр не передан, будет использован userId пользователя, который вызывает метод.
Нужен только при установке личных настроек
scope
string
необязательный
Область применения настроек. Возможные значения:
- 'P' - личные настройки
- 'C' - общие настройки
По умолчанию используется значение 'P'
extras
object
необязательный
Дополнительные параметры для выбора типа лида. Структура описана ниже
Параметр section
name
string
обязательный
Уникальное имя раздела
title
string
обязательный
Заголовок раздела
type
string
обязательный
Тип раздела. Поддерживается только значение 'section'
elements
section_element[]
необязательный
Список полей, которые отображаются в разделе
Параметр section_element
name
string
обязательный
Идентификатор поля лида. Список доступных полей можно получить методом crm.lead.fields
optionFlags
integer
необязательный
Нужно ли показывать поле всегда:
- 1 - да
- 0 - нет
По умолчанию используется значение 0
options
object
необязательный
Дополнительные опции поля. Набор опций зависит от типа поля
Параметр extras
leadCustomerType
integer
необязательный
Тип лида. Возможные значения:
- 1 - простой лид
- 2 - повторный лид
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"scope":"P","userId":1,"extras":{"leadCustomerType":2},"data":[{"name":"main","title":"О лиде","type":"section","elements":[{"name":"TITLE"},{"name":"STATUS_ID"},{"name":"SOURCE_ID"},{"name":"NAME"},{"name":"PHONE","optionFlags":1}]},{"name":"additional","title":"Дополнительно","type":"section","elements":[{"name":"ASSIGNED_BY_ID"},{"name":"COMMENTS"}]}]}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.lead.details.configuration.set
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"scope":"P","userId":1,"extras":{"leadCustomerType":2},"data":[{"name":"main","title":"О лиде","type":"section","elements":[{"name":"TITLE"},{"name":"STATUS_ID"},{"name":"SOURCE_ID"},{"name":"NAME"},{"name":"PHONE","optionFlags":1}]},{"name":"additional","title":"Дополнительно","type":"section","elements":[{"name":"ASSIGNED_BY_ID"},{"name":"COMMENTS"}]}],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.lead.details.configuration.set
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make<boolean>({
method: 'crm.lead.details.configuration.set',
params: {
scope: 'P',
userId: 1,
extras: {
leadCustomerType: 2,
},
data: [
{
name: 'main',
title: 'About lead',
type: 'section',
elements: [
{ name: 'TITLE' },
{ name: 'STATUS_ID' },
{ name: 'SOURCE_ID' },
{ name: 'NAME' },
{ name: 'PHONE', optionFlags: 1 },
],
},
{
name: 'additional',
title: 'Additional',
type: 'section',
elements: [
{ name: 'ASSIGNED_BY_ID' },
{ name: 'COMMENTS' },
],
},
],
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Configuration saved:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function setLeadCardConfiguration() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.lead.details.configuration.set',
params: {
scope: 'P',
userId: 1,
extras: {
leadCustomerType: 2,
},
data: [
{
name: 'main',
title: 'About lead',
type: 'section',
elements: [
{ name: 'TITLE' },
{ name: 'STATUS_ID' },
{ name: 'SOURCE_ID' },
{ name: 'NAME' },
{ name: 'PHONE', optionFlags: 1 },
],
},
{
name: 'additional',
title: 'Additional',
type: 'section',
elements: [
{ name: 'ASSIGNED_BY_ID' },
{ name: 'COMMENTS' },
],
},
],
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Configuration saved:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', setLeadCardConfiguration)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.lead.details.configuration.set(
scope="P",
user_id=1,
extras={"leadCustomerType": 2},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'crm.lead.details.configuration.set',
[
'scope' => 'P',
'userId' => 1,
'extras' => [
'leadCustomerType' => 2,
],
'data' => [
[
'name' => 'main',
'title' => 'О лиде',
'type' => 'section',
'elements' => [
['name' => 'TITLE'],
['name' => 'STATUS_ID'],
['name' => 'SOURCE_ID'],
['name' => 'NAME'],
['name' => 'PHONE', 'optionFlags' => 1],
],
],
[
'name' => 'additional',
'title' => 'Дополнительно',
'type' => 'section',
'elements' => [
['name' => 'ASSIGNED_BY_ID'],
['name' => 'COMMENTS'],
],
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Result: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error: ' . $e->getMessage();
}
BX24.callMethod(
'crm.lead.details.configuration.set',
{
scope: 'P',
userId: 1,
extras: {
leadCustomerType: 2
},
data: [
{
name: 'main',
title: 'О лиде',
type: 'section',
elements: [
{ name: 'TITLE' },
{ name: 'STATUS_ID' },
{ name: 'SOURCE_ID' },
{ name: 'NAME' },
{ name: 'PHONE', optionFlags: 1 }
]
},
{
name: 'additional',
title: 'Дополнительно',
type: 'section',
elements: [
{ name: 'ASSIGNED_BY_ID' },
{ name: 'COMMENTS' }
]
}
]
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'crm.lead.details.configuration.set',
[
'scope' => 'P',
'userId' => 1,
'extras' => [
'leadCustomerType' => 2,
],
'data' => [
[
'name' => 'main',
'title' => 'О лиде',
'type' => 'section',
'elements' => [
['name' => 'TITLE'],
['name' => 'STATUS_ID'],
['name' => 'SOURCE_ID'],
['name' => 'NAME'],
['name' => 'PHONE', 'optionFlags' => 1],
],
],
[
'name' => 'additional',
'title' => 'Дополнительно',
'type' => 'section',
'elements' => [
['name' => 'ASSIGNED_BY_ID'],
['name' => 'COMMENTS'],
],
],
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.lead.details.configuration.set", b24.Params{
"scope": "P",
"userId": 1,
"extras": b24.Params{
"leadCustomerType": 2,
},
"data": []b24.Params{
{
"name": "main",
"title": "О лиде",
"type": "section",
"elements": []b24.Params{
{
"name": "TITLE",
},
{
"name": "STATUS_ID",
},
{
"name": "SOURCE_ID",
},
{
"name": "NAME",
},
{
"name": "PHONE",
"optionFlags": 1,
},
},
},
{
"name": "additional",
"title": "Дополнительно",
"type": "section",
"elements": []b24.Params{
{
"name": "ASSIGNED_BY_ID",
},
{
"name": "COMMENTS",
},
},
},
},
})
if err != nil {
return fmt.Errorf("crm.lead.details.configuration.set: %w", err)
}
var ok bool
if err := json.Unmarshal(res.Result, &ok); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("выполнено:", ok)
Ответ
HTTP-статус: 200
{
"result": true,
"time": {
"start": 1720728468.828951,
"finish": 1720728469.214046,
"duration": 0.38509488105773926,
"processing": 0.018099069595336914,
"date_start": "2024-07-11T22:54:28+02:00",
"date_finish": "2024-07-11T22:54:29+02:00",
"operating": 0
}
}
Возвращаемые данные
result
boolean
Корневой элемент ответа. Возвращает true, если настройки успешно сохранены
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Element at index 0 in section at index 1 does not have name."
}
| Код | Описание | Значение |
|---|---|---|
| — | Access denied | Недостаточно прав |
| — | Parameter 'data' must be array | В data передан не массив |
| — | The data must be indexed array | В data передан не индексированный массив |
| — | There are no data to write | В data передан пустой массив |
| — | Section at index i have type data[i].type. The expected type is 'section' |
В data[i].type передано значение отличное от 'section' |
| — | Section at index i does not have name |
В data[i].name передано пустое значение |
| — | Section at index i does not have title |
В data[i].title передано пустое значение |
| — | Element at index j in section at index i does not have name |
В data[i].elements[j].name передано пустое значение |

