> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hubtalk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 23. Кампания обзвона

> От файла контактов до первого набора: импорт, повторы, окна времени, аттестация.

# Кампания обзвона: от файла до первого набора

<Info>
  **Цель модуля:** запустить обзвон списка контактов с правильными окнами времени, повторами и подписанной аттестацией.
</Info>

<Frame caption="/campaigns — список кампаний: статус, даты, скорость, число контактов и прогресс.">
  <img src="https://mintcdn.com/hubtalk/cKl-cjuDGhk4sToG/images/tutorial/tut-46-campaigns-list.webp?fit=max&auto=format&n=cKl-cjuDGhk4sToG&q=85&s=f8985d6b58c85a6a25b0e8d76360941a" alt="Список кампаний с фильтрами и прогрессом" width="1280" height="189" data-path="images/tutorial/tut-46-campaigns-list.webp" />
</Frame>

Кампания собирается мастером на отдельной странице — **пять шагов**, и все они обратимы, пока кампания в статусе **Черновик**. «Далее» не пропускает вперёд при неполных данных и называет недостающие поля.

<Steps>
  <Step title="Кампания">
    Имя, агент и **классификация** — цель обзвона: маркетинг, обслуживание или взыскание задолженности. От неё зависит требуемый тир согласия и текст аттестации, который вы подпишете на пятом шаге.
  </Step>

  <Step title="Расписание">
    Окно дат, часовой пояс, рабочие часы и галочка «Звонить по местному времени контакта».
  </Step>

  <Step title="Дозвон">
    Транк, сабгруппа и исходящий номер (сворачиваемая группа «Телефония»), скорость обзвона, что делать с дублями, повторы и логика обзвона.
  </Step>

  <Step title="Контакты">
    CSV или XLSX. Телефонная колонка распознаётся по заголовку, **все остальные колонки становятся переменными звонка**. Тут же читается отчёт импорта: сколько принято, что отклонено и почему.
  </Step>

  <Step title="Проверка и запуск">
    Блокеры, предупреждения и подпись аттестации.
  </Step>
</Steps>

<Note>
  Запись кампании создаётся на переходе к шагу **Контакты** — до этого загружать файл некуда. **Уже созданную кампанию правят не мастером**, а диалоговым окном из её карточки; поля там те же.
</Note>

<Note>
  **Выбор агента на первом шаге — список с поиском.** Наберите несколько букв имени вместо того, чтобы листать; так же устроены и остальные места выбора агента — карточка входящей сабгруппы, диалог тестового звонка, правило правки фраз.

  Список предлагает только опубликованных агентов, а участнику — ещё и только тех, кто [помечен как видимый для участников](/ru/v4/platform/agents/list): недоделанные и снятые с обслуживания агенты ему не показываются вовсе. Администратор и разработчик видят всех, у скрытого стоит пометка «Скрыто от участников». Если агента скрыли уже после того, как кампания собрана, она продолжает работать и правиться, но **запустить** её участник не сможет — на шаге проверки появится блокер.
</Note>

<Frame caption="Поля кампании (кадр снят в диалоговом окне правки — в мастере те же поля разложены по шагам). Скорость обзвона выбирается из фиксированных тиров, а не любым числом; «Логика обзвона» — стандарт (повторы и интервал) или экспертная (правила по причинам)." hint="Нажмите, чтобы открыть целиком">
  <img src="https://mintcdn.com/hubtalk/cKl-cjuDGhk4sToG/images/tutorial/tut-47-campaign-create.webp?fit=max&auto=format&n=cKl-cjuDGhk4sToG&q=85&s=1381ca46b0228427e36d702f8562d8c2" alt="Форма создания кампании" style={{ width: "100%", height: "620px", objectFit: "cover", objectPosition: "top", borderRadius: "6px" }} width="1100" height="1269" data-path="images/tutorial/tut-47-campaign-create.webp" />
</Frame>

<Warning>
  **Скорость обзвона означает ровно то, что написано.** Тиров девять — до **200** звонков в минуту, — и кампания наберёт ровно столько, сколько вы попросили: подбирать тир по фактической скорости не нужно. Общего потолка контура нет.
</Warning>

<Frame caption="Карточка кампании: конфигурация набора (после запуска она замораживается), результаты импорта и таблица переменных с заполненностью колонок." hint="Нажмите, чтобы открыть целиком">
  <img src="https://mintcdn.com/hubtalk/cKl-cjuDGhk4sToG/images/tutorial/tut-48-campaign-card.webp?fit=max&auto=format&n=cKl-cjuDGhk4sToG&q=85&s=4089854a13d2f237527697d76051bc87" alt="Карточка кампании: конфигурация набора, загрузка контактов, результаты импорта" style={{ width: "100%", height: "620px", objectFit: "cover", objectPosition: "top", borderRadius: "6px" }} width="1180" height="1254" data-path="images/tutorial/tut-48-campaign-card.webp" />
</Frame>

## Файл контактов: лимиты и колонки

CSV или XLSX; старый **XLS не поддерживается**. До **50 000 строк** и **10 МБ** — файл сверх лимита отклоняется целиком, а не обрезается. Обязательна одна колонка — телефон: платформа находит её по заголовку (`phone`, `mobile`, `tel` и похожим), а если узнаваемого заголовка нет — по содержимому. Имя берётся из `name` / `full_name` либо собирается из `first_name` и `last_name`. Все остальные колонки становятся переменными звонка.

<Check>
  **Самый полезный приём во всём модуле: скачайте образец файла прямо из формы создания кампании.** Образец собирается **под конкретного агента** — в нём уже стоят те колонки, которые агент использует в промптах. Это ровно та проверка, которую иначе делают вручную, сверяя `{{переменные}}` в узлах со заголовками в Excel.
</Check>

**Дубли номеров** — три варианта на выбор: отклонять (по умолчанию, повторы едут в отчёт как ошибки), оставить первое вхождение или оставить последнее. В любом случае **номер попадает в кампанию не более одного раза**; повторные наборы бывают только перезвонами при недозвоне.

## Отчёт импорта — читать обязательно

На скриншоте: принято 6, с предупреждениями 1, отклонено 1, найден 1 дубль. Отчёт называет **номера строк** и причину («строки без читаемого телефона — строка 8»), выгружается в CSV/XLSX и хранится с версией загрузки.

Отдельно про географию: если хотя бы одна строка отклонена как «без пригодной локации», **запуск блокируется целиком** — с указанием количества строк и имени файла. Обхода нет и частичного запуска не бывает: файл нужно исправить и загрузить заново. Ниже — таблица переменных и красная строка про то, что агент использует переменные, для которых в файле нет колонок: они будут пустыми. Это самая частая причина «агент говорит странное»: в промпте есть `{{doctor}}`, а в файле такой колонки нет.

## Повторы: стандарт и экспертная логика

Стандарт — «перезвонить до N раз с интервалом M». Считаются именно **повторы** (0–9), первый набор в это число не входит, и на экране всегда стоят оба числа: «9 повторов · 10 наборов».

Интервал задаётся в двух режимах:

* **Один интервал** — одинаковая пауза между всеми наборами одного номера.
* **Свой интервал на каждый повтор** — интервал на каждый повтор отдельно, пилюлями «Повтор 1», «Повтор 2», … Так строится «сначала часто, потом реже»: 2 мин → 5 мин → 1 сутки → 3 суток. Значения — из фиксированного списка, **от 1 минуты до 7 суток**.

Если лестница повторов не укладывается в срок кампании, запуск предупредит («N повторов не состоится»), но не заблокирует.

Экспертная логика — правила «если *причина* → *действие*»: например `нет ответа → перезвонить на следующем проходе (до 2 раз)`, `голосовая почта → прекратить набор номера`, `цель не достигнута → перезвонить`. По постоянным причинам (клиент отказался, неверный номер, спам-блок) повтор запрещён на уровне схемы — так и должно быть.

Собирать правила руками каждый раз не нужно: над редактором правил стоит селектор **Пресет стратегии** с тремя встроенными наборами — **Стандартный** (занято до 3 перезвонов, нет ответа до 2), **Агрессивный** (занято ×5, нет ответа ×4, автоответчик ×2) и **Осторожный** (занято ×2, нет ответа ×1, автоответчик останавливает номер). Свой набор сохраняется кнопкой **Сохранить как пресет** и переиспользуется в других кампаниях; до 20 пресетов на организацию.

<Warning>
  **Две грабли с пресетами.** Первая: любая правка правила переводит селектор в «Свои правила» — это нормально, но «Сохранить как пресет» доступно только в этом состоянии. Вторая: пресет несёт **только правила**, число повторов и интервалы остаются полями кампании — выбор пресета их не меняет. И правка своего пресета не догоняет уже настроенные кампании.
</Warning>

<Info>
  **Что считается постоянной причиной — зависит от рынка.** «Абонент отклонил» закрывает номер навсегда только на профиле США; на остальных профилях, включая наш, это транзиентная причина — номер вернётся в набор и потратит попытку.
</Info>

## Частота: сколько раз вообще можно позвонить человеку

Повторы отвечают на вопрос «когда набрать снова». Частотные лимиты отвечают на другой — «сколько раз этому номеру вообще можно звонить», и считаются по номеру во всех кампаниях организации сразу. Две кампании, звонящие одному человеку, делят один бюджет, поэтому лестница повторов может не отработать до конца не из-за ошибки, а из-за частоты.

В мастере кампании и в карточке у каждого лимита показаны четыре вещи: **применяемый лимит** (то, что реально действует), **источник** — настройка организации, настройка кампании или законный кап, **рекомендация** и пометка **неприменимости**, если к этому типу кампании лимит не относится.

<Warning>
  **Настройка кампании умеет только ужесточать.** Раздел называется «Настройка для этой кампании» и принимает значения строже организационных: ниже лимит или дольше пауза. Всё, что мягче, сервер откажется сохранить — узнать об этом лучше здесь, чем на кнопке «Сохранить» перед запуском.
</Warning>

В прогрессе кампании есть блок **Частота**: он разделяет контакты, **придержанные** ограничением (позвоним позже), и **закрытые** им (этой кампанией не позвоним). В листинге контактов рядом с каждым видна причина и сохранённое частотное решение — какое именно ограничение сработало, с какими счётчиками и до какого момента.

<Note>
  **В Казахстане лимиты по умолчанию выключены.** Рекомендованные значения — 2 звонка в сутки, 7 за неделю, пауза 24 часа — это американская практика; норма Казахстана другая: окно обзвона и реестр отказов. Если лимиты вам нужны, включите их себе сами — это будет добровольное самоограничение компании. Подробности — в [Кампаниях](/ru/v4/platform/campaigns/frequency#как-выключить-лимиты).
</Note>

<Frame caption="Запуск. Перед первым набором — проверка (агент опубликован, транк жив, контакты есть, окна заданы) и аттестация разрешения: подпись о том, что согласие на звонок получено. Формулировка приходит с сервера и зависит от классификации кампании; подпись записывается с вашим именем и временем и обнуляется при замене файла контактов.">
  <img src="https://mintcdn.com/hubtalk/cKl-cjuDGhk4sToG/images/tutorial/tut-49-campaign-launch.webp?fit=max&auto=format&n=cKl-cjuDGhk4sToG&q=85&s=3479764af2ee04e9a774b963f99009db" alt="Диалог запуска кампании с предупреждениями и аттестацией разрешения" width="1180" height="1097" data-path="images/tutorial/tut-49-campaign-launch.webp" />
</Frame>

<Info>
  **Рабочие часы и часовые пояса**

  Расписание задаётся днями недели и интервалами (переключатель «Ограничить расписанием»). Галочка **«Звонить по местному времени контакта»** берёт пояс из колонки `timezone` файла — для Казахстана это важно: Алматы и Актобе разъезжаются на час, и «09:00 по кампании» может оказаться 08:00 у клиента.

  **Пустое расписание не означает «круглосуточно».** Если расписание не задано, действует **окно обзвона организации** — платформенный дефолт 08:00–21:00, и форма это прямо пишет. Расписание кампании может окно только сузить: контакт вне окна откладывается до ближайшего открытия, а расписание, целиком не пересекающееся с окном, отклоняется с причиной «пустое пересечение». Само окно меняет только администратор платформы, и изменение действует сразу на все кампании организации, включая запущенные.
</Info>

<Warning>
  **Пауза и остановка**

  Кампанию можно поставить на паузу и возобновить; отменённую — нельзя. После запуска конфигурация набора заморожена: чтобы поменять скорость или правила, нужна новая кампания. Поэтому первый запуск делают на 20–30 контактах, а не на всей базе.
</Warning>
