Налаштування автоматичного розподілу лідів у Бітрікс24
Ручний розподіл лідів — вузьке місце в більшості відділів продажів. Керівник витрачає час на призначення, нові ліди лежать без відповіді, поки він зайнятий. Автоматичний розподіл прибирає людину з цього ланцюга: лід з'явився → призначений потрібному менеджеру → менеджер отримав сповіщення.
Вбудовані інструменти розподілу
Черга розподілу — найпростіший варіант. Бітрікс24 призначає ліди менеджерам за круговою схемою (round-robin). Налаштування: CRM → Налаштування → Розподіл лідів → Черга.
Параметри черги:
- Список менеджерів у черзі та їх порядок
- Робочий час (ліди в неробочий час призначаються черговому або ставляться в накопичувач)
- Винятки: лід не призначається менеджеру, якщо він у відпустці/відрядженні (інтеграція з Відсутностями)
Правила маршрутизації — більш гнучкий інструмент. Дозволяє призначати ліди за умовами:
| Умова | Дія |
|---|---|
| Джерело = «Сайт Москва» | Призначити менеджеру Іванову |
| Джерело = «Холодний дзвінок» | В чергу «Холодні дзвінки» |
| Сума > 500 000 | Призначити старшому менеджеру |
| Регіон = «Краснодарський край» | Менеджеру Сидорову (регіональний) |
| UTM_campaign = «vk_retarget» | У воронку «Ретаргетинг» |
Налаштування: CRM → Налаштування → Правила маршрутизації → Створити правило.
Розподіл через роботів
Роботи у воронці лідів дають тонше налаштування з умовною логікою. Приклад схеми:
Новий лід
└─► [Робот: Перевірити поле «Регіон»]
├─► Москва → [Робот: Призначити відповідального = Іванов]
├─► СПб → [Робот: Призначити відповідального = Петров]
└─► Інше → [Робот: Додати в чергу «Регіони»]
Налаштування роботів: CRM → Ліди → Стадія «Новий» → Автоматизація → Додати робота → «Змінити відповідального».
Програмний розподіл через REST API
Для складної логіки — розподіл за завантаженням менеджера, спеціалізацією, з урахуванням географії — використовують REST API та webhook:
// Webhook на створення ліда
// URL: /local/rest/lead_routing.php
$leadData = json_decode(file_get_contents('php://input'), true);
$leadId = $leadData['data']['FIELDS_AFTER']['ID'];
// Отримуємо дані ліда
$b24 = initBitrix24Client();
$lead = $b24->call('crm.lead.get', ['id' => $leadId]);
// Визначаємо відповідального за логікою
$responsibleId = determineResponsible($lead['result']);
// Призначаємо
$b24->call('crm.lead.update', [
'id' => $leadId,
'fields' => ['ASSIGNED_BY_ID' => $responsibleId],
]);
// Сповіщаємо менеджера
$b24->call('im.notify.personal.add', [
'USER_ID' => $responsibleId,
'MESSAGE' => 'Вам призначено новий лід: ' . $lead['result']['TITLE'],
]);
function determineResponsible(array $lead): int
{
// За джерелом
if ($lead['SOURCE_ID'] === 'SITE_MOSCOW') {
return MOSCOW_MANAGER_ID;
}
// За завантаженням (беремо менеджера з найменшою кількістю відкритих лідів)
global $b24;
$managers = [MANAGER_1_ID, MANAGER_2_ID, MANAGER_3_ID];
$loads = [];
foreach ($managers as $managerId) {
$count = $b24->call('crm.lead.list', [
'filter' => ['ASSIGNED_BY_ID' => $managerId, 'STATUS_ID' => 'NEW'],
'select' => ['ID'],
])['total'];
$loads[$managerId] = $count;
}
asort($loads);
return array_key_first($loads);
}
Врахування робочого часу
При розподілі важливо враховувати доступність менеджера. Бітрікс24 надає API для перевірки робочого часу та відсутностей:
// Перевіряємо, чи на місці менеджер
BX24.callMethod('timeman.timecontrol.report.list', {
filter: { USER_ID: managerId, STATUS: 'OPENED' },
}, result => {
const isOnline = result.total() > 0;
// Якщо відсутній — перенаправляємо на чергового
});
Терміни
| Конфігурація | Термін |
|---|---|
| Черга round-robin + робочий час | 0,5–1 день |
| Правила маршрутизації + роботи | 1–2 дні |
| Кастомна логіка через REST + webhook | 3–6 днів |







