Skip to main content

Согласие, реестр и зона ответственности

Подтверждение согласия и цель обзвона

Перед запуском платформа требует подтвердить, что у вас есть согласие абонентов на звонки. В кабинете это галочка с юридическим текстом; через API — поле attestation в запросе. Без него кампания создаётся, но остаётся черновиком с причиной «нужна подпись». Подпись ставится ключом, а человеческое звено — сотрудник, выпустивший ключ (Ключ доступа). Подпись привязана к конкретной версии данных: подтверждение, данное под одним списком номеров, не переносится на следующий. Загрузили новый список или добавили партию номеров — подтверждаете заново. Цель обзвона (classification) — чем именно вы звоните: От цели зависит тип согласия (consent_tier) — какой именно юридический текст вы подписываете. Поэтому платформа её не угадывает: не указали — берётся marketing, самый строгий вариант. В ответе приходит и цель, и получившийся тип, чтобы вы видели, под каким текстом подписались.

Реестр «не звонить»

Номера из реестра вашей организации платформа находит до первого звонка и перечисляет поимённо. Проверяется каждая читаемая строка списка до удаления дублей: поэтому три строки одного номера — это три совпавшие строки, но один исключённый номер. Строки с нечитаемым телефоном считаются «непроверенными», а ноль совпадений всегда возвращается явным статусом clean, а не выводится из пустого списка. Запуск при этом останавливается. Дальше решаете вы:
  • оставить блокировку (dnc: "block", значение по умолчанию) — совпавшие номера не набираются;
  • подтвердить обзвон (dnc: "skip") — платформа записывает это решение в аудит ровно так же, как кнопку в кабинете, с указанием, к какой загрузке и к какому точному составу совпадений оно относится. Появилась новая запись реестра по тому же списку — согласие сбрасывается, и проверка запуска снова показывает обновлённый список совпадений.
Если в реестре оказались все набираемые номера, подтверждать нечего — запуск останавливается безусловно. Непосредственно перед запуском платформа снова читает живой реестр и сохраняет его «снимок» вместе с подписью; после запуска карточка кампании и отчёт о совпадениях показывают именно этот снимок, даже если реестр потом менялся. Номера, попавшие в реестр уже по ходу кампании, всё равно не набираются — прогресс кампании считает их отдельно.
Для партий номеров, добавляемых в уже созданную кампанию (Согласие и ответственность), правило жёстче: совпадение с реестром не «останавливает запуск», а отклоняет всю партию — подтвердить обзвон таких номеров через добавление нельзя.

Что платформа делает сама, а что остаётся вам

Делает платформа: разбор номеров и переменных, дубли, реестр «не звонить», география и законное окно звонков (США), окно обзвона организации, темп обзвона, повторы недозвонов, ограничение частоты звонков на номер, часовые пояса контактов, записи разговоров, разбор результатов. Остаётся вам: решить, когда запускать кампанию и с каким списком; хранить у себя связь между вашими сущностями и кампанией; читать прогресс, если нужен статус в вашем интерфейсе; получать результаты звонков (вебхуки по каждому звонку работают так же, как для отдельных звонков). Про повторы недозвонов. По умолчанию кампания делает одну попытку на номер и никого не перезванивает. Если хотите, чтобы платформа перезванивала сама, задайте число попыток и паузу между ними (retry_config). Если перезвонами управляет ваша система (повторно присылает номер как собственный перезвон), оставьте одну попытку — иначе перезвон получится двухуровневым: ваш плюс платформенный. Повторно присланный номер, по которому кампания уже звонила, принимается как новый звонок и набирается снова. Про рабочие часы. Если вы не задали кампании рабочие часы, это не значит «звонить круглосуточно»: платформа звонит в пределах окна обзвона вашей организации (а в США — в пределах законного окна юрисдикции абонента). Часы кампании могут только сужать это окно; попытка задать более широкие часы отклоняется сразу. Добавить номера в уже созданную кампанию — можно, отдельным запросом POST /v1/campaigns/{id}/calls: партия несёт номера и подпись, а агент, линия, рабочие часы и повторы берутся из кампании. Работает для любой незакрытой кампании — черновика, запланированной, идущей или приостановленной. Правила, о которых надо знать заранее:
  • партия принимается целиком или отклоняется целиком. Одна нечитаемая строка — и не уйдёт ни один номер из партии (calls_rejected); один номер из реестра «не звонить» — тоже вся партия, но своим кодом (calls_dnc_matched), чтобы ваша система отличала «исправить данные» от «убрать этих людей из базы». Ответ несёт разбор отклонённой партии с номером загрузки и первыми строками; полный отчёт — как у любой загрузки;
  • партия принимается и тогда, когда кампания сейчас не звонит — например, стоит на паузе. Ответ скажет, что номера приняты, и назовёт причину простоя (campaign_paused); набор продолжится после возобновления;
  • обычная кампания закрывается сама, когда очередь опустела — и после этого номера в неё не принимаются вовсе. Чтобы кампания ждала номера, создайте её открытой к добавлению звонков: accepts_call_additions: true с обязательной датой окончания (не дальше 30 суток). Такую кампанию можно создать пустой, наполнять партиями и закрыть отменой либо дождаться даты. Признак задаётся при создании и потом не меняется;
  • в одной партии — не больше 1000 номеров; больше — разбивайте.
Сознательно не делается — не ищите этих возможностей, их нет:
  • отдельное событие «кампания завершилась». Состояние читается запросом прогресса или карточки кампании;
  • отдельная выдача результатов кампании с расшифровками. Результаты читаются как обычные звонки;
  • разные права у разных ключей. Ключ либо есть, либо нет; ограничение доступа по разделам не предусмотрено.