docs+защита: спека обзвона по методу ведения фичи, чужие телефоны убраны из виду гита

Дыра: golos-test/inostrannye/ содержала выгрузку «Записи разговоров» с 44 настоящими
номерами живых людей и не была в игноре — любой `git add .` затащил бы персональные
данные в историю навсегда. Закрыто правилом /golos-test/, проверено check-ignore.

Работа шла по docs/superpowers/METOD-vedeniya-fichi-v1.md (файл лежит в ветке
feat/night-dispatcher-part1): спека → ворота вслепую → правки чужой рукой → судья.

- спека фичи «Обзвон»: 72 требования, 18 развилок владельца намеренно не разрешены;
- приёмочный лист ворот написан ДО работы, а не после;
- протокол допроса: решение Р38 (счёт уходит в минус, долг остаётся за клиентом)
  и поправка к приписке про экран СМС — путь к файлу был моей догадкой, а прочитан
  следующими как слово владельца, и по нему ошиблись все трое.

Замеры смены: ворота вслепую двумя разными ходами дали 0 из 72 «умеет»; полный
прогон 4650 проверок, 4646 зелёных, красных ноль.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-08-04 11:08:18 +03:00
parent a2d68a5180
commit 06f49ce0d1
6 changed files with 2251 additions and 0 deletions
+5
View File
@@ -231,6 +231,11 @@ Ctemp*
# Личное и черновики
/моя/
/scratch-*.md
# Опыты с голосом: там чужие записи разговоров и настоящие телефоны живых людей.
# Найдено 04.08.2026: в golos-test/inostrannye/ лежит выгрузка «Записи разговоров»
# с 44 настоящими номерами (Красноярск, Москва, Петербург) — папка была не в игноре,
# и любой `git add .` затащил бы персональные данные в историю навсегда.
/golos-test/
# Инструменты / IDE / локальные демо-данные
.claire/
**/.phpstorm.meta.php
+13
View File
@@ -2824,3 +2824,16 @@ Inworld
PROMT
golosovoy
обзвонщица
# Слова методики обзвона — допрос 03–04.08.2026.
обзвонщицу
обзвонщицы
обзвоном
опенер
опенера
недозвоны
недозвонами
отзвониться
дорезервируем
дорезервирование
игноре
Авг
@@ -0,0 +1,971 @@
# Допрос: методика — как делаем Лену-обзвонщицу под клиента Лидерры
**Начат 03.08.2026.** Предмет — предложение владельца: **клиент отдаёт нам свои
записи разговоров, мы делаем из них промт для Лены.**
Решение у заказчика уже есть в виде замысла — допрашиваем замысел, а не
изобретаем заново.
Образец материала — папка `моя/ауди займы!`, три архива из Манго реального
займового бизнеса. В репозиторий не попадает: `моя/` в игноре, и там чужие
персональные данные.
## Что в образце — посчитано, не на глаз
| | |
|---|---|
| записей в трёх архивах | 137 |
| дублей между архивами | 75 |
| **уникальных разговоров** | **62** |
| входящих — звонят клиенту | **53** |
| исходящих — звонит клиент | **4** |
| мобильный-мобильный | 5 |
| период | 04–30 мая 2026, 20 рабочих дней |
| самый короткий входящий | 26 КБ |
| средний входящий | 274 КБ |
| самый длинный входящий | 1195 КБ |
---
## 🔑 Поправка владельца: это не звонки клиента, это переводы от колцентра
Я разобрал папку `ауди займы!` и решил, что клиент почти не звонит сам. **Неверно.**
Владелец объяснил устройство: **колцентр звонит человеку, пробивается, и переводит
его на менеджера клиента.** Поэтому 53 из 54 записей и обязаны быть входящими —
это не входящие звонки, это **принятые переводы уже разогретого человека.**
Значит материал в папке — только вторая половина разговора. **Холодный заход
живёт у колцентра**, и он есть: в старом кабинете `crm.bp-gr.ru`, в карточке
каждой сделки — дорожка разговора оператора, а в списке рядом его комментарий
(«Антон. ФЛ. Владелец. нужны 150-200 т.р. Перевела на менеджера»).
Урок методики: **спрашивая у клиента записи, надо спрашивать, кто на них
говорит.** «Записи разговоров» — слишком общее слово, под ним лежат три разные
вещи: холодный заход, приём перевода и входящий по рекламе. Для обзвонщицы
годится только первая.
### Что в старом кабинете — посчитано
| | |
|---|---|
| сделок за 01.0503.08.2026 | 2250 |
| с комментарием оператора | 1276 |
| Переговоры | 76 |
| Проработан / Партнёрка | 8 / 3 |
| Недозвон | 743 |
| Закрыто и не реализовано | 1098 |
| Новый | 321 |
Записи лежат прямыми файлами на `oki.needcallbuy.ru`, вида
`/skrzvn/audio/ГГГГ/ММ/ДД/<номер>.mp3`.
### 🔴 Записей больше нет — проверено, не предположено
Отобрал 127 сделок (87 успешных + 40 отказов с живым комментарием), в них нашлось
**119 карточек с записями, 164 дорожки, 197 минут** — все от одного оператора
`1operatorwr16`. Опросил **все 164 ссылки**: живых **ноль**, каждая отдаёт «файла
нет». Сервер записей при этом отвечает нормально — значит удалены сами файлы,
а не закрыт доступ. Скрин владельца это подтверждал заранее: плеер показывал
`0:00 / 0:00`.
Проверены все три двери в кабинете, все закрыты:
1. ссылки в карточках → хранилище колцентра → 404 на всех 164;
2. своя выдача кабинета `/admin/user/managers-analytics-mp3` → пустой ответ;
3. раздел «Список звонков» → пусто.
**И колцентр остановился.** Видно по обработке сделок:
| месяц | сделок | обработано | с комментарием |
|---|---|---|---|
| Май | 1693 | 1693 | 1128 |
| Июнь | 451 | 236 | 148 |
| Июль | 105 | **0** | 0 |
| Авг | 1 | 0 | 0 |
В июле не тронута ни одна. Записи не просто стёрлись — новых и не появляется.
### Что уцелело и с чем можно работать
- **1276 комментариев оператора** — по одному на каждый отработанный звонок:
чем кончилось и что успел вытащить. Выгружены в
`моя/аудио-колцентр/КОММЕНТАРИИ-оператора-колцентра.md` (30 КБ). Папка в игноре —
там имена и суммы живых людей.
- **62 записи переводов** в `моя/ауди займы!` — вторая половина разговора,
как менеджер принимает уже разогретого человека.
🔑 **Урок методики, оплаченный здесь:** у клиента в CRM хранится **ссылка**, а
файл живёт у колцентра и исчезает по их сроку. «Клиент даст записи» может
провалиться не потому, что он не хочет, а потому что **записей уже нет.**
Значит первым шагом методики должна быть не просьба, а **проверка: живы ли
файлы** — иначе можно неделю ждать выгрузку и получить пустоту.
### 🎯 Скрипт колцентра — нашёлся, и он важнее записей
Владелец передал выгрузку `lkomega.ru (1).xlsx` — это **дерево холодного
разговора колцентра «Омега» целиком**. Разобрано с сохранением клеток (ветвление
закодировано в колонках) в `моя/аудио-колцентр/СКРИПТ-колцентра-Омега.md`:
40 клеток с текстом, 19 строк, 9 колонок.
Что в нём есть:
- **заход** — «Здравствуйте, меня зовут …, я представляю Лизинговую компанию
«Омега», у нас акция: кредит под залог автомобиля или спецтехники под 3,5%.
Скажите, для вас актуально?»
- **готовые ответы ровно на те мины, что мы нашли сами:** «откуда у вас мой
номер», «откуда вы звоните», «это незаконно, вы нарушаете закон».
- **сбор сведений по одному вопросу за раз** — как обращаться → физлицо или нет →
владелец ли имущества → какая сумма.
- **развилка отказа** — предложить визитку «на будущее», а не давить.
- **перевод на менеджера** с отдельной фразой для самого менеджера и с веткой
«менеджер не ответил» — что говорить человеку.
- ГЕО (Красноярск и край), адрес, куда сдавать лид.
🔑 **Вывод для методики: звук — самый труднодоступный и наименее нужный вход.**
Записи стёрты, а дерево разговора уцелело и читается за пять минут. Просить у
клиента надо в таком порядке: **скрипт → итоги звонков → и только потом записи,
если живы.**
#### Сравнение с нашей Леной — сразу видно, где мы плохи
| | колцентр «Омега» | наша Лена сегодня |
|---|---|---|
| длина захода | ~13 секунд | **41 секунда** |
| называет компанию | **в первой фразе** | не называет вовсе |
| первый вопрос человеку | сразу, «для вас актуально?» | после всего рассказа |
| «откуда мой номер» | заготовленный ответ | выкручивается сама |
| «это незаконно» | заготовленный ответ | **не предусмотрено** |
Посторонний бросил трубку нашей Лене на 24-й секунде — то есть **до** того, как
она вообще задала первый вопрос. У колцентра к 24-й секунде человек уже ответил.
---
## Дерево развилок — очередь
1. 🔴 Материал у клиента — входящие, а Лена нужна исходящая. Что из записей берём.
2. 🔴 Чужие персональные данные: записи клиентов клиента у нас на диске.
3. 🔴 Что мы обещаем клиенту на входе и по какому признаку считаем, что вышло.
4. Сколько записей достаточно и что делать, если их мало или нет совсем.
5. Кто и чем расшифровывает записи в текст, чего это стоит.
6. Кто собирает промт: человек, машина или пополам.
7. Кто принимает готовую Лену перед боем и по какому листу.
8. Сколько занимает одно подключение клиента и что в этом узкое место.
9. Где живут промты клиентов и как их править после запуска.
10. Одна Лена на клиента или несколько под разные списки.
---
## Решили
### Р1. Скрипт пишем мы, клиент его утверждает
**Вопрос:** что берём у клиента — готовый скрипт или сырьё?
**Ответ владельца (03.08.2026):** клиент скрипт **не даст** — его надо придумать
за него, а он согласует. От клиента нужны три вещи:
1. **его успешные продажи** — сырьё, на котором мы учимся;
2. **цель обзвона** — например «выявить потребность»;
3. **целевой результат и что делать иначе** — например успех = перевод на его
менеджера, отказ = СМС в мессенджер, и так далее.
**Почему это меняет всё:** я собирался вытягивать из клиента материал и делать
из него слепок его же разговора. Правильный порядок обратный — **мы приносим
готовое дерево разговора, клиент правит.** Клиент не сценарист; просить у него
скрипт — значит просить работу, которой он не умеет и за которой пришёл к нам.
Заодно снимается зависимость от записей: они у подрядчика и исчезают
(см. выше — все 164 стёрты), а цель и результат клиент назовёт словами за пять
минут.
### Р2. Сырьё берём двумя путями на выбор — что есть у клиента
**Вопрос:** в каком виде брать «успешные продажи», если архив записей ненадёжен?
**Ответ владельца (03.08.2026):** пути **(а) архивные записи** и **(б) снимаем
сами с продавца** — **альтернативные**, не обязательные оба. Что у клиента есть,
тем и пользуемся. Путь (б) владельцу пока не ясен до конца — принят **как модель,
на пробу**.
Значит методика не имеет единственного входа: она обязана работать и когда
записи есть, и когда их нет ни одной.
**Открыто:** судьба пути **(в) — письменные итоги сделок из CRM клиента.**
Я предлагал его обязательным довеском к обоим путям; владелец про него не
высказался. Спросить отдельно.
### Р3. Вход только три вещи: аудио, сайт, задача
**Ответ владельца (03.08.2026):** «Съём с продавца» — **отбой**, не годится.
Итоги сделок из CRM — **нет**. Берём **только**:
1. **аудио успешных продаж** клиента;
2. **его сайт**;
3. **задачу** — что стоит перед нами в части **выявления потребности** у
потенциального клиента.
Р2 этим переписан: альтернативных путей больше нет, путь (б) закрыт.
Я один раз предупредил, что архив аудио ненадёжен — у этого клиента живых нулю
из 164. Владелец решение подтвердил; к вопросу не возвращаемся.
### Р4. Аудио — это ХОЛОДНЫЙ разговор; из него скрипт, но скрипта мало
**Уточнение владельца (03.08.2026):** клиент даёт запись разговора **с холодным
клиентом**, а не половину перевода, как в присланной папке. То есть на входе
у нас, по сути, **готовый скрипт**.
**Но скриптом дело не кончается.** Лене нужны **более широкие знания** — чтобы
она не терялась, если разговор ушёл не туда, и **умела его поддержать**.
Значит наставление Лены состоит из двух разных вещей, и путать их нельзя:
| | откуда | зачем |
|---|---|---|
| **скрипт** | из холодного аудио | ведёт разговор по цели, до перевода |
| **широкие знания** | шире аудио | чтобы не потеряться на неожиданном вопросе |
Мой прежний разбор «читаем аудио задом наперёд, вытаскиваем список фактов»
(вопрос 4, вариант «б») этим **снят**: он строился на том, что аудио — разговор
менеджера. Аудио холодное, значит из него берётся сам ход разговора.
### Р5. Широко знать, узко обещать
**Ответ владельца (03.08.2026):** принято по рекомендации.
Граница проходит не по «знает / не знает», а по **«это сведения» или «это
обещание»**:
- **отвечает сама:** что есть, как работает, кому подходит, где работаем,
сколько идёт по времени;
- **не отвечает никогда, даже если знает:** сколько будет стоить лично вам,
одобрят ли, на какой срок, какая выйдет ставка. Это «скажет специалист» —
и повод перевести.
Она может назвать «ставка от 3,5%» как рекламу, но не может сказать «вам
одобрят».
К скрипту прилагается **отдельный лист «чего обещать нельзя», который клиент
подписывает.** Основание — не осторожность, а замер: наша Лена сегодня в
**каждом** звонке обещает «бесплатный тест в подарок», которого в базе знаний
нет. Никто ей этого не велел — она собрала обещание сама из общих знаний.
Широкие знания без черты автоматически превращаются в обещания, а отвечать за
них будет клиент.
### Р6. Успех — живой перевод; не взяли — возврат, время и СМС **клиенту Лидерры**
**Ответ владельца (03.08.2026):** путь **(а)** — живой перевод прямо в звонке.
Полная цепочка:
1. Лена звонит человеку **по номеру из раздела «Сделки»** портала Лидерры.
2. Успех — **переводит звонок на номер клиента Лидерры** (его менеджера).
3. Менеджер занят или не взял трубку:
- **возврат к человеку:** «к сожалению, не получилось вас связать. Когда вам
удобно перезвонить?»;
- записываем удобное время;
- **СМС уходит клиенту Лидерры** — чтобы он перезвонил: номер человека, дата
и время, на которые тот согласен.
🔑 **Получатель СМС — наш платящий клиент, не человек на трубке.** Я сначала
понял наоборот и увёл разбор в согласие на рекламу — это была моя ошибка, она
здесь не при чём: переписка идёт внутри, между нами и заказчиком.
Побочно отсюда следует ответ на пункт 7 очереди: **номера для обзвона берутся
из раздела «Сделки» портала Лидерры**, а не приносятся клиентом.
🔴 **Чего сегодня нет:** перевода на живого человека **не существует вовсе.**
Лена произносит «передам живому специалисту», и на этом всё. Это самая большая
недостройка замысла — соединение придётся строить через нашу телефонию.
Отправка СМС при этом уже есть: модуль выкачен на бой 03.08.2026.
### Р7. Семь исходов звонка — перечень принят
**Ответ владельца (03.08.2026):** перечень взят целиком.
| # | исход | что делает Лена |
|---|---|---|
| 1 | перевела, менеджер взял | ведёт к переводу и отключается |
| 2 | перевела, менеджер не взял | возврат, время, СМС менеджеру (Р6) |
| 3 | согласен, но **сейчас неудобно** | назначает время, СМС менеджеру |
| 4 | **не целевой** по признакам клиента | вежливо закрывает |
| 5 | **отказ** | предлагает визитку, прощается |
| 6 | **недозвон** | закрывает, помечает на перезвон |
| 7 | **агрессия** — «это незаконно», «откуда мой номер» | отбивает по заготовке, закрывает |
Пункт 3 — **не отказ, а отложенный успех**; путать нельзя, иначе теряются самые
тёплые. Основание не теоретическое: у займов он встречается постоянно
(«удобнее принять звонок вечером в 19:00», «ожидает звонок 22.05 в 11:30»).
### Р8. Строим универсального солдата, займы — только образец
**Поправка владельца (03.08.2026):** делаем **не бота под займы**, а
универсального. Займовый бизнес — пример, на котором обкатываем.
**Что из этого следует для методики.** Она обязана давать не «промт для клиента»,
а **каркас со сменными частями**: неизменная часть одна на всех, сменная
подставляется под каждого клиента. Иначе каждый новый клиент — это работа с нуля,
и никакой методики нет.
### Р9. Клиент утверждает скрипт целиком и вправе править любую часть
**Ответ владельца (03.08.2026):** согласование — **обязательная стадия**, не
формальность. Клиент утверждает скрипт **полностью** и может его править.
**Что это меняет в границе Р8.** Каркас — это **наш готовый черновик**, а не
запретная зона. Деление «каркас / сменное» отвечает на вопрос *«что мы приносим
уже написанным»*, а не *«чего клиенту нельзя трогать»*. Править он может всё,
включая манеру — мой открытый вопрос про манеру этим снимается.
**Отсюда правило накопления, иначе каркас расползётся:** правку, которую
попросили **несколько клиентов подряд**, забираем в каркас; разовую оставляем
в сменной части этого клиента. Без этого через десять клиентов будет десять
несвязанных скриптов и никакой методики.
### Р10. Скрипт собирает машина целиком
**Ответ владельца (03.08.2026):** путь **(б)** — расшифровка, чтение сайта и
сборка скрипта делаются машиной, без ручной доводки на нашей стороне.
**Как это сходится с Р9 — и почему выбор не безрассуден.** Я возражал: машина
дописывает то, чего не было (наша Лена сама сочинила обещание «бесплатный тест
в подарок», которого в базе знаний нет). Возражение снимается тем, что
**проверяющий — клиент**: по Р9 он утверждает скрипт целиком и обязан его
править. Человеческая проверка из методики не исчезла, она **переехала к тому,
кто за неё отвечает деньгами.**
🔑 **Но отсюда жёсткое требование к стадии согласования.** Если клиенту
показать скрипт целиком одним листом, он утвердит его не глядя — и выдумка
машины уедет в бой за его подписью. Значит согласование обязано **отдельно
подсовывать опасные места**: цифры, которые Лена назовёт вслух; всё, что звучит
как обещание; признаки целевого и нецелевого.
### Р11. Порядок: утверждение на бумаге → сборка робота → прослушивание
**Ответ владельца (03.08.2026):** приёмка **не** начинается с голоса. Порядок
строго такой:
1. клиенту уходит **лист со скриптом**;
2. он **утверждает и правит**, если хочет;
3. **только потом мы собираем робота**;
4. и даём послушать.
То есть прослушивание — **не ворота утверждения, а показ после сборки**. Моё
предложение принимать голосом отклонено; отдельная страница «что она скажет
вслух» тоже не понадобилась — утверждается сам лист.
Резон понятен: собирать робота до утверждения текста — работа впустую, если
клиент перепишет полскрипта.
### Р12. Правки — через своего менеджера или техподдержку, текст открыт всегда
**Ответ владельца (03.08.2026):** никаких «кругов правок» в подключении нет.
Клиент со всеми замечаниями идёт **к своему менеджеру или в техподдержку**
обычным путём, как с любым другим вопросом по порталу.
**Текст скрипта клиент может править всегда**, не только на приёмке: у него
может смениться предложение, ставка, акция. Скрипт — **живой документ**, а не
слепок на момент запуска.
Моё деление замечаний на «ручки» и «слова» отклонено как отдельная процедура —
всё идёт одним каналом поддержки.
**Что отсюда следует по работе:** правка скрипта — не исключение, а **регулярная
операция**, и она должна быть такой же дешёвой, как правка любой настройки в
портале. Если каждая смена акции у клиента означает ручную пересборку — это
узкое место, которое проявится на первом же десятке клиентов.
### Р13. Записи клиента удаляем через 30 дней
**Ответ владельца (03.08.2026):** путь **(б)** со сроком — записи, которые
клиент отдал, **удаляются через 30 дней**.
Тридцать дней, а не сразу после сборки — запас на случай, если скрипт придётся
переделывать и понадобится вернуться к исходнику.
**Что это даёт, кроме порядка с персональными данными:** довод в продаже. Клиент,
которого просят отдать голоса его покупателей, напрягается. «Через тридцать дней
удалим» снимает возражение до того, как он его произнёс.
**Что надо построить:** сама чистка. Сегодня её нет ни для чужих записей, ни для
наших собственных — записи звонков Лены лежат в `/tmp` без срока с 5 июля.
### Р14. Просим 5–7 записей с расширением до 15, и объясняем про покрытие
**Ответ владельца (03.08.2026):** клиенту **объясняем требования и смысл
покрытия**, и просим **минимум 5–7 записей**, с возможностью расширить
**до 15**.
Покрытие — не число ради числа: нужны **разные исходы**, а не только победы.
Тридцать записей могут оказаться тридцатью недозвонами — у займов такие
составили треть всей базы (743 из 2250), и разговора в них нет вовсе. Один
хороший отказ с возражением полезнее десяти гладких успехов: успех показывает
только удачный путь, возражения — все остальные.
Объяснять это клиенту надо вслух ещё и потому, что у него будет соблазн
прислать одни победы.
### Р15. Нет записей — не беремся. 5–7 штук обязательны
**Ответ владельца (03.08.2026):** без записей **не беремся**. Пять-семь записей —
**обязательное условие входа**, а не пожелание.
Тем самым Р14 ужесточается: «просим 5–7» читать как «требуем 5–7».
Отклонены оба моих предложения обойтись без аудио — и сборка на одном сайте с
задачей, и «первый запуск как разведка, Лена сама себе производит материал».
**Что это значит по рынку — сказано один раз и закрыто:** за роботом часто идут
именно те, кто холодным обзвоном сам не занимался, и записывать им было нечего.
Такие клиенты в воронку не попадают. Владелец решение принял.
### Р16. Одна Лена на клиента, но скриптов у неё много
**Ответ владельца (03.08.2026):** путь **(а)** — **одна Лена на клиента**.
Но **скриптов у неё может быть много**.
То есть единицы разные и путать их нельзя:
- **Лена** — один робот на клиента. Голос, манера, каркас, границы обещаний.
- **Скрипт** — сменная единица. Их столько, сколько нужно: под проекты, списки,
разные предложения.
Так и должно быть по Р9 и Р12: каждый скрипт клиент утверждает и правит
отдельно, а сменилась акция — правится один скрипт, а не робот целиком.
Основание из жизни: у займового клиента в кабинете больше шести разных проектов
(`B1_79135713924`, `B2_Caranga`, `B3_Платежи`, `cabinet.caranga.ru`,
`вашзаем.рф`, `B6_78002000010`). Люди оттуда приходят разные, и первая фраза
им нужна разная — а всё после первых десяти секунд одинаково, товар-то один.
### Р17. Каталог скриптов, клиент ставит нужный в работу; обзвон автоматом по его списку
**Ответ владельца (03.08.2026):** скрипт выбирает **клиент** — из **каталога**,
ставит нужный «в работу». Обзвон идёт **автоматическим режимом по его списку
номеров**. Устройство — **как у СМС-рассылок и Директа** в портале.
Мой вариант «привязывать скрипт к проекту сделки автоматически» отклонён:
выбирает человек, а не машина.
🔴 **ПОПРАВКА 04.08.2026 — то, что написано ниже, оказалось неверным, и это
слова НЕ владельца, а моя приписка.** Оставляю её нетронутой, потому что на неё
успели опереться спека и двое проверяющих, и след ошибки должен остаться.
**Что именно не так.** В портале **два** экрана СМС-рассылок:
| экран | путь | чей |
|---|---|---|
| `/sales/sms` | `app/resources/js/views/sales/SalesSmsView.vue`, 957 строк | **наш** отдел продаж, прогрев фирм |
| `/advertising/sms` | `app/resources/js/views/advertising/AdvertisingSmsView.vue`, 2821 строка | **клиентский**, в меню «Рекламные возможности» |
Обзвон — фича **клиента**, и стоит в том же меню «Рекламные возможности», где
заглушка «ИИ колцентр». Значит образцом ему может быть только **клиентский**
экран. Я назвал внутренний — и по этому пути дальше честно мерили все.
**Чем ошибка стоила.** Спека объявила, что окно запуска образцом не подпёрто,
и внесла вопрос «по чьим часам 10:00–20:00» в открытые. На деле это **уже решено
и уже работает**: `app/app/Services/ClientSms/SmsQuietHours.php` — окно с 10:00
до 20:00 **по местному времени получателя**, со справочником поясов по субъектам
и отказом слать, когда регион номера неизвестен.
🔑 **Урок:** путь к файлу, приписанный к ответу владельца, читается следующей
сменой как слово владельца. Свои догадки в протоколе решений надо отделять
видимой границей — иначе они переживают компакт как факты.
---
**На что опираться при постройке.** Экран рассылки СМС
(`app/resources/js/views/sales/SalesSmsView.vue`) уже содержит нужный набор:
название рассылки, ниша, «кому отправляем — отметьте», текст сообщения, окно
запуска «с … по», менеджер, журнал, состояние, статус. Экран обзвона — то же
самое, только вместо текста сообщения **выбор скрипта из каталога**.
### Р18. Темп обзвона задаёт клиент, мы объясняем последствия
**Ответ владельца (03.08.2026):** путь **(а)** — **число линий задаёт клиент
сам**. Наше дело — **объяснить последствия**, а не ограничивать.
Последствия, которые обязаны быть сказаны вслух: успех у нас — **живой перевод
на менеджера**, а менеджер один. При пяти линиях Лена за час проходит около
двухсот человек; даже если согласится каждый двадцатый — это десять переводов
в час на одного человека. Он захлебнётся, и «менеджер не взял трубку» станет
не исключением, а правилом.
**Не развилка, а условие:** звонить только в окно, когда менеджер клиента на
месте. Иначе переводить некому и каждый второй звонок кончается СМС вместо
разговора.
### Р19. Новое поле «Обзвон» в сделке: запись + свой статус; в таблице — что делали с номером
**Ответ владельца (03.08.2026):** в сделке заводится **новое поле «Обзвон»**.
**Что в нём лежит:**
1. **аудиозапись разговора**;
2. **дополнительный статус** — что именно вышло: переведено · переведено
неуспешно · перезвонить, дата и время · СМС отправлено в мессенджер · и так
далее.
Это **отдельный статус**, не тот, что у сделки: у сделки своя воронка, у обзвона
своя.
**А в таблице сделок — пометки, что вообще делали с этим номером:** звонили,
слали СМС, крутили директ. Чтобы по строке было видно всю историю касаний, а не
только последнее.
### Р20. Запись должна быть сквозной: Лена + человек + менеджер клиента
**Уточнение владельца (03.08.2026):** аудиозапись обязана содержать **весь
разговор целиком** — и нашу часть, и человека, чей номер, **и менеджера клиента
после перевода**. Назначение прямое: **учить бота и развивать промт**.
Это не то же самое, что пишется сейчас: сегодня мост пишет только участок до
перевода, потому что перевода вовсе нет. Сквозная запись через передачу — часть
стройки перевода, а не отдельная задача.
🔑 **И это единственный способ узнать, что было ПОСЛЕ Лены.** Сейчас мы видим
только свою половину и не знаем, чем кончилось у менеджера. Тот, кто слушает
обе половины, может сказать, какие Ленины разговоры приводят к сделке, а какие
только к переводу.
**Открыто, спросить отдельно:**
- **Срок хранения НАШИХ записей.** Р13 (тридцать дней) — про чужие записи,
которые клиент дал на сборку скрипта. Свои записи обзвона нужны для обучения,
а значит долго. Срок не назван.
- **Предупреждение о записи.** Пишется живой человек и менеджер клиента.
Говорить ли им это вслух в начале разговора — не решали.
### Р21. О записи предупреждаем только тех, кто спросил
**Ответ владельца (03.08.2026):** путь **(в)** — в начале разговора о записи не
объявляем; отвечаем, **только если человек спросит**.
Я рекомендовал предупреждать всегда; решение принято другое, к вопросу не
возвращаемся.
**Что из этого следует по работе:** в каркас добавляется **четвёртая заготовка**
— на вопрос «вы что, записываете разговор?». Рядом с тремя уже имеющимися
(«откуда у вас мой номер», «откуда вы звоните», «это незаконно»). Без неё Лена
будет выкручиваться сама на вопросе, который при таком порядке обязательно
прозвучит.
### Р22. Свои записи: звук полгода, дальше только обезличенный текст
**Ответ владельца (03.08.2026):** путь **(в)** со сроком **шесть месяцев**.
Звук обзвона хранится полгода, после чего удаляется; остаётся **расшифровка
без имён и номеров**, и она живёт дальше.
Разграничение сроков в методике теперь такое:
| что | срок |
|---|---|
| записи клиента, отданные на сборку скрипта (Р13) | **30 дней** |
| наши записи обзвона — звук | **6 месяцев** |
| расшифровка обзвона без имён и номеров | бессрочно, это учебный материал |
Основание для замены звука текстом не теоретическое: у займов **звук пропал
весь, а работа не встала** — уцелевшие 1276 текстовых итогов оказались полезнее,
чем 197 минут стёртых записей.
### Р23. Опасную правку клиента сопровождаем одной строкой предупреждения
**Ответ владельца (03.08.2026):** путь **(б)** — предупреждаем письменно один
раз и делаем так, как клиент сказал.
Запрещать нельзя: по Р9 он правит всё, скрипт его и отвечает он. Но и молчать
нельзя — через неделю он услышит, как Лена мнётся на вопросе про номер, и придёт
с претензией. Одна строка в ответе на правку («вы убрали ответ на самый частый
вопрос — она на нём растеряется») делает его выбор осознанным и оставляет след.
### Р24. Уведомление менеджеру клиента — электронной почтой, а не СМС
**Поправка владельца (03.08.2026):** **СМС — дорого.** Уведомление, что надо
перезвонить (номер человека, дата и время договорённости), уходит менеджеру
клиента **электронной почтой**.
Этим правится Р6: канал был назван СМС, теперь почта. Сам порядок — возврат к
человеку, вопрос об удобном времени, уведомление менеджеру — не меняется.
Почта тут и уместнее по существу: получатель — наш платящий клиент, у него есть
адрес, письмо переживает рабочий день и в нём помещается больше, чем в СМС.
Почтовый канал в портале уже есть — Unisender Go.
### Р25. Наружу мы не пишем вовсе: письмо клиенту с указанием, что сделать
**Решение владельца (03.08.2026):** человеку на трубке **мы не отправляем
ничего** — ни СМС, ни сообщений. Всё уходит **письмом клиенту Лидерры**, и в
письме сказано, **что ему сделать**:
- **послать визитку в мессенджер** — если человек отказался, но согласился её
получить;
- **перезвонить такому-то в такое-то время** — если перевод не состоялся или
человеку было неудобно.
Отправляет и звонит **сам клиент**, со своего номера и своего мессенджера.
**Чем это хорошо, кроме экономии:**
- **снимает мину мессенджеров целиком.** Написать первым по номеру телефона
нельзя ни в Телеграм, ни в WhatsApp — а клиент со своего личного аккаунта
напишет свободно, потому что это его обычная переписка;
- **снимает вопрос согласия на рекламу.** Мы не рассылаем ничего чужим людям;
переписка идёт только с тем, кто нам платит;
- **убирает расход на СМС.** Наш расход был 5,03 ₽ за штуку
(`SMS_MTS_PRICE_KOP=503`); почта в портале уже есть и стоит копейки;
- **возвращает клиенту касание.** Он сам пишет и сам звонит — значит контакт
остаётся живым у него, а не у робота.
Этим окончательно правятся Р6, Р7 (исход 5) и Р19: везде, где стояло «СМС»,
теперь **письмо клиенту с указанием**, а не наша отправка наружу.
### Р26. Тариф: 2 ₽ за соединение + 10 ₽ за минуту полного разговора; настраивается в админке
**Решение владельца (03.08.2026):**
| | |
|---|---|
| установление соединения | **2 ₽** |
| минута разговора | **10 ₽**, тарификация **поминутная** |
| что считается разговором | **полный**, включая разговор **менеджера клиента** после перевода |
| где меняется | **в админке**, тариф настраиваемый |
**Ключевое отличие от обычной телефонии — минуты считаются до конца звонка,
а не до передачи.** Если перевод состоялся, время разговора менеджера с
человеком тоже оплачивается: линию держим мы, запись ведём мы (Р20), и именно
сквозная запись потом учит бота.
Я возражал против поминутной оплаты: при ней мы теряем деньги, когда делаем
Лену короче, а весь день ушёл именно на сокращение опенера. Владелец решение
принял; к вопросу не возвращаемся. **Побочно возражение слабеет само:** раз
оплачивается и разговор менеджера, доля Лениных минут в счёте невелика, и
сокращение её реплик на выручку почти не влияет.
**Опирается на готовое.** Кошелёк уже умеет всё нужное
(`AdWalletService`): пополнить, **заморозить** под кампанию, **списать** по
факту с ключом от задвоения, **вернуть**. Плюс ворота `AdWalletGate::isSolvent`.
Отдельного денежного механизма строить не надо — нужен только счётчик минут и
тариф.
### Р27. Соединение — это человек взял трубку; бросил через секунду — деньги наши
**Уточнение владельца (03.08.2026):**
- **«установление соединения» = человек снял трубку.** Не дозвонились, не взяли,
сброс до ответа — **не платит никто**;
- **бросил через секунду — 2 ₽ и 10 ₽ всё равно наши.** Неполная минута
считается полной.
Значит **минимальный чек за любой отвеченный звонок — 12 ₽**, дальше по 10 ₽ за
каждую начатую минуту.
Прикидка на тысячу номеров: ответят около шестисот (у займов треть базы —
недозвоны). Шестьсот соединений это 1 200 ₽; при среднем разговоре в полторы
минуты тарифицируется по две — ещё 12 000 ₽. Итого около **13 200 ₽ за тысячу
номеров, примерно 22 ₽ за отвеченный звонок.**
Обе мелочи в счёте этим закрыты: и недозвон, и округление.
### Р28. Деньги морозим заранее — по 12 ₽ на номер, как в Директе и СМС
**Решение владельца (03.08.2026):** тот же принцип, что в рекламе и рассылках —
**сначала резерв, потом работа**.
- пришла пачка номеров в авторежиме — **резервируем по 12 ₽ на вызов**;
- **не хватило — письмо клиенту**, обзвон не начинается;
- клиент просит обзвонить свои номера — **резервируем по 12 ₽ на каждый** и
звоним.
12 ₽ — это минимальный чек по Р27: 2 ₽ соединение плюс первая минута.
**Опирается целиком на готовое.** У кошелька уже есть всё: `freeze` под заказ,
`release` при отмене, `charge` по факту с ключом от задвоения, `refund`, таблица
`ad_wallet_holds` и **готовое письмо о нехватке денег**
(`AdWalletLowBalanceNotification` + шаблон `ad_wallet_low_balance.blade.php`).
Строить механизм не надо — надо им воспользоваться.
### Р29. Резерв остаётся 12 ₽; перевалили — дорезервируем на ходу или останавливаемся
**Ответ владельца (03.08.2026):** **12 ₽ — с головой**, морозить с запасом не
надо. Мой вариант «резервировать по три минуты» отклонён.
Если разговор всё-таки перевалил за резерв:
- **есть свободный остаток — дорезервируем на ходу.** Смысл не в защите от
минуса, а в том, **чтобы другие кампании не утянули одеяло на себя**: деньги
на счету общие, и параллельный обзвон может их выбрать;
- **остатка нет — выбираем всё, что есть, и останавливаемся**;
- **перевалить в одном звонке не страшно** — разговор не режем.
То есть разговор всегда доводится до конца, а тормозится **следующий** номер,
а не текущий.
### Р30. Звоним с 10:00 до 20:00 — как СМС
**Решение владельца (03.08.2026):** окно обзвона **с 10 утра до 20 вечера**,
по образцу рассылок СМС.
Это уточняет Р18: там окно было «когда менеджер клиента на месте» — теперь есть
и общая рамка, за которую не выходим никогда.
### Р31. До 10 попыток дозвона, каждая с другого номера
**Решение владельца (03.08.2026):** не взяли трубку — **звоним ещё, до десяти
раз, и каждый раз с другого номера.**
**Что для этого нужно:** пул номеров у Манго и очередь повторов. Сегодня номер
один.
**Сказано один раз и закрыто:** десять попыток с разных номеров — ровно тот
рисунок, по которому операторы помечают номера как спам, а люди жалуются.
Владелец решение принял.
### Р33. Повтор раз в час, перенос на следующий день; клиент может реже, но не чаще
**Решение владельца (03.08.2026):**
- по умолчанию — **попытка раз в час**;
- **не успели за день — переносим на следующий**;
- **клиент выбирает промежуток сам**, но **не чаще одного раза в час** — это
жёсткий предел, ниже которого настройка не пускает;
- о том, как это работает, клиента **предупреждаем**.
🔑 **Числа сходятся сами:** окно 10:0020:00 (Р30) — это десять часов, раз в
час — ровно десять попыток (Р31). Один полный день обзвона исчерпывает лимит,
остаток переезжает на завтра.
Мой вариант «2–3 попытки в день, разнести на 3–5 дней» отклонён; предел «не
чаще часа» принят как единственное ограничение.
### Р32. Обратный звонок тоже принимаем
**Решение владельца (03.08.2026):** если человек **перезванивает** на номер, с
которого ему звонили, — звонок надо принять.
**Что из этого следует:** приёмщица (`lena-vhodyashchie`) должна **узнавать
человека по номеру** и продолжать разговор с того места, где он оборвался, а не
начинать с нуля. У неё уже есть своя служба и свой промт, но связи со сделкой и
с историей обзвона нет.
При десяти номерах (Р31) принимать надо на **каждом** из них — иначе человек
перезвонит на тот, с которого ему звонили в последний раз, и попадёт в пустоту.
### Р34. Перезвонившего узнаём и продолжаем; второй обратный звонок подряд не берём
**Решение владельца (03.08.2026):** путь **(б)** — приёмщица **узнаёт человека
по номеру**, находит сделку, видит историю обзвона и **продолжает с того места,
где оборвалось**, а не начинает с нуля.
**Но второй обратный звонок подряд не принимаем.** Причина прямая: мы звонили
этому человеку несколько раз **с разных номеров** (Р31), у него в пропущенных
их тоже несколько — и он может отзвониться на каждый. Без этого правила один
человек получил бы два разговора подряд про одно и то же.
То есть: **одна сделка — один принятый обратный звонок**; следующий подряд не
берём.
### Р37. Свой номер у человека один: на нём отвечаем всегда, на остальных закрываем
**Решение владельца (04.08.2026):** правило не по времени, а **по номеру**.
Картина, которую оно лечит: мы звонили десять раз с десяти номеров (Р31).
Вечером человек садится разбирать пропущенные и **обзванивает все десять**. Без
правила он десять раз услышал бы одно и то же.
**Правило:**
- разговор состоялся на одном из наших номеров — **этот номер становится «его»**,
и **на нём мы отвечаем ему всегда**;
- на остальных девяти его номер **закрываем** — дозвонится, но разговора не
будет.
**Доводка на случай, когда разговора не было вовсе** (все десять раз не брал
трубку): «его» номера ещё нет, значит им становится **тот, на который он
перезвонил первым**, а остальные закрываются в тот же миг.
Моё предложение «молчать час после разговора» этим снимается: время тут ни при
чём, и правило по номеру заодно решает случай «отказался, а через три дня
передумал» — такой звонок придёт на свой номер и будет принят.
### Р35. Вечерний обратный звонок принимаем, но не переводим
**Решение владельца (04.08.2026, разговор шёл через полночь):** путь **(в)** —
приёмщица отвечает **всегда, круглосуточно**, но **вне окна 10:0020:00 не
переводит**: собирает сведения и договаривается о времени, дальше письмо клиенту
с указанием перезвонить.
Резон: человек, сам перезвонивший вечером, — лучший контакт за день, не ответить
ему значит выбросить то, ради чего затевался обзвон. Но в одиннадцать вечера
менеджер клиента спит, и «сейчас переведу» упрётся в пустоту.
**Стоит это ничего:** приёмщица уже слушает линию круглосуточно — ограничивать
её пришлось бы отдельной работой, то есть вариант «молчать вечером» был бы
**дороже**, а не дешевле.
**Тонкость для скрипта:** вечером первая фраза должна быть иной — не «переведу
на менеджера», а сразу «давайте договоримся на завтра». Иначе она сама загонит
себя в обещание, которого не сдержит.
### Р36. Обратный звонок тарифицируется так же: 2 ₽ плюс минуты
**Решение владельца (04.08.2026):** путь **(б)** — входящий считается **по тому
же тарифу**, что исходящий: 2 ₽ за соединение плюс 10 ₽ за каждую начатую
минуту.
Я предлагал не брать два рубля, раз соединение установил человек, а не мы;
решение принято другое. Тариф единый — так проще и клиенту, и счёту: одна
формула на все звонки, без исключений и объяснений, почему тут считается иначе.
### Р38. Счёт может уйти в минус: разговор доводим, долг остаётся за клиентом
**Решение владельца (04.08.2026):** путь **(а)** — **уходим в долг**.
Развилка вскрылась при написании спеки и раньше не задавалась. Два прежних
решения по отдельности разумны, а вместе дают дыру:
- **Р26** — минуты считаются **до конца звонка**, включая разговор менеджера
клиента после перевода;
- **Р29** — **разговор не режем**, тормозится следующий номер.
Значит остаток 12 ₽ плюс разговорчивый менеджер на сорок минут дают счёт
в 402 ₽ при пустом кошельке.
**Как теперь:** списываем всё, что наговорили, **счёт уходит в минус**,
и **следующий обзвон не стартует, пока клиент не пополнит**.
Отклонены: «не переводить без запаса на полчаса» (клиент теряет самый горячий
контакт из-за нехватки трёхсот рублей) и «прощать перерасход» (разговор уже
состоялся и стоил нам денег у поставщика связи — прощать значит платить за
клиента из своего кармана).
🔴 **Чего это решение НЕ закрывает:** потолка убытка на один звонок по-прежнему
нет. Сорок минут менеджера — 400 ₽, четыре часа — 2 400 ₽, и остановить это
нечем, потому что разговор резать нельзя. Спросить отдельно.
---
## Как складывается методика — собрано из решений Р1–Р37
**1. Вход. Без этого не беремся (Р3, Р15).**
- **5–7 записей** холодных разговоров, при нужде до 15 (Р14, Р15);
- покрытие **разных исходов**, а не только побед — объясняем вслух (Р14);
- **сайт** клиента;
- **задача**: что выявляем, что считаем успехом, что делаем при отказе.
**2. Сборка скрипта — машина целиком (Р10).** Расшифровка, чтение сайта, сборка:
неизменный каркас плюс сменные части (Р8).
**3. Согласование — клиент (Р9, Р11, Р23).** Уходит **лист со скриптом**. Клиент
правит и утверждает. Вычеркнул защитное — одна строка предупреждения, дальше
как он сказал.
**4. Сборка робота — только после утверждения (Р11).** Скрипт кладётся в
**каталог** (Р17).
**5. Показ.** Клиент слушает готовую Лену (Р11). Это показ, а не приёмка.
**6. Деньги вперёд (Р28, Р29).** Под пачку номеров **резервируется по 12 ₽ на
вызов**. Не хватило — **письмо клиенту**, обзвон не стартует. Разговор перевалил
за резерв — дорезервируем из свободного остатка, чтобы соседние кампании его не
выбрали; остатка нет — доводим разговор и **останавливаемся на следующем
номере**.
**7. Запуск (Р17, Р18, Р30).** Клиент ставит нужный скрипт из каталога **в
работу**, выбирает **список номеров**, задаёт **число линий** — последствия мы
объясняем. Окно — **с 10:00 до 20:00** и только когда менеджер клиента на месте.
**8. Дозвон (Р31, Р33).** Не взяли — **до десяти попыток, каждая с другого
номера**, **раз в час**. Не успели за день — переносим на следующий. Клиент
может выбрать реже, **чаще часа — нельзя**.
**9. Разговор (Р5, Р7).** Широко знать, узко обещать. Семь исходов. Успех —
**живой перевод** на менеджера; не взяли — возврат к человеку, время, и
**письмо клиенту** (Р24, Р25).
**10. Наружу мы не пишем (Р25).** Ни СМС, ни мессенджеров чужим людям. Всё —
**письмом клиенту с указанием, что сделать**: послать визитку в мессенджер или
перезвонить ко времени. Отправляет и звонит он сам.
**11. Обратный звонок (Р32, Р34, Р35, Р37).** У человека **один «свой» номер**
тот, где состоялся разговор; на нём отвечаем **всегда**, на остальных девяти его
закрываем. **Узнаём по сделке** и продолжаем с места обрыва. Вечером и ночью —
**отвечаем, но не переводим**: собираем сведения и договариваемся на завтра.
**12. Счёт (Р26, Р27, Р36).** **2 ₽** за снятую трубку плюс **10 ₽ за каждую
начатую минуту**, включая разговор менеджера после перевода. Обратные звонки —
**по тому же тарифу**. Недозвон бесплатен, минимальный чек **12 ₽**. Тариф
настраивается в админке.
**13. После звонка (Р19, Р20).** В сделке — поле **«Обзвон»**: **сквозная
запись** (Лена + человек + менеджер) и **свой статус**. В таблице — пометки, что
делали с номером: звонили, писали, крутили директ.
**14. Хранение (Р13, Р22).** Записи клиента — 30 дней. Свой звук — 6 месяцев,
дальше обезличенная расшифровка бессрочно.
**15. Развитие (Р12, Р9, Р23).** Правки — через своего менеджера или
техподдержку, в любой момент. Опасную правку сопровождаем одной строкой
предупреждения. Правку, которую просят несколько клиентов подряд, забираем в
каркас.
### Чего для этого сегодня нет — список стройки
| | что | состояние |
|---|---|---|
| 1 | **перевод на живого человека** | 🔴 не существует вовсе, Лена только обещает |
| 2 | **сквозная запись через перевод** | 🔴 нет; пишется только участок до перевода |
| 3 | **поле «Обзвон» в сделке** и свой статус | 🔴 нет |
| 4 | **пометки касаний в таблице сделок** | 🔴 нет |
| 5 | **каталог скриптов** и постановка «в работу» | 🔴 нет |
| 6 | **автообзвон по списку**, число линий, окно | 🔴 нет |
| 7 | **чистка записей по сроку** — 30 дней и 6 месяцев | 🔴 нет ни для чужих, ни для своих |
| 8 | **четвёртая заготовка** — «вы записываете разговор?» | 🔴 нет (следствие Р21) |
| 9 | **опенер 41 секунда** | 🔴 негоден: посторонний бросил трубку на 24-й |
| 10 | сборка скрипта машиной из аудио и сайта | 🔴 нет |
| 11 | **письмо клиенту с указанием, что сделать** — визитка в мессенджер или перезвонить ко времени (Р25) | 🔴 нет; почтовый канал Unisender Go в портале есть |
| 12 | **счётчик минут разговора** и списание из кошелька по тарифу (Р26, Р27) | 🔴 нет |
| 13 | **тариф обзвона в админке** — 2 ₽ и 10 ₽, настраиваемые | 🔴 нет |
| 14 | кошелёк: пополнение, заморозка, списание с ключом, возврат | ✅ есть, `AdWalletService` |
| 15 | **пул номеров** и очередь повторов — до 10 попыток с разных номеров (Р31) | 🔴 нет, номер один |
| 16 | **приём обратного звонка на каждый номер**, с узнаванием человека по сделке (Р32) | 🔴 приёмщица есть, связи со сделкой и историей обзвона нет |
| 16а | **привязка «свой номер»** — на нём отвечаем всегда, на остальных закрываем (Р37) | 🔴 нет |
| 17 | **окно 10:0020:00** и дорезервирование на ходу (Р29, Р30) | 🔴 нет |
| 18 | сама Лена: голос, задержки, мины, кэш | ✅ работает |
**СМС в методике не участвует вовсе** (Р25): наружу мы не пишем, а клиенту шлём
почтой. Выкаченный 03.08 модуль СМС здесь не нужен.
---
## Отрезали и почему
- **«Клиент отдаёт свой скрипт, мы его переносим на Лену»** — отрезано Р1.
Клиент скриптом не владеет и писать его не будет. Скрипт колцентра «Омега»,
который у нас на руках, — везение (он был у подрядчика), а не правило.
- **«Строим методику вокруг архива записей»** — отрезано замером: из 164
найденных дорожек живых ноль, а колцентр остановился в июле. Архив чужого
подрядчика — ненадёжный вход, на нём методику ставить нельзя.
- **«Требовать записи холодных исходящих, иначе не беремся»** — отрезано: у
большинства клиентов их нет, потому они и приходят за роботом. Требовать
ровно то, чего у клиента нет, — способ не продать.
---
## Осталось открытым
- **Путь (в) — письменные итоги сделок из CRM клиента.** Отклонён при Р3
(«нет»), но модель Б, которая на нём держалась, тоже отклонена. Нужен ли он
как подпорка к аудио — не спрашивали заново.
- **Правка клиента, которая вредит ему же.** Если он вычеркнет заготовку на
«откуда у вас мой номер», Лена встанет на самом частом вопросе. Предупреждать
вслух или молча соглашаться — не решено.
- **Записи чужих клиентов у нас на диске.** Клиент отдаёт аудио разговоров с
живыми людьми. Срока хранения, порядка удаления и обезличивания нет.
Не обсуждали.
- **Сколько аудио нужно** и что делаем, если клиент принёс три записи вместо
тридцати.
- **Кто собирает скрипт** — человек, машина или пополам.
- **Приёмка перед боем** — кто и по какому листу принимает готовую Лену.
- **Одна Лена на клиента или несколько** под разные списки.
- **Где живут скрипты клиентов** и как их править после запуска.
@@ -0,0 +1,314 @@
# ПРОМТ следующей смене — голосовая Лена: методика под клиентов и стройка
**Написан в ночь с 03 на 04.08.2026.** Продолжает
[2026-08-03-PROMT-golosovoy-kanal-smena-3.md](2026-08-03-PROMT-golosovoy-kanal-smena-3.md):
там был только сам робот, здесь — **методика подключения клиентов** и список того,
что под неё надо построить.
---
## 0. ЧИТАТЬ В ЭТОМ ПОРЯДКЕ
1. 🔴 **Этот файл.**
2. 🔴 [docs/grilling/2026-08-03-metodika-lena-pod-klienta.md](../grilling/2026-08-03-metodika-lena-pod-klienta.md)
**37 решений владельца**, что отрезано и почему, готовая методика из 15 шагов,
список стройки. Это главный документ, он важнее всего остального.
3. [2026-08-03-PROMT-golosovoy-kanal-smena-3.md](2026-08-03-PROMT-golosovoy-kanal-smena-3.md)
— состояние робота, замеры ручек, грабли прошлой смены.
4. [2026-08-03-HANDOFF-lena-na-asterisk.md](2026-08-03-HANDOFF-lena-na-asterisk.md)
— устройство моста и телефонии.
5. [2026-08-02-inworld-ruchki-vse-nastroyki.md](2026-08-02-inworld-ruchki-vse-nastroyki.md)
— все ручки поставщика.
**Ключ Inworld** — только на сервере, `~/lena-inworld/.kluch`, права 600.
В репозитории его нет и быть не должно.
**Доступ в старый кабинет `crm.bp-gr.ru`** — логин и пароль **у владельца**,
в документы не кладутся.
---
## 1. ЧТО ИЗМЕНИЛОСЬ ЗА СМЕНУ
### Мост лёг в репозиторий
Коммит **`51ca003c`**, ветка `feat/prospects-manual-testing-kp`. Легло шесть файлов:
| файл | что |
|---|---|
| `bots/lena-golos/most.py` | сам мост, 660 строк |
| `bots/lena-golos/tishina.py` | датчик мёртвого воздуха по записи |
| `bots/lena-golos/storozh_mosta.sh` | сторож подмены файла |
| `bots/lena-golos/README.md` | как запускается, где ключ |
| `docs/superpowers/2026-08-03-PROMT-golosovoy-kanal-smena-3.md` | промт прошлой смене |
| `cspell-words.txt` | четыре слова в словарь |
Слепок моста в истории **побайтово равен** тому, что работает на сервере:
`141964de203fedd9b0ce9b9aa2c7d376`, 39 601 байт. Сверено в трёх местах.
**Не отправлено на сервер** — пуш держит сторож ссылок, 11 битых ссылок в чужих файлах.
### Филлеры выключены
🔴 **Они были включены вопреки прямому указанию владельца** «филлеры убрать».
Файл настройки называется `bez-fillerov.conf`, а внутри стояло `FILLERY=1`.
В живом звонке это слышно: «Секунду.», «Так, секунду.», «Так, минутку.» перед
**каждой** репликой, три из трёх, и слипшись без пробела.
Выключено на **обеих** Ленах 04.08: `FILLERY=0`, службы перезапущены.
🔑 **Урок:** имя файла настройки — не доказательство её содержимого. Сверять надо
`systemctl show <служба> -p Environment`, а не название.
---
## 2. МЕТОДИКА — ЧТО РЕШЕНО
Полностью — в протоколе допроса (см. §0 п.2). Здесь только костяк, чтобы
не открывать протокол ради общей картины.
**Вход.** Клиент даёт **три вещи и только их**: 57 записей **холодных**
разговоров (до 15), сайт, задачу. **Нет записей — не беремся.** Записи удаляем
через 30 дней.
**Скрипт пишем мы, не клиент.** Клиент скриптом не владеет и писать его не будет.
Собирает **машина целиком** — расшифровка, чтение сайта, сборка. Проверяющий —
**клиент**: он утверждает лист и правит, и только потом собираем робота.
**Каркас и сменные части.** Каркас один на всех: семь исходов, заготовки на мины,
устройство захода, правило «широко знать, узко обещать». Сменное — название,
предложение, список выявляемых фактов, признаки целевого, цифры, лист запретов,
номер для перевода. Правку, которую просят несколько клиентов подряд, забираем
в каркас.
**Одна Лена на клиента, скриптов у неё много.** Клиент ставит нужный из каталога
в работу, выбирает список номеров, задаёт число линий.
**Дозвон.** С 10:00 до 20:00. До десяти попыток, **раз в час**, каждая **с
другого номера**. Не успели — переносим на завтра. Клиент может реже, чаще часа
нельзя.
**Успех — живой перевод** на менеджера клиента. Не взяли — возврат к человеку,
узнаём удобное время, **письмо клиенту** с указанием перезвонить.
**Наружу мы не пишем ничего.** Ни СМС, ни мессенджеров чужим людям. Всё — письмом
клиенту, а шлёт и звонит он сам.
**Обратный звонок.** У человека **один «свой» номер** — тот, где состоялся
разговор. На нём отвечаем всегда, на остальных девяти закрываем. Узнаём по сделке
и продолжаем с места обрыва. Вечером отвечаем, но не переводим.
**Счёт.** **2 ₽** за снятую трубку + **10 ₽ за каждую начатую минуту**, включая
разговор менеджера после перевода. Обратные — по тому же тарифу. Недозвон
бесплатен, минимальный чек **12 ₽**. Резерв **12 ₽ на номер вперёд**; перевалили —
дорезервируем из остатка, нет остатка — доводим разговор и останавливаем
следующий номер. Тариф настраивается в админке.
**Записи.** Сквозная — Лена + человек + менеджер, ради обучения. Свой звук
6 месяцев, дальше обезличенная расшифровка бессрочно. О записи предупреждаем
только тех, кто спросил.
---
## 3. СТРОЙКА — ЧЕГО НЕТ
Полная таблица в протоколе. Красным то, без чего методика не работает вовсе:
1. 🔴 **перевода на живого человека не существует** — Лена только обещает;
2. 🔴 **сквозной записи через перевод** нет;
3. 🔴 **поля «Обзвон»** в сделке и его статуса нет;
4. 🔴 **пометок касаний** в таблице сделок нет;
5. 🔴 **каталога скриптов** и постановки «в работу» нет;
6. 🔴 **автообзвона по списку**, линий и окна нет;
7. 🔴 **пула номеров** и очереди повторов нет — номер один;
8. 🔴 **привязки «свой номер»** нет;
9. 🔴 **счётчика минут** и списания по тарифу нет;
10. 🔴 **тарифа в админке** нет;
11. 🔴 **письма клиенту с указанием** нет;
12. 🔴 **чистки записей по сроку** нет ни для чужих, ни для своих;
13. 🔴 **заготовки «вы записываете разговор?»** нет;
14. 🔴 **сборки скрипта машиной** нет;
15. 🔴 **опенер 41 секунда** — негоден.
Готово и трогать не надо: **кошелёк** (`AdWalletService` — заморозка, списание с
ключом, возврат, письмо о нехватке) и **сама Лена**.
**Три дырки не в стройке, а в знании:**
- 🔴 **сколько нам стоит движок за звонок** — ни разу не сверяли со счётом
поставщика. Пока не измерим, 12 ₽ назначены вслепую;
- 🔴 опенер 41 секунда: посторонний бросает трубку на 24-й;
- 🔴 без перевода не проверить ни тариф, ни сквозную запись.
---
## 4. ЧТО БЫЛО СДЕЛАНО РУКАМИ — И ЧТО ИЗ ЭТОГО СЛЕДУЕТ
### Живой звонок владельцу
Набирали Леной-обзвонщицей на его мобильный. Разговор состоялся, 94 секунды.
| | |
|---|---|
| первый звук | 2,0 с (первый ход, сессия из запаса) |
| дальше | **0,60 и 0,70 с** — почти как человек |
| кэш наставления | **9598%** (12 160 и 12 544 из 12 700) |
| расход за разговор | около 38 тысяч единиц |
| опенер | **41,3 с**, 691 знак |
| имя | не выдумала, поздоровалась без обращения ✅ |
Владелец высидел опенер до 46-й секунды — потому что это его робот. Посторонний
в прошлый раз бросил на 24-й.
### Старый кабинет: записи колцентра мертвы
Владелец дал доступ в `crm.bp-gr.ru` и просил надёргать записи разговоров
колцентра. **Результат: живых записей ноль.**
Проверено, а не предположено:
- собрано **2250 сделок** за 01.0503.08.2026, у **1276** есть комментарий оператора;
- отобрано 127 (87 успешных + 40 отказов с живым комментарием), в них
**119 карточек с записями, 164 дорожки, 197 минут**, все от оператора `1operatorwr16`;
- **опрошены все 164 ссылки — 404 на каждой.** Сервер записей при этом отвечает
нормально: удалены сами файлы;
- три двери проверены и закрыты: ссылки в карточках, своя выдача кабинета
`/admin/user/managers-analytics-mp3`, раздел «Список звонков»;
- **колцентр остановился**: в июле не обработана ни одна из 105 сделок, в мае —
все 1693.
**Что уцелело и лежит в `моя/аудио-колцентр/`** (папка в игноре, там чужие ПДн):
| файл | что |
|---|---|
| `КОММЕНТАРИИ-оператора-колцентра.md` | 1276 итогов звонков, сгруппированы по статусу |
| `СКРИПТ-колцентра-Омега.md` | **полное дерево холодного разговора**, 40 клеток |
🔑 **Скрипт «Омеги» — самая ценная находка смены.** В нём есть готовые ответы
ровно на те мины, что мы нашли сами («откуда у вас мой номер», «откуда вы
звоните», «это незаконно»), сбор сведений по одному вопросу за раз, развилка
отказа с визиткой, перевод на менеджера с веткой «менеджер не ответил».
**Его заход — 13 секунд против наших 41.** Он называет компанию в первой фразе
и сразу задаёт вопрос; наша Лена не называет компанию вовсе.
---
## 5. ГРАБЛИ, ОПЛАЧЕННЫЕ В ЭТУ СМЕНУ
**🔴 Настройка стояла вопреки указанию владельца, и имя файла врало.**
`bez-fillerov.conf` содержал `FILLERY=1`. 🔑 Проверять `systemctl show` , а не имя.
**🔴 Промт называл СМС каналом уведомления — владелец сказал «дорого, электронка».**
🔑 Прежде чем закладывать канал в методику, спросить про его цену. Наш расход на
СМС — 5,03 ₽ (`SMS_MTS_PRICE_KOP=503`).
**🪤 Я дважды затёр заголовок раздела правкой.** `Edit` со строкой поиска
`---\n\n## Заголовок` и заменой без заголовка — заголовок исчезает молча.
🔑 После правок в длинном документе сверять оглавление: `grep -n "^## "`.
**🪤 Браузер Playwright падает на длинных заходах.** 45 загрузок страниц внутри
одного `browser_evaluate` убивают его. И после падения профиль остаётся заперт:
`lockfile` держит живой процесс, лечится убийством всех chrome с
`ms-playwright-mcp` в строке запуска. 🔑 **Для массового сбора браузер не нужен**
вход через `curl` с файлом печенек надёжнее и в разы быстрее.
**🪤 Печеньки входа помечены `HttpOnly` и начинаются с `#` в файле jar.**
`awk '$1 !~ /^#/'` их отбрасывает, и строка выходит пустой. 🔑 Брать все строки
с семью полями.
**🪤 Дорожка в карточке сделки спрятана в данных страницы с экранированными
косыми.** Поиск по `<audio src=` не находит ничего, хотя `grep mp3` показывает
совпадения. 🔑 Искать в слепке `model: {...}` — там же лежат длительность,
оператор и направление звонка.
**🪤 Выгрузка `.xlsx` из кабинета — потоковый zip**: размеры кусков нулевые,
`inflateRawSync` падает с «unexpected end of file». 🔑 Распаковывать
`System.IO.Compression.ZipFile` из PowerShell.
**🪤 Я собрался загрузить 1200 страниц одним заходом** — владелец остановил.
🔑 Прикидывать число загрузок ДО запуска: 127 карточек это семь минут, 1200 —
час с лишним.
**🪤 Я неверно понял, кому идёт уведомление** — решил, что человеку, и увёл
разбор в согласие на рекламу. 🔑 В цепочке из трёх сторон (мы → клиент → человек)
всегда переспрашивать, кто получатель.
---
## 6. СТЕНД И КОМАНДЫ
```
сервер ssh ubuntu@51.250.1.97 (ключ ~/.ssh/liderra_deploy)
папка ~/lena-inworld/
питон ~/lena-inworld/venv/bin/python (системный не годится)
записи /tmp/lena-inworld/*.wav (vh-* — входящие)
сторож storozh_mosta.sh → storozh-mosta.log
```
**Проба без телефонии и без денег:**
```bash
sudo asterisk -rx "channel originate Local/1@chelovek-proba/n extension s@lena-inworld"
```
Вход `1` — «Да, здравствуйте. А что вы предлагаете?» · `2` — «А откуда у вас мой
номер?» (мина) · `3` — «Слушайте, это дорого.»
Для приёмщицы — то же, но `extension s@lena-vhodyashchie`.
**Живой звонок — ТОЛЬКО по слову владельца:**
```bash
printf "Имя" > /tmp/lena-inworld/imya.txt # без этого обращения не будет
sudo asterisk -rx "channel originate Local/79XXXXXXXXX@lena-nabor/n extension s@lena-inworld"
```
**Перед каждым прогоном:**
```bash
md5sum ~/lena-inworld/most.py # должно быть 141964de203fedd9b0ce9b9aa2c7d376
systemctl show lena-inworld -p Environment
```
**Замеры:**
```bash
python3 tishina.py /tmp/lena-inworld/vh-XXXX.wav 0.4 # мёртвый воздух
grep "🕐" most.log # задержки
grep "💰" most.log # расход и кэш
grep "📏" most.log # длина реплики и темп
```
---
## 7. СОСТОЯНИЕ РЕПОЗИТОРИЯ
- Ветка `feat/prospects-manual-testing-kp`, последний коммит смены — **`51ca003c`**.
- **Не закоммичены:** протокол допроса
`docs/grilling/2026-08-03-metodika-lena-pod-klienta.md` и **этот файл**.
- Пуш блокирует сторож ссылок: 11 битых ссылок в чужих файлах. Владелец решил
оставить коммиты без отправки.
- В ветке работает вторая смена (СМС) — их файлы не трогать.
- Телефоны в документации писать маской: правило `ru-phone-unmasked`.
- `моя/` в игноре (`.gitignore:232`) — чужие записи и комментарии клиентов
складывать только туда.
---
## 8. ПОРЯДОК РАБОТ
1. **Сверить слепок моста и настройки**`md5sum` и `systemctl show`. Сторож
`storozh-mosta.log` дважды ловил молчаливый откат файла.
2. **Прочитать протокол допроса целиком.** Там 37 решений; переоткрывать их
нельзя, а отрезанное записано с причинами.
3. **Позвонить самим себе без филлеров** — они выключены только что, вживую их
отсутствие никто ещё не слышал.
4. **Заняться опенером.** Он негоден при любой стройке: 41 секунда против 13 у
«Омеги», компания не названа. Образец лежит в
`моя/аудио-колцентр/СКРИПТ-колцентра-Омега.md`. Своей волей чужой текст не
переписываем — сделать короткий вариант и дать владельцу сравнить на слух.
5. **Спросить владельца про перевод на живого человека** — с него начинается
половина методики, а его нет вовсе.
6. **Измерить цену звонка** — сверить наш счётчик расхода со счётом Inworld.
Доступа в кабинет поставщика у нас нет, нужен владелец.
**В боевое не лезть без слова владельца.**
@@ -0,0 +1,83 @@
# Приёмочный лист — ворота №1 по фиче «Обзвон»
**Написан 04.08.2026 ДО работы, намеренно.** Лист, написанный после, подгоняется под
то, что вышло. Здесь записано, что обязуюсь замерить и **какой ответ считаю годным**
пока результата ещё нет.
Метод — `docs/superpowers/METOD-vedeniya-fichi-v1.md` (лежит в ветке
`feat/night-dispatcher-part1`, коммит `5cb09ae7e`; в нашей ветке его нет).
Предмет — фича «Обзвон», решения владельца в
`docs/grilling/2026-08-03-metodika-lena-pod-klienta.md`.
---
## Чем эти ворота отличаются от описанных в методе
В методе ворота №1 проверяют **построенную** фичу: «вот что она обязана уметь — иди
и проверь, умеет ли». Здесь фича **почти не построена**: по моему счёту из 18 строк
списка стройки красных 15.
Значит ворота работают на другом: они — **второй прибор к моему приговору «этого нет»**.
Правило метода прямое: *«Приговор „этого нет“ — только вторым прибором»*. Мой список
собран одним проходом и одной парой глаз, то есть приговором пока не является.
Ответ «не умеет» для этих ворот — **не провал, а измерение**.
---
## Что обязуюсь замерить
1. **По каждому требованию спеки** — один из трёх ответов: **умеет** / **не умеет** /
**не смог проверить, вот почему**. Третий ответ считаю таким же ценным, как первые два.
2. **Расхождения с моим списком стройки** — поимённо, в обе стороны:
- я написал «нет», а оно есть;
- я написал «есть», а оно не работает.
3. **Пересечение находок двух ворот** — что нашли оба. Это самое надёжное, что будет.
4. **Находки только одного** — их проверяю сам, вторым замером.
## Какой ответ считаю годным
| | годно | негодно |
|---|---|---|
| ответ на требование | один из трёх, с уликой (что делал, что увидел) | «вероятно нет», «судя по коду» |
| улика | что нажал, что открыл, что ответил портал | ссылка на строку кода |
| «не смог проверить» | сказано, **почему** именно | брошено без причины |
| расхождение | названо поимённо | «в целом совпадает» |
## Что считаю провалом самих ворот, а не фичи
🔴 **Если оба вернут ровно мой список, знак в знак, без единого расхождения** — это
не подтверждение, а подозрение. Допущение, на котором стоят ворота: **они мерят
независимо**. Случай мимо допущения: помощник прочёл мою бумагу со списком стройки
и пересказал её своими словами.
**Защита от этого случая, ставится заранее:**
- воротам **не даётся** ни список стройки, ни промт смены, ни этот лист — только
требования спеки;
- воротам **прямо запрещено** открывать протокол допроса и файлы `docs/superpowers/`
этой смены;
- **признак годности:** каждый из двоих обязан принести **хотя бы одну** вещь,
которой в моём списке нет. Не принёс ни один — ворота считаю несостоявшимися
и переделываю задание, а не принимаю результат.
## Чем меряю сам, после ворот
- **своей рукой**, а не по их отчёту: открыть то, про что они сказали «есть», и увидеть
глазами;
- расхождение «я сказал нет, а оно есть» — **вторым прибором**, потому что первым
приговором был мой собственный, и он уже один раз ошибся бы;
- 🔴 вопрос вырезания второго рода к каждой находке: **«эта проверка сделана на
больном случае или только на здоровом?»**
## Стенд, на котором меряют
- местный портал `php artisan serve` на `127.0.0.1:8000`, база `liderra` на `127.0.0.1`;
- **боевой liderra.ru не трогается вовсе** — ни одним запросом;
- телефоны в отчётах маской.
## Границы
- ворота **ничего не чинят**: мерят, а не лечат;
- ничего не коммитят;
- чужие файлы в дереве не трогают — в ветке работают параллельные смены.
@@ -0,0 +1,865 @@
# Спека: «Обзвон» — голосовой робот звонит за клиента и переводит живой звонок на его менеджера
**Дата:** 04.08.2026. **Состояние:** черновик на утверждение владельцу.
**Единственный источник решений:** протокол допроса
[docs/grilling/2026-08-03-metodika-lena-pod-klienta.md](../../grilling/2026-08-03-metodika-lena-pod-klienta.md)
— 38 решений владельца (Р1–Р38).
**Как читать.** Спека отвечает на три вопроса: что должно уметь, зачем и чем
проверим. Здесь нет ни одного решения о том, **как** это устроено внутри — это
работа плана, и план обязан остаться оспариваемым.
**Сколько здесь требований — честно.** Требований **72**. Номера идут от Т1 до
Т73 подряд, без пропусков, но **два номера требованиями не являются**:
- **Т51** — намеренная заглушка. На её месте спорят два решения владельца, и
требование не сформулировано специально (§13, пункт 1);
- **Т69** — номер освобождён: требование снято как дословный повтор Т4. Сам
срок хранения никуда не делся, он в Т4.
И **один номер выдан с буквой — Т61а**: решение владельца Р38 пришло позже
остальных и по смыслу встало вплотную за Т61. Отдельный номер в конце разорвал
бы денежный раздел, поэтому оно стоит там, где читается.
**Старшинство внутри спеки.** Всё, что помечено «(Р…)», взято из решений
владельца и переоткрытию не подлежит. Всё, что помечено 🟡 **сверх протокола**,
придумано при написании спеки и **требует отдельного «да» от владельца**
такие требования собраны ещё раз списком в §14. Всё, что помечено 🔴 **без
старшинства**, — место, где два решения спорят между собой; я их не разрешал,
они собраны в §13.
---
## 1. Зачем это нужно
### Боль клиента
У клиента Лидерры в разделе «Сделки» лежат люди и их телефоны. Сегодня по ним
звонят его менеджеры руками. Холодный обзвон — самая дорогая и самая нелюбимая
часть их работы: из тысячи номеров примерно четыреста вообще не берут трубку
(в разобранном займовом бизнесе недозвоны составили 743 сделки из 2250), а из
взявших большинство отказывает в первые двадцать секунд. Менеджер — самый
дорогой сотрудник клиента — тратит день на то, чтобы найти десяток тёплых.
**Что меняет «Обзвон»:** первую, дешёвую и неприятную половину разговора берёт
на себя робот, а менеджер получает уже разогретого человека **на линии, прямо
сейчас** — не заявку, не карточку, а живой голос в трубке.
🔴 **Честная оговорка, которую нельзя убирать из продажи.** Менеджер из процесса
**не исчезает**. Он обязан сидеть у телефона всё окно обзвона (Р18), он
оплачивает и свои минуты разговора тоже (Р26), и он же потом сам звонит и сам
шлёт визитки — мы наружу не пишем ничего (Р25). Мы снимаем с него **набор
номера и первые двадцать секунд**, а не работу целиком. Обещать «менеджер больше
не нужен» — обманывать, и первый же клиент это заметит на второй день.
### Боль наша
Выручка портала сегодня разовая и привязана к лидам. Обзвон даёт **выручку с
минуты разговора** — повторяющуюся и растущую вместе с базой клиента.
🔴 **Чего мы про эту выручку не знаем.** Сколько нам самим стоит один звонок —
**ни разу не измерено**: ни счёт поставщика голосового движка, ни счёт
телефонии со счётчиком минут не сверялись. Значит цена 12 ₽ за минимальный
чек назначена вслепую, и до первой сверки утверждать «мы на этом зарабатываем»
нельзя. Это открытый вопрос §15, а не требование.
### Кому это адресовано
| кто | что для него меняется |
|---|---|
| **клиент Лидерры** (владелец небольшой компании) | платит с кошелька портала и получает поток разогретых людей; сам утверждает, что робот говорит от его имени |
| **менеджер клиента** | перестаёт набирать номера; получает переводы на линию и письма «перезвонить такому-то тогда-то» |
| **человек на трубке** | ему звонят, разговаривают по делу и либо соединяют с живым человеком, либо оставляют в покое; мы ему **ничего не пишем** |
| **наш админ** | заводит клиента, следит за тарифом, разбирает жалобы |
| **наш менеджер / техподдержка** | принимает правки скрипта и переносит их |
### Чем меряем, что вышло
Считать обязательно (целевых значений владелец не называл — их назначает он,
после первого живого клиента):
1. доля номеров, где человек снял трубку;
2. доля снявших, кого довели до перевода;
3. доля переводов, где менеджер взял трубку;
4. средняя длина разговора и средний чек за отвеченный звонок;
5. **доля людей, бросивших трубку до первого вопроса робота** — сегодня это
главная дыра: посторонний бросил на 24-й секунде, а робот задаёт первый
вопрос только на 41-й.
---
## 2. Что эта фича делает и чего не делает
**Делает:** звонит по номерам из «Сделок» клиента, ведёт холодный разговор по
утверждённому клиентом скрипту, выявляет потребность, **соединяет человека с
менеджером клиента живым голосом**, принимает обратные звонки, считает деньги
с кошелька, кладёт запись и результат в сделку.
**Не делает — и это решения, а не недоделки:**
- **не пишет наружу ничего** — ни СМС, ни в мессенджеры, ни на почту человеку
на трубке (Р25). Всё уходит письмом нашему клиенту, а пишет и звонит он сам;
- **не берётся за клиента без записей** — нет 5–7 записей холодных разговоров,
значит не беремся (Р15);
- **не просит у клиента скрипт** — скрипт пишем мы, он утверждает (Р1);
- **не ограничивает клиента по темпу** — число линий задаёт он сам, наше дело
объяснить последствия (Р18);
- **не принимает робота голосом** — утверждается лист с текстом, прослушивание
идёт после сборки и это показ, а не ворота (Р11).
---
## 3. На что опираемся — это уже есть
Названо как факт наличия, чтобы план не проектировал заново:
- **кошелёк портала** умеет пополнение, заморозку денег под кампанию, списание
по факту с защитой от повторного списания, возврат, и умеет писать клиенту
письмо о нехватке денег (Р28);
- **почтовый канал в портале есть** — письма клиентам уходят (Р24);
- **сам робот работает** — голос, задержки около секунды, ответы на часть
каверзных вопросов;
- **экран СМС-рассылок в портале годится образцом** экрана обзвона (Р17). Что
на нём есть на самом деле — перечислено в Т32, и там же сказано, чего в
образце нет вопреки первому впечатлению;
- **приёмщица входящих звонков есть** — отдельный робот, слушает линию
круглосуточно, но со сделками и историей обзвона не связана (Р32).
Всё остальное из §4–§12 — стройка.
---
## 4. Подключение клиента: что берём на входе
**Т1.** Подключение не начинается, пока клиент не отдал **все три** вещи:
записи холодных разговоров, адрес своего сайта, и словами сформулированную
задачу — что выявляем, что считаем успехом, что делаем при отказе (Р3).
*Проверка:* нет любой из трёх — портал не даёт перейти к сборке скрипта и
показывает, чего не хватает.
**Т2.** Записей должно быть **не меньше пяти** — это твёрдое условие входа, при
четырёх не беремся (Р15). Просим **57**, и если материала мало, расширяем
просьбу **до 15** (Р14). Пятнадцать — это сколько мы **просим**, а не запрет
принять больше. *Проверка:* загрузили четыре — не пускает; загрузили пять —
пускает; на экране загрузки написано, что просим 5–7 и при нужде до 15.
🔴 **Без старшинства:** есть ли у числа записей жёсткий потолок — из Р14 не
следует. См. §13, пункт 17.
**Т3.** Перед загрузкой клиенту **на экране сказано словами**, что нужны разные
исходы разговора, а не только удачные продажи: один хороший отказ с возражением
полезнее десяти гладких успехов (Р14). *Проверка:* текст виден на экране
загрузки, а не в письме и не «менеджер расскажет».
**Т4.** Записи, отданные клиентом, **удаляются ровно через 30 дней** после
загрузки — автоматически, без нашего участия (Р13). *Проверка:* завели запись
задним числом на 31 день назад, дождались суточной чистки — файла нет,
а в журнале есть отметка «удалено по сроку».
**Т5.** Клиенту **до загрузки** сказано, что записи удалим через 30 дней (Р13).
*Проверка:* фраза на том же экране, что и Т3.
🟡 **Т6 (сверх протокола).** Записи одного клиента недоступны другому клиенту
и не участвуют в сборке чужих скриптов. *Проверка:* завели двух клиентов,
из-под одного попытались открыть запись другого — отказ.
---
## 5. Скрипт: кто пишет, кто утверждает, где живёт
**Т7.** Скрипт собирает **машина целиком** — расшифровка записей, чтение сайта
клиента и сборка текста идут без ручной доводки на нашей стороне (Р10).
*Проверка:* от загрузки трёх материалов до готового листа не требуется ни
одного действия нашего сотрудника.
**Т8.** Готовый скрипт состоит из **неизменного каркаса** и **сменных частей**
(Р8). Каркас один на всех клиентов: устройство захода, семь исходов разговора,
заготовки на каверзные вопросы, правило «широко знать, узко обещать». Сменное:
название компании, предложение, что выявляем, признаки целевого и нецелевого
человека, цифры, лист запретов, куда переводить. *Проверка:* завели двух
клиентов из разных отраслей — каркасная часть у них совпадает дословно,
различия только в сменных частях.
**Т9.** Клиент получает **лист со скриптом** и **утверждает его целиком**;
пока не утвердил — робота не собираем (Р9, Р11). *Проверка:* попытка запустить
обзвон по неутверждённому скрипту невозможна.
**Т10.** Клиент вправе править **любую часть** скрипта, включая каркасную и
включая манеру разговора (Р9). *Проверка:* правка каркасной фразы принимается
и попадает в скрипт этого клиента.
**Т11.** На согласовании клиенту **отдельно и заметно** показываются опасные
места: все цифры, которые робот назовёт вслух; всё, что звучит как обещание;
признаки целевого и нецелевого (Р10). *Проверка:* на листе согласования эти
куски вынесены отдельным блоком, а не растворены в тексте. Причина требования
измерена: робот сам, без чьего-либо указания, обещал в каждом звонке
«бесплатный тест в подарок», которого нигде не было.
**Т12.** Есть **лист «чего обещать нельзя»**, который клиент подписывает
отдельно от скрипта (Р5). *Проверка:* лист существует, у него есть отметка
о подписании клиентом с датой.
**Т13.** Робот **отвечает сам** на вопросы про сведения: что есть, как
работает, кому подходит, где работаем, сколько идёт по времени. И **никогда не
отвечает** на вопросы про обещание лично этому человеку: сколько будет стоить
ему, одобрят ли, на какой срок, какая выйдет ставка — на них он говорит
«скажет специалист» и это повод перевести (Р5). *Проверка:* на проверочном
прогоне задали оба типа вопросов — на первый ответил, на второй ушёл в перевод.
Рекламную цифру вида «ставка от такой-то» назвать может, «вам одобрят» — нет.
**Т14.** У клиента может быть **много скриптов**, но **один робот** — голос,
манера, каркас и границы обещаний общие (Р16). *Проверка:* завели клиенту три
скрипта — голос и манера во всех трёх одинаковы.
**Т15.** Скрипты лежат в **каталоге**, клиент сам ставит нужный **«в работу»**
(Р17). Автоматическая привязка скрипта к чему-либо запрещена — выбирает
человек. *Проверка:* в каталоге три скрипта, запущен тот, который выбрал клиент.
**Т16.** Клиент может править текст скрипта **в любой момент**, не только на
приёмке: у него меняется предложение, ставка, акция (Р12). Правка не требует
пересборки робота. *Проверка:* поменяли фразу в работающем скрипте — следующий
звонок идёт уже с новой фразой, робот не пересобирался.
**Т17.** Все правки идут **одним каналом** — через своего менеджера или
техподдержку, как любой другой вопрос по порталу (Р12). Отдельной процедуры
«круги правок» нет. *Проверка:* в интерфейсе нет отдельного мастера правок.
**Т18.** Если клиент вычёркивает защитную часть (например заготовку на «откуда
у вас мой номер»), ему **письменно, одной строкой** говорится, чем это грозит,
после чего делаем как он сказал (Р23). *Проверка:* вычеркнули заготовку —
в ответе одна строка предупреждения, правка применена, след остался в журнале.
**Т19.** Правки клиентов копятся так, что **повторяющуюся видно списком**: по
каждой правке видно, сколько разных клиентов её просили (Р9). Это и есть сигнал
забрать её в каркас, а разовую оставить в сменной части клиента. *Проверка:*
три клиента попросили одну и ту же правку — в списке повторяющихся она стоит
с числом «3»; правка, которую просил один, в этот список не попала.
🔴 **Не проверяется на работающей программе** и вынесено в §16: сам порядок
«кто и когда переносит накопленную правку в каркас». Это работа людей, её на
экране не увидишь.
**Т20.** Порядок подключения строго такой: лист клиенту → он утверждает и
правит → **только потом** собираем робота → даём послушать (Р11). Прослушивание
**показ, а не приёмка**. *Проверка:* пройти шаги в другом порядке нельзя.
---
## 6. Разговор
**Т21.** У разговора ровно **семь исходов**, и каждый звонок кончается ровно
одним из них (Р7):
| # | исход | что делает робот |
|---|---|---|
| 1 | перевела, менеджер взял | доводит до перевода и отключается |
| 2 | перевела, менеджер не взял | возврат к человеку, договаривается о времени, письмо клиенту |
| 3 | согласен, но **сейчас неудобно** | назначает время, письмо клиенту |
| 4 | **не целевой** по признакам клиента | вежливо закрывает |
| 5 | **отказ** | предлагает визитку, прощается |
| 6 | **недозвон** | закрывает, помечает на перезвон |
| 7 | **агрессия** — «это незаконно», «откуда мой номер» | отбивает по заготовке, закрывает |
*Проверка:* прогнали семь проверочных разговоров — все семь исходов проставились
и различимы в карточке.
**Т22.** Исход 3 («сейчас неудобно») **не считается отказом** ни в отчётах,
ни в статусе — это отложенный успех (Р7). *Проверка:* в отчёте он стоит
отдельной строкой, не в графе отказов.
**Т23.** В каркасе есть готовые ответы на **четыре** каверзных вопроса:
«откуда у вас мой номер», «откуда вы звоните», «это незаконно, вы нарушаете
закон», **«вы что, записываете разговор?»** (Р7 исход 7, Р21). *Проверка:*
задали все четыре на проверочном прогоне — на каждый пришёл заготовленный
ответ, а не сочинённый на ходу.
**Т24.** О записи разговора робот **не объявляет сам**; отвечает, **только если
человек спросил** (Р21). *Проверка:* в проверочном разговоре без вопроса о
записи фраза о записи не звучит.
🟡 **Т25 (сверх протокола).** Человек слышит, **кто ему звонит и зачем**, и
получает **первый вопрос себе** не позже чем через **15 секунд** после начала
разговора. *Проверка:* замерили секундомером по записи десяти звонков — во всех
десяти первый вопрос человеку прозвучал до 15-й секунды. Основание: заход
чужого колцентра укладывался в 13 секунд и называл компанию в первой фразе;
наш сегодняшний — 41 секунда, компанию не называет вовсе, и посторонний бросил
трубку на 24-й секунде, то есть **до** первого вопроса. Порог в 15 секунд —
моё число, владелец его не называл.
---
## 7. Перевод на менеджера — сердце фичи
**Т26.** Успех — это **живой перевод звонка** на номер менеджера клиента прямо
в разговоре (Р6). Не заявка, не письмо, не «мы вам перезвоним» — соединение
голосом. *Проверка:* на живом звонке человек и менеджер слышат друг друга,
робот отключается.
🔴 **Этого нет вовсе.** Сегодня робот произносит «передам живому специалисту»
и на этом всё. Без перевода не работает ни половина методики, ни тариф, ни
сквозная запись. Это самый крупный кусок стройки.
**Т27.** Менеджер занят или не взял трубку — робот **возвращается к человеку**
словами «к сожалению, не получилось вас связать, когда вам удобно
перезвонить?», записывает названное время и на этом прощается (Р6).
*Проверка:* проверочный прогон с неотвечающим номером менеджера — возврат
состоялся, время записано в карточку.
**Т28.** После неудавшегося перевода и после исхода 3 **клиенту Лидерры уходит
письмо** с указанием, что сделать: перезвонить такому-то человеку в такое-то
время (Р24, Р25). Номер человека, дата и время — в письме. *Проверка:* письмо
пришло, в нём есть все три вещи.
**Т29.** После отказа, если человек согласился получить визитку, клиенту
уходит письмо с указанием **послать визитку в мессенджер** — отправляет он сам,
со своего аккаунта (Р25). *Проверка:* письмо пришло с этим указанием.
**Т30.** **Наружу не уходит ничего.** Ни одного сообщения человеку на трубке —
ни СМС, ни в мессенджер, ни на почту (Р25). *Проверка:* за сутки полного
прогона в журнале исходящих сообщений нет ни одной строки, где получатель —
не наш клиент.
🟡 **Т31 (сверх протокола).** Если у клиента не указан номер менеджера для
перевода — обзвон не запускается, а клиент получает понятное объяснение
почему. *Проверка:* стёрли номер менеджера, нажали «в работу» — не пустило.
Основание: без номера перевода каждый звонок кончается неудачей, а деньги
списываются полностью.
---
## 8. Запуск, темп и дозвон
**Т32.** Экран обзвона строится по образцу экрана СМС-рассылок (Р17). Из образца
берутся **пять** вещей: **название** кампании, **отметка «кому звоним»**
(галочки по списку), **журнал**, **состояние** кампании, **статус** по каждому
номеру. Вместо текста сообщения — **выбор скрипта из каталога**.
*Проверка:* на экране обзвона есть все пять названных полей, а на месте текста
сообщения стоит выбор скрипта.
**Что в образце есть, но не тем, чем кажется** (не требование, а предупреждение
плану). На экране СМС-рассылок действительно стоят слова «Ниша» и «Менеджер»,
но это **не поля рассылки**: «Ниша» — фильтр, которым сужают список фирм, а
«Менеджер» — отдельное окно «Назначить менеджера», которое привязывает менеджера
**к фирме**, чтобы та попала в воронку. Переносить их в обзвон как поля кампании
нельзя, пока не решено, чему они там принадлежат.
🔴 **В образце этого нет, откуда взялось — неизвестно: «окно запуска „с … по“».**
Надпись «Запуск с … по» на экране СМС-рассылок есть, но означает совсем другое —
это **фильтр по календарным датам** запуска рекламного прогрева фирмы, а не часы
и не настройка самой рассылки. **Окна времени запуска у рассылки нет вовсе.**
Значит окно 10:00–20:00 (Т36) образцом не подпёрто и проектируется с нуля.
**Т33.** Обзвон идёт **автоматическим режимом по списку номеров**, который
выбрал клиент из своих сделок (Р17, Р6). *Проверка:* поставили список из
десяти сделок — прозвон пошёл по всем десяти без нашего участия.
**Т34.** **Число одновременных линий задаёт клиент сам** (Р18). Мы не
ограничиваем. *Проверка:* поставили пять линий — идёт пять одновременных
разговоров.
**Т35.** Рядом с полем числа линий **написаны последствия**: менеджер один, при
пяти линиях за час проходит около двухсот человек, и даже при согласии каждого
двадцатого это десять переводов в час на одного человека — он захлебнётся, и
«менеджер не взял трубку» станет правилом (Р18). *Проверка:* текст на экране
виден до запуска, не после.
**Т36.** Звонки идут **только с 10:00 до 20:00** — за эту рамку не выходим
никогда (Р30). *Проверка:* поставили окно с 8:00 — не принимает; наступило
20:00 — начатые разговоры доводятся, новые номера не набираются.
**Т37.** Внутри общей рамки звоним **только когда менеджер клиента на месте**
(Р18). *Проверка:* клиент указал часы своего менеджера, вне их набора нет.
🔴 **Без старшинства:** где клиент называет часы своего менеджера, протокол не
говорит. См. §13, пункт 4.
**Т38.** Не взяли трубку — **до десяти попыток**, каждая **с другого номера**
(Р31). *Проверка:* номер, который не берёт, получил ровно десять попыток
с десяти разных номеров и одиннадцатой не было.
**Т39.** Между попытками **не чаще одного раза в час** (Р33). Клиент может
выбрать реже; чаще часа настройка не пускает — это жёсткий предел.
*Проверка:* попытались поставить каждые полчаса — не даёт.
**Т40.** Не успели за день — **переносим на следующий** (Р33). *Проверка:*
список из тысячи номеров, окно закончилось — остаток продолжился назавтра
с того же места, попытки не обнулились.
**Т41.** О том, как работает дозвон (сколько попыток, как часто, с разных
номеров), клиент **предупреждён на экране** (Р33). *Проверка:* текст виден.
🟡 **Т42 (сверх протокола).** Клиент и наш админ могут **остановить обзвон
немедленно** одной кнопкой; начатые разговоры доводятся, новые номера не
набираются, замороженные под них деньги возвращаются. *Проверка:* нажали стоп
на работающей кампании — через минуту новых звонков нет, деньги вернулись.
Основание: живые люди на линии и живые деньги на счёте, а стоп-крана протокол
не предусматривает вовсе.
🟡 **Т43 (сверх протокола).** Клиент не может поставить в обзвон номера,
которых нет в его собственных сделках. *Проверка:* попытались подсунуть чужой
список — отказ.
🟡 **Т44 (сверх протокола).** Человек, сказавший «не звоните мне больше»,
в этот список больше не набирается — ни в этой кампании, ни в следующих
кампаниях этого клиента. *Проверка:* пометили номер отказом такого рода,
запустили тот же список повторно — набора не было. Основание: протокол
описывает отказ и агрессию как исходы разговора, но нигде не запрещает
позвонить этому же человеку на следующей неделе тем же списком. Это самая
дешёвая жалоба, которую можно получить.
---
## 9. Обратные звонки
**Т45.** Если человек **перезванивает** на номер, с которого ему звонили, —
звонок принимается (Р32). *Проверка:* позвонили человеку, разговор состоялся;
он перезвонил на **этот же** номер — звонок принят и разговор пошёл, а не
оборвался в пустоту.
🔴 **Без старшинства.** Проверка выше написана только по бесспорной части — по
номеру, на котором разговор состоялся. Р32 велит принимать на **каждом** из
десяти номеров, а более позднее Р37 оставляет один и закрывает девять (Т46).
Что происходит на остальных девяти и что человек там слышит — спор, см. §13,
пункт 11.
**Т46.** У человека есть **один «свой» номер** — тот, на котором с ним
состоялся разговор. На нём мы отвечаем ему **всегда**. На остальных девяти его
номер **закрыт**: он дозвонится, но разговора не будет (Р37). *Проверка:*
позвонили человеку с десяти номеров, разговор состоялся на третьем — обратный
звонок на третий приняли, на остальные девять не приняли.
**Т47.** Если разговора не было ни разу (все десять раз не брал трубку),
«своим» становится тот номер, на который он **перезвонил первым**, и остальные
закрываются в тот же миг (Р37). *Проверка:* прогнали такой случай — второй
обратный звонок с того же человека на другой номер уже не принят.
**Т48.** Приёмщица **узнаёт человека по номеру**, находит его сделку, видит
историю обзвона и **продолжает разговор с того места, где он оборвался**
не с нуля (Р34). *Проверка:* оборвали разговор на середине, перезвонили —
робот не здоровается заново и не повторяет заход.
**Т49.** Приёмщица отвечает **круглосуточно**, но **вне окна 10:0020:00 не
переводит** на менеджера: собирает сведения, договаривается о времени, дальше
письмо клиенту (Р35). *Проверка:* обратный звонок в 23:00 — принят, перевода
не было, письмо ушло.
**Т50.** Вечером **первая фраза иная**: не «сейчас переведу на менеджера»,
а сразу «давайте договоримся на завтра» (Р35). *Проверка:* прослушали вечерний
разговор — обещания перевода в нём нет.
🔴 **Без старшинства: Т51.** «Второй обратный звонок подряд не принимаем» (Р34)
против «на своём номере отвечаем ему всегда» (Р37). Требование не сформулировано
намеренно — см. §13, пункт 1.
---
## 10. Деньги
**Т52.** Тариф: **2 ₽** за установление соединения плюс **10 ₽ за каждую
начатую минуту** разговора; тарификация **поминутная**, неполная минута
считается полной (Р26, Р27). *Проверка:* разговор 10 секунд — списано 12 ₽;
разговор 61 секунда — списано 22 ₽.
**Т53.** «Установление соединения» — это **человек снял трубку**. Не
дозвонились, не взяли, сброс до ответа — **не платит никто** (Р27).
*Проверка:* десять попыток без ответа — списано 0 ₽.
**Т54.** Минуты считаются **до конца звонка**, включая разговор **менеджера
клиента после перевода** (Р26). *Проверка:* перевод состоялся, менеджер говорил
три минуты — они в счёте.
**Т55.** **Обратные звонки** считаются по тому же тарифу: 2 ₽ плюс минуты
(Р36). Исключений нет. *Проверка:* входящий на 40 секунд — списано 12 ₽.
**Т56.** Тариф **меняется в админке**, обе цифры настраиваемые (Р26).
*Проверка:* поменяли на 3 ₽ и 12 ₽ — следующий звонок посчитан по новому.
🟡 **Т57 (сверх протокола).** Изменение тарифа не пересчитывает уже
состоявшиеся звонки. *Проверка:* поменяли тариф — вчерашние счета не
изменились.
**Т58.** Перед запуском под каждый номер **замораживается по 12 ₽**
минимальный чек (Р28). *Проверка:* поставили сто номеров — на счету заморожено
1 200 ₽.
**Т59.** Денег не хватило — **обзвон не начинается**, клиенту уходит письмо о
нехватке (Р28). *Проверка:* на счету 100 ₽, поставили сто номеров — не
стартовало, письмо пришло.
**Т60.** Разговор перевалил за замороженные 12 ₽ — **дорезервируем на ходу из
свободного остатка**, чтобы соседние кампании его не выбрали (Р29).
*Проверка:* длинный разговор при двух работающих кампаниях — деньги под него
удержаны, вторая кампания их не забрала.
**Т61.** Свободного остатка нет — **текущий разговор не режем**, он доводится до
конца; тормозится **следующий** номер (Р29). *Проверка:* довели счёт до нуля
посреди разговора — разговор доведён до конца, следующий номер не набран.
**Т61а.** Разговор, доведённый при пустом счёте, списывается **целиком**, и счёт
клиента **уходит в минус**. Долг остаётся за клиентом, а **следующий обзвон не
стартует, пока клиент не пополнит** (Р38). *Проверка:* на счету 12 ₽, после
перевода менеджер проговорил десять минут — списано 102 ₽, на счету минус 90 ₽;
попытка запустить следующий обзвон не проходит, и клиенту сказано, почему.
🟡 **Т62 (сверх протокола).** За один звонок деньги списываются **ровно один
раз**, сколько бы раз ни повторялась попытка списания. *Проверка:* повторили
списание по тому же звонку — второй раз не прошло.
🟡 **Т63 (сверх протокола).** Клиент видит, **за что** списано: по каждому
звонку — номер (маской), длительность, из чего сложилась сумма. *Проверка:*
открыли счёт за день, сумма строк совпала с изменением остатка на счету
до копейки.
🟡 **Т64 (сверх протокола).** Раз в сутки сходятся две величины: сумма всех
списаний за сутки и сумма стоимостей всех состоявшихся разговоров за сутки.
Сверка идёт **со стоимостью разговоров, а не с остатком на счету**: минус на
счету по Т61а — это штатный долг, а не расхождение. Расхождение — повод
остановить обзвон и разобраться. *Проверка:* сверка считается, результат виден
админу; довели счёт клиента до минуса — сверка осталась спокойной.
---
## 11. Что видно в портале после звонка
**Т65.** В сделке появляется поле **«Обзвон»**, и в нём лежат две вещи:
**запись разговора** и **свой статус обзвона** — переведено · переведено
неуспешно · перезвонить, дата и время · письмо клиенту отправлено · не целевой ·
отказ · недозвон · агрессия (Р19, Р25). Это **отдельный статус**, не статус
сделки: у сделки своя воронка, у обзвона своя (Р19). *Проверка:* статус обзвона
меняется, статус сделки при этом не трогается.
**Т66.** Запись **сквозная**: в ней слышны все три стороны — робот, человек
и **менеджер клиента после перевода** (Р20). *Проверка:* прослушали запись
переведённого звонка — голос менеджера в ней есть.
**Т67.** В таблице сделок у каждой строки видны **пометки касаний**: звонили,
слали СМС, крутили рекламу (Р19). Видно всю историю, а не последнее действие.
*Проверка:* по сделке было три разных касания — все три видны в строке.
🟡 **Т68 (сверх протокола).** По каждому звонку можно ответить на вопрос
«почему этому человеку звонили»: из какого списка он взят, по какому скрипту
говорили, кто и когда поставил кампанию в работу. *Проверка:* открыли любой
звонок недельной давности и получили все четыре ответа. Основание: жалоба
человека «почему вы мне звоните» придёт нам или клиенту, и ответить на неё
надо будет фактами.
---
## 12. Хранение и удаление
Записи, отданные клиентом на сборку скрипта, — **30 дней** (Р13). Это
требование **Т4** из §4, там же его проверка; здесь оно не повторяется, номер
**Т69 освобождён**.
**Т70.** Наши записи обзвона (звук) — **6 месяцев**, после чего звук удаляется
(Р22). *Проверка:* завели запись обзвона задним числом на шесть месяцев и один
день назад, дождались суточной чистки — звукового файла нет, в журнале строка
«удалено по сроку», а обезличенная расшифровка на месте.
**Т71.** Расшифровка нашего обзвона **без имён и номеров** живёт бессрочно —
это учебный материал (Р22). *Проверка:* после удаления звука расшифровка на
месте, имён и номеров в ней нет.
**Т72.** Чистка по сроку работает **сама**, по расписанию, и оставляет след в
журнале (Р13, Р22). *Проверка:* сутки прошли — записи с истёкшим сроком
исчезли, в журнале строки об этом.
🟡 **Т73 (сверх протокола).** Когда звук удалён по сроку, карточка сделки это
**говорит словами** («запись удалена по сроку хранения»), а не показывает
сломанный проигрыватель. *Проверка:* открыли старую сделку — видна надпись,
а не пустой плеер. Основание измерено на чужом материале: у займового бизнеса
все 164 ссылки на записи вели в никуда, а плеер в карточке показывал
«0:00 / 0:00» — понять, что файлы стёрты, а не сломан доступ, удалось только
отдельным разбором.
---
## 13. 🔴 Противоречия и места, где старшинство не объявлено
Я их **не разрешал**. Каждое — решение владельца, а не исполнителя.
**1. Второй обратный звонок подряд: брать или не брать?**
Р34 говорит: «второй обратный звонок подряд не принимаем — одна сделка, один
принятый обратный звонок». Р37 говорит: у человека есть «свой» номер, и «на нём
мы отвечаем ему **всегда**». Если человек перезвонил на свой номер дважды
подряд, два правила дают противоположный ответ. Р37 принято позже (04.08) и
снимает только предложение «молчать час после разговора» — про Р34 в нём ничего
не сказано. **Что решить:** отменяет ли Р37 запрет из Р34 целиком, или запрет
остаётся, но действует только на **чужих** девяти номерах (которые и так
закрыты, то есть запрет становится пустым).
**2. Требовать записи — это способ не продать. Требуем или нет?**
Р15 прямо говорит: «без записей не беремся, 5–7 обязательны». Раздел «Отрезали
и почему» того же протокола прямо говорит обратное: «"Требовать записи холодных
исходящих, иначе не беремся" — **отрезано**: у большинства клиентов их нет,
потому они и приходят за роботом. Требовать ровно то, чего у клиента нет, —
способ не продать». По объявленному старшинству побеждает Р15, и я так и
написал (Т2). Но раздел «Отрезали» в старшинстве **не объявлен**, а довод в нём
— денежный. **Что решить:** остаётся ли Р15 после того, как этот довод перечитан.
**3. Что именно просим: «успешные продажи» или «разные исходы»?**
Р3 требует «аудио **успешных продаж** клиента». Р14 требует покрытие **разных
исходов**, а не только побед, и прямо предупреждает, что у клиента будет соблазн
прислать одни победы. Это два разных списка на входе. **Что решить:** просим
5–7 записей вообще (из которых часть — отказы), или 5–7 именно успешных плюс
отдельно отказы (тогда порог входа выше и продавать труднее).
**4. Часы менеджера клиента — где они берутся?**
Р18 требует звонить только когда менеджер на месте, Р30 задаёт общую рамку
10:0020:00. Но нигде не сказано, **где клиент называет часы своего менеджера**
и что делать, если менеджеров несколько с разными графиками. **Что решить:**
это настройка клиента, настройка кампании или мы просто равняем её на окно
10:00–20:00 и о менеджере не спрашиваем.
**5. По чьим часам 10:00–20:00?**
Окно названо, часовой пояс — нет. Клиент из Красноярска обзванивает базу по
всей стране: 10:00 у него — это 6:00 в Калининграде и 15:00 на Камчатке.
**Что решить:** окно по времени клиента, по времени человека на трубке или
единое московское.
**6. Откуда берутся деньги на обратный звонок вне кампании?**
Р28 морозит деньги **под пачку номеров перед обзвоном**. Р35 разрешает принимать
обратные звонки **круглосуточно**, в том числе через неделю после того, как
кампания закончилась и деньги освободились. Р36 велит их тарифицировать. Куда
уходит счёт при пустом кошельке, Р38 уже указало — **в долг**, но оно говорило
про разговор внутри кампании, а не про входящий звонок через неделю после неё.
**Что решить:** резервируется ли что-нибудь под возможные обратные звонки после
конца кампании, или они просто идут в долг по Т61а наравне с исходящими.
**7. Приёмщица — одна общая или своя у каждого клиента?**
Р16 говорит «одна Лена на клиента» — про обзвонщицу. Приёмщица (Р32, Р34, Р35)
сегодня одна на всех. Если клиентов десять и у каждого свои голос, манера и
границы обещаний (Р8), то принимающий робот обязан говорить голосом того
клиента, к чьему человеку он обращается. **Что решить:** приёмщица тоже одна на
клиента, или общая и переключается по номеру.
**8. Пул из десяти номеров — чьи они, откуда берутся и кто за них платит?**
Т38, Т46 и Т47 стоят на том, что у нас есть десять своих исходящих номеров.
Про эти номера не сказано **ничего**: ни чьи они, ни откуда, ни кто платит
аренду, ни что делать, когда оператор заблокирует их за жалобы — а рисунок
«десять звонков с десяти разных номеров» ровно тот, за который номера и метят
спамом (это в Р31 сказано и принято). Тариф Т52 (2 ₽ + 10 ₽) аренду номеров не
покрывает и вообще про неё не знает.
Второй слой того же вопроса: **общий пул или свой у каждого клиента.** Десять на
весь портал — и номер, закреплённый за человеком клиента А (Т46), продолжает
звонить людям клиента Б, а человек, перезвонив, попадёт в чужой разговор.
Десять на каждого клиента — при двадцати клиентах нужно двести номеров, и
аренда растёт вместе с продажами.
**Что решить:** откуда берём номера и на чьи деньги, что делаем при блокировке,
и пул общий или на клиента.
**9. Кто отвечает за законность самого звонка.**
Р5, Р9 и Р23 кладут ответственность за **содержание** скрипта на клиента.
Но нигде не решено, кто отвечает за то, что у людей из списка вообще есть
согласие на звонок. Заготовка на «это незаконно» отвечает человеку словами
«ранее вы давали согласие», и это утверждение делаем **мы, голосом робота, за
клиента**. **Что решить:** берём ли мы с клиента подтверждение, что базу можно
обзванивать, и что делаем, если он его не даёт.
**10. Менеджер клиента записывается — он об этом знает?**
Р20 требует писать разговор менеджера клиента, Р21 запрещает объявлять о записи
кому бы то ни было, кроме спросивших. Менеджер клиента — сотрудник нашего
платящего клиента, а не посторонний. **Что решить:** уведомляется ли он
отдельно (например через договор с клиентом) или на него распространяется Р21.
**11. Что человек слышит, перезвонив на закрытый номер?**
Т45 говорит: перезвонил на наш номер — принимаем. Т46 говорит: на девяти
номерах из десяти его номер закрыт, «дозвонится, но разговора не будет». Два
требования прямо спорят, и это первая половина беды. Вторая половина хуже:
**нигде не сказано, что человек на закрытом номере слышит** — тишину, гудки,
автоответчик или слова «наберите другой номер». Человек, которому звонили
десять раз, перезванивает и попадает в пустоту — это худший исход из всех, и он
в спеке не описан вовсе.
Заодно: Т45 в его нынешнем виде **целиком поглощается** Т46 — первая половина
Т46 говорит ровно то же про «свой» номер. Похоже, Р37 просто заменило Р32, но
объявлено это не было.
**Что решить:** отменяет ли Р37 требование Т45 целиком (тогда Т45 убрать), и что
именно слышит человек на девяти закрытых номерах.
**12. Личная правка каркаса против общего каркаса.**
Т8 говорит: каркас **один на всех клиентов** дословно. Т10 говорит: клиент
вправе править **любую часть**, включая каркасную. Т19 говорит: правку, которую
попросили несколько клиентов, забираем **в каркас**. Три требования вместе не
живут:
— если каждый клиент правит каркас под себя, каркас перестаёт быть общим, и
проверка Т8 («у двух клиентов каркасная часть совпадает дословно») провалится
на втором же клиенте;
— если правка по Т19 меняет каркас всем, она **затрёт** правки тех, кто уже
правил это место руками;
— а по Т14 у клиента один робот на все его скрипты, значит правка каркаса
меняет ему сразу все скрипты, включая те, что он не открывал.
**Что решить:** что происходит с личной правкой клиента, когда каркас под ней
меняется — она сохраняется поверх, отменяется, или клиента спрашивают.
**13. Десять попыток дозвона не помещаются в сутки.**
Т38 — до десяти попыток. Т39 — не чаще раза в час. Т36 — окно 10:0020:00, ровно
десять часов. Арифметика сходится **впритык, без единого запаса** — это и в
Р33 отмечено как удача. Но Т37 сужает окно ещё раз: звоним только когда менеджер
клиента на месте, а он обедает и уходит в 18:00. Тогда в дне остаётся часов
семь, десять попыток в них не влезают, и Т40 («не успели — переносим на завтра»)
из редкого случая становится **нормой**: один человек обзванивается неделю, и
всю неделю у него в пропущенных копятся наши номера.
**Что решить:** сокращать ли число попыток, разрешить ли чаще раза в час внутри
дня, или согласиться, что один номер обрабатывается несколько дней.
**14. Одну дыру затыкаем замком, соседнюю — надписью. Почему разница?**
Т31 (🟡 моё): нет номера менеджера — запуск **заблокирован**. Т34 (Р18): клиент
ставит сколько угодно линий, и мы **не ограничиваем**; единственная защита —
**надпись** Т35 о последствиях. Обе дыры кончаются одинаково: менеджер не берёт
трубку, деньги списываются полностью, а Т26 объявляет успехом именно живой
перевод — то есть система штатно ломает собственный признак успеха.
Тонкость, без которой вопрос не решить: **надпись — это решение владельца**
(Р18 прямо: «наше дело объяснить последствия, а не ограничивать»), а **замок —
моя выдумка** (Т31 помечено 🟡). Значит вопрос не «почему разница», а «не
противоречит ли замок Т31 решению Р18».
**Что решить:** остаётся ли Т31 замком, или Р18 распространяется и на него, и
там тоже должна быть только надпись.
**15. Что видит клиент, когда удалены ЕГО записи?**
Т73 закрывает нашу сторону: наш звук стёрт по сроку — карточка сделки говорит
об этом словами, а не показывает сломанный проигрыватель. Парного требования
для записей, которые отдал **клиент** (Т4, тридцать дней), нет. Клиент, который
доверил нам голоса своих покупателей, через тридцать один день откроет своё и
увидит — неизвестно что.
**Что решить:** показываем ли клиенту, что его записи удалены по сроку, и в
каком виде — надпись, письмо-предупреждение заранее, или ничего.
**16. Номер живого человека уходит почтой за пределы портала.**
Т30 гордо говорит «наружу не уходит ничего», и по букве это верно: запрет Р25
про сообщения **человеку на трубке**. Но Т28 требует прислать нашему клиенту
**письмом** номер этого человека, дату и время. Номер физического лица уходит
электронной почтой наружу, через стороннего почтового отправителя, а для
персональных данных в портале есть отдельный порядок. Букву Р25 это не
нарушает — взвесить всё равно надо.
**Что решить:** уходит ли номер человека в теле письма, или письмо содержит
только ссылку в портал, где номер и показывается.
**17. Есть ли жёсткий потолок числа записей?**
Р14 говорит: просим минимум 5–7, **с возможностью расширить до 15**. Это про то,
**сколько мы просим**, и запрета принять шестнадцатую в нём нет. Прежняя
редакция Т2 читала это как потолок и шестнадцатую не брала — я убрал, потому
что решением это не подпёрто. Нижняя граница (меньше пяти не беремся, Р15)
осталась твёрдой.
**Что решить:** пятнадцать — это ориентир, сколько просить, или жёсткий предел,
за которым загрузка отказывает.
**18. Потолка убытка на один звонок нет вовсе.**
Р38 закрыло вопрос «может ли счёт уйти в минус» — может, долг остаётся за
клиентом, следующий обзвон не стартует (Т61а). Но **потолка убытка на один
звонок это не создало**. Разговор резать нельзя (Т61), минуты считаются до
конца, включая менеджера (Т54): сорок минут менеджера — 400 ₽, четыре часа —
2 400 ₽, и остановить это нечем. Долг перед нами растёт ровно столько, сколько
менеджер клиента расположен говорить, а платим поставщику связи мы сразу.
**Что решить:** есть ли предел, после которого мы вмешиваемся, и как — предупредить
менеджера в трубку, разорвать линию, или не вмешиваться вовсе и считать это
ценой живого перевода.
---
## 14. 🟡 Что я добавил сверх протокола — поимённо
Каждое требует отдельного «да». Ни одно не следует из Р1–Р38.
| # | что добавил | зачем |
|---|---|---|
| Т6 | записи одного клиента недоступны другому | клиент отдаёт голоса своих покупателей; смешать их между клиентами — потерять всех сразу |
| Т25 | человек слышит, кто звонит, и получает первый вопрос **до 15-й секунды** | замер: чужой колцентр укладывался в 13 с, наш заход — 41 с, посторонний бросил трубку на 24-й, то есть до первого вопроса. Само число 15 — моё |
| Т31 | нет номера менеджера — обзвон не стартует | иначе каждый звонок кончается неудачей, а деньги списываются полностью |
| Т42 | стоп-кран: остановить обзвон одной кнопкой, деньги вернуть | протокол не предусматривает остановки вовсе, а на линии живые люди и живые деньги |
| Т43 | нельзя обзванивать номера, которых нет в своих сделках | защита от того, чтобы портал стал орудием обзвона чужих баз |
| Т44 | «не звоните мне больше» — больше не звоним, и в следующих кампаниях тоже | протокол описывает отказ как исход разговора, но не запрещает набрать того же человека тем же списком через неделю |
| Т57 | смена тарифа не пересчитывает вчерашние звонки | иначе счёт клиента меняется задним числом |
| Т62 | за один звонок списываем ровно один раз | деньги живые; повтор списания — самая частая денежная ошибка |
| Т63 | клиент видит, за что списано, до копейки | без этого первый же спор о счёте нечем закрыть |
| Т64 | суточная сверка: списано = наговорено | датчик, который заметит расхождение раньше клиента |
| Т68 | по каждому звонку видно, почему звонили | жалоба «почему вы мне звоните» придёт обязательно, ответить надо фактами |
| Т73 | удалённая по сроку запись говорит словами, а не пустым плеером | на чужом материале ровно это и обмануло: плеер показывал «0:00 / 0:00», и понять, что файлы стёрты, удалось только отдельным разбором |
Отдельно: **§1 «честная оговорка»** — что менеджер клиента из процесса не
исчезает, а получает новую работу (сидеть в окне, принимать переводы, самому
звонить и слать визитки). Это не требование, а поправка к обещанию, которое
даётся клиенту при продаже.
---
## 15. Раздел «Осталось открытым» из протокола — разобран
Протокол помечает этот раздел последним, и часть его пунктов **устарела**:
они закрыты решениями, принятыми позже. Разбор — находка, а не работа; ничего
из перечисленного я не дорешивал.
### Считаю закрытыми — и вот чем
| пункт из «Осталось открытым» | чем закрыт |
|---|---|
| Сколько аудио нужно и что делать, если принесли три записи | **Р14** (просим 5–7, до 15, объясняем покрытие) и **Р15** (меньше пяти — не беремся) |
| Кто собирает скрипт — человек, машина или пополам | **Р10** — машина целиком, без ручной доводки |
| Приёмка перед боем — кто и по какому листу | **Р11** — приёмки голосом нет вовсе; утверждается **лист со скриптом**, прослушивание идёт после сборки и это показ |
| Одна Лена на клиента или несколько | **Р16** — одна Лена, скриптов много |
| Где живут скрипты клиентов и как их править | **Р17** (каталог, клиент ставит «в работу») и **Р12** (правит в любой момент через своего менеджера или техподдержку) |
| Правка клиента, которая вредит ему же | **Р23** — предупреждаем письменно одной строкой и делаем как он сказал |
| Путь (в) — письменные итоги сделок из CRM клиента | **Р3** — прямо «нет»; вход только три вещи |
| Записи чужих клиентов у нас на диске: **срок хранения** | **Р13** — 30 дней |
### Правда осталось открытым
1. **Обезличивание чужих записей.** Р13 назвал срок (30 дней), но про
обезличивание сказано только для **наших** записей (Р22). Что происходит с
расшифровками чужих записей после удаления звука — не решено.
2. **Восемнадцать пунктов из §13** — противоречия и места без старшинства.
Они не были в разделе «Осталось открытым» протокола, но открыты не меньше.
3. **Сколько нам стоит один звонок.** Названо в сменном промте как «дырка в
знании»: счёт поставщика голосового движка ни разу не сверялся со счётчиком.
Пока не измерено, тариф в 12 ₽ назначен вслепую.
---
## 16. Пожелания — не проверяем
Это не требования: по ним нельзя сказать «да» или «нет», глядя на работающую
программу. Держим отдельно, чтобы не путать с приёмкой.
- робот «не теряется, если разговор ушёл не туда, и умеет его поддержать»
(Р4) — направление, а не проверка; проверяемая часть из него вынута в Т13
и Т23;
- «широко знать, узко обещать» (Р5) как принцип — проверяемая граница вынута
в Т13;
- «правка скрипта должна быть такой же дешёвой, как правка любой настройки»
(Р12) — проверяемая часть вынута в Т16;
- сквозная запись «учит бота и развивает промт» (Р20) — польза, а не
требование; проверяемая часть в Т66;
- «универсальный солдат, займы — только образец» (Р8) — проверяемая часть
в Т8;
- **порядок переноса накопленной правки в каркас** (Р9) — кто именно и когда
забирает правку, которую попросили несколько клиентов подряд, и по какой
процедуре. Это работа людей: «процедура записана и у неё есть исполнитель» —
бумага о бумаге, на работающей программе такого не увидишь. Проверяемая часть
вынута в Т16 и Т19.
---
## 17. Приёмка: пять сквозных проверок на живой работе
Требования выше проверяются поштучно. Эти пять — про то, что фича собрана
целиком, и без них «сделано» говорить нельзя.
1. **Полный удачный круг.** Клиент подключён по §4–§5, поставил скрипт в
работу, робот дозвонился, поговорил, **перевёл на менеджера, менеджер
ответил**, разговор записан **со всеми тремя голосами**, деньги списаны по
тарифу, статус обзвона стоит в сделке.
2. **Круг с неудавшимся переводом.** Менеджер не взял — робот вернулся к
человеку, договорился о времени, письмо клиенту пришло с номером, датой и
временем, наружу не ушло ничего.
3. **Круг с обратным звонком.** Человека набирали с нескольких номеров,
разговор состоялся на одном; он перезвонил на этот номер — приняли и
продолжили с места обрыва; перезвонил на другой — не приняли.
4. **Круг с деньгами на нуле.** Счёт кончился посреди разговора — разговор
доведён до конца и списан целиком, счёт ушёл **в минус**, следующий номер не
набран, следующий обзвон не стартует до пополнения, клиент получил письмо.
5. **Круг с чисткой.** Записи клиента исчезли на 31-й день; наш звук исчез
через полгода; обезличенная расшифровка на месте; карточка сделки говорит
про удалённую запись словами.
---
**Ничего из открытых вопросов владельца в этой спеке не закрыто.**