Управление базой лидов¶
Что такое лид¶
Лид — контакт для обзвона. Каждый лид содержит:
- один или несколько номеров телефона
- имя (передаётся на телефонию как caller name)
- часовой пояс (используется для звонков в удобное местное время)
- дополнительные данные (ссылка на карточку в CRM, переменные для IVR и т. д.)
Лиды хранятся в бакетах, бакеты привязаны к кампаниям. Именно кампания определяет, как и когда лиду будут звонить.
Жизненный цикл лида¶
Каждому лиду присвоен статус, который меняется по мере продвижения по обзвону.
Загружен → INITIALIZE
│
├─ (повторная загрузка) → REINITIALIZE
│
├─ (не дозвонились, есть ещё попытки) → CONTINUE
│
├─ (дозвонились) → COMPLETED ✓
├─ (все попытки исчерпаны) → FAILED
├─ (номер в чёрном списке) → BLACKLIST
├─ (мягкое удаление) → DELETED
└─ (ошибка системы/телефонии) → ERROR
Пока идёт набор номера — лид получает промежуточный статус RESERVED. В этот момент его нельзя редактировать: любые изменения вернут ошибку. Если нужно удалить такого лида, повторите попытку через ~1 минуту.
| Статус | Когда присваивается | Продолжается ли обзвон |
|---|---|---|
| INITIALIZE | Сразу после создания | Да |
| REINITIALIZE | При повторном создании (сбрасываются счётчики) | Да |
| CONTINUE | Звонили, не дозвонились, есть ещё попытки | Да |
| RESERVED | Идёт набор номера | Пауза (временный статус) |
| COMPLETED | Успешный дозвон (ANSWER) | Нет |
| FAILED | Исчерпаны все попытки | Нет |
| ABANDON | Лид ответил, но бросил трубку до оператора | Нет |
| BLACKLIST | Номер найден в чёрном списке | Нет |
| DELETED | Мягкое удаление | Нет |
| ERROR | Ошибка телефонии или постобработки | Нет |
Создание бакета¶
Бакет — логическая сущность для организации хранения лидов с указанием приоритета. Лиды загружаются в бакеты, бакеты связаны с кампаниями. Один бакет привязывается только к одной кампании.
- Перейдите в
/dialer/ui/superviser/#/buckets→ нажмите «Создать» - Укажите название и выберите кампанию (определяет стратегию обзвона)
- Выберите планировщик звонков (если не указан — берётся из кампании)
- Укажите приоритет — целое неотрицательное число; меньшее значение = выше приоритет
На вкладке Настройки можно указать, в какой бакет перемещать лидов после завершения всех шагов расписания.
Бакет для стратегии Callback¶
Если бакет создаётся для стратегии Callback, появляется дополнительное поле ответственный агент — из списка операторов выберите того, чьими задачами будут считаться лиды из этого бакета.
На вкладке Настройки для Callback также появляется поле если оператор недоступен, перемещать в бакет. Если подошло время звонка, а ответственный оператор недоступен, лида можно перенести в бакет другому оператору или в общую очередь.
Важно
Если не указано, куда переносить лида при недоступности оператора — вернётся ошибка, и дозвон этому лиду осуществляться не будет.
Загрузка лидов из CSV¶
Подготовка файла¶
Файл CSV должен содержать минимальный набор столбцов:
| Столбец | Описание |
|---|---|
phone |
Номер телефона (обязательный) |
timezone |
Часовой пояс в формате смещения от UTC (например, +3) |
name |
Имя абонента (передаётся как caller name) |
data |
Массив дополнительных данных (JSON) |
Шаблон CSV для скачивания доступен в настройках бакета на вкладке Actions.
Процесс загрузки¶
- Откройте нужный бакет → вкладка Actions
- В блоке «Загрузить новый» укажите путь к файлу
- Нажмите «Загрузить» — откроется окно предпросмотра
- В предпросмотре назначьте соответствие столбцов файла полям системы
- Сохраните настройку как шаблон (v3.8.0+) — для повторной загрузки аналогичных файлов
Начиная с v3.7.0 можно устанавливать произвольные имена столбцов при загрузке. С v3.8.0 — сохранять конфигурацию как шаблон.
Настраиваемые поля¶
В настройках кампании (вкладка «Настраиваемые поля») можно создать собственные поля для лидов — задать тип, обязательность и значение по умолчанию. При загрузке CSV эти поля будут доступны для маппинга.
Проверка на дубли¶
При загрузке можно включить поиск дублей по номеру телефона:
- В настройках бакета → вкладка Actions → установить флажок «Искать дубликаты»
- Указать область поиска (бакет или кампания)
Телефоны, уже присутствующие в базе, не будут добавлены к лиду. Если у лида все номера — дубли, лид не создаётся.
Автоопределение часового пояса¶
Если при загрузке лидов часовой пояс не указан, IqDialer автоматически его вычисляет по коду номера телефона (DEF-коды).
Данные для определения хранятся в разделе «Распознавание номеров»:
- Регионы — список регионов с часовыми поясами
- Операторы — операторы сотовой связи
- Коды — диапазоны номеров с привязкой к регионам и операторам
Для проверки конкретного номера введите его в поле поиска — система покажет регион и оператора.
Данные о регионах, операторах и кодах можно загружать через импорт CSV с поддержкой шаблонов.
Порядок обзвона лидов¶
Порядок выборки лидов из хранилища настраивается в кампании на вкладке Провайдеры → поля для сортировки.
Поля сортировки для лидов¶
| Поле | Описание |
|---|---|
Campaign.leads.f.priority |
Приоритет лида |
Campaign.leads.f.next_time_call |
Время следующего звонка |
Campaign.leads.f.attempts |
Число попыток дозвона |
Campaign.leads.f.attempts_current_campaign |
Попытки в рамках текущей кампании |
Campaign.leads.f.created_at |
Дата создания |
Campaign.leads.f.updated_at |
Дата обновления |
Campaign.leads.f.timezone |
Часовой пояс |
Campaign.leads.f.status |
Статус лида |
Campaign.leads.f.last_call_status |
Статус последнего звонка |
Поля сортировки для бакетов¶
| Поле | Описание |
|---|---|
Campaign.buckets.f.priority |
Приоритет бакета |
Campaign.buckets.f.created_at |
Дата создания |
Campaign.buckets.f.updated_at |
Дата обновления |
Пример: сначала бакеты с меньшим приоритетом, внутри бакета — лиды с большим приоритетом.
Удаление лидов¶
Возможны два варианта удаления:
Мягкое удаление (soft delete) — лид не удаляется из базы, а получает статус DELETED. Звонки по нему прекращаются, но история сохраняется.
Полное удаление — лид удаляется из базы.
Удалить лидов можно:
- В разделе «Лиды» через фильтры и массовые действия
- С помощью API: DELETE /leads/{id} или DELETE /leads/bulk
Быстрый переход к лидам по статусу — через виджет «Лиды по статусам» на главном дашборде: кликните на нужную цифру.
Важно: если при удалении возникает ошибка, значит лид находится в статусе RESERVED (идёт звонок). Повторите попытку через ~1 минуту.
Чёрные списки¶
Номера из чёрного списка не будут обзваниваться. Лид, у которого хотя бы один номер найден в чёрном списке, автоматически получает статус BLACKLIST.
Управление: /dialer/ui/superviser/#/black_lists
Добавить номера можно: - По одному — через форму создания - Группой — через блок «Загрузить список»
Внизу страницы доступны фильтрация, экспорт и массовое удаление.
Просмотр статистики по лидам¶
Главный дашборд¶
Виджет «Лиды по статусам» на главном дашборде показывает количество лидов в каждом статусе с привязкой к кампании.
| Категория в виджете | Соответствует статусу |
|---|---|
| Всего лидов | — (все лиды в бакетах) |
| Принят в обработку | INITIALIZE |
| Пересоздан | REINITIALIZE |
| В обработке | CONTINUE |
| Не обработан | FAILED |
| Ошибка | ERROR |
| Обработан | COMPLETED |
| Удален | DELETED |
Вкладка «Лиды» в кампании¶
При редактировании кампании на вкладке Связанные ссылки → Лиды виден детальный список лидов. Столбец «Время следующего звонка» помогает разобраться, почему не идёт обзвон при наличии необработанных лидов.
Что делать, если лиды не звонятся¶
- Проверьте статус кампании — должна быть «Активна»
- Проверьте календарь — находится ли текущее время в интервалах включения
- Проверьте планировщик звонков — соответствует ли текущее время периодам активности шага
- Проверьте столбец «Время следующего звонка» у лидов — возможно, время ещё не наступило
- Убедитесь, что операторы онлайн (для стратегий с резервированием)
- Проверьте подсветку кампании на дашборде — красная подсветка означает проблему на телефонии














