Перейти к содержанию

Персональные данные и хранение

Страница для владельца платформы, администратора и тех, кто отвечает за персональные данные. Записи звонков и расшифровки это разговоры клиентов, поэтому здесь собрано в одном месте: что хранится и где, кто это видит, что и при каких условиях может уйти с сервера, и какие решения о сроках хранения платформа оставляет вам.

Платформа распознаёт речь на вашем сервере, звук для этого никуда не отправляется. Тексты могут уйти наружу только в случаях, перечисленных ниже.

Что хранится и где

Данные Где лежат Какие персональные данные в них
Звук звонков бакет S3 или том Docker audio-data голоса и всё сказанное
Записи и расшифровки PostgreSQL номер телефона клиента, имя менеджера, текст разговора с теми именами, номерами и адресами, которые в нём прозвучали
Копия CRM PostgreSQL идентификаторы, типы, стадии, даты и суммы; имени и телефона клиента нет; имена сотрудников сохраняются
Результаты проверки звонков PostgreSQL коды, статусы, номера реплик и короткие тексты, которые написала модель: краткое содержание, главная ошибка, сильная сторона. Цитат разговора в результатах нет
Разметка звонков PostgreSQL оценка звонка человеком и кто её поставил
Учётные записи PostgreSQL имя, почта, роль, отдел; пароль хранится только в виде хеша
Ключи API PostgreSQL название, начало и хеш ключа; сам ключ показывается один раз и не хранится
Журнал действий PostgreSQL, только добавление кто читал, слушал и выгружал звонки, кто что менял

Номер клиента попадает в библиотеку звонков, когда платформа загружает запись из Битрикс24 или когда интеграция передаёт phoneNumber. В копию CRM номер клиента не попадает: из него берётся только страна звонка.

Кто это видит

  • Владелец видит всё, включая звонки без отдела.
  • Руководитель отдела видит звонки, расшифровки и звук своего отдела, добавляет менеджеров и открывает им разделы, читает журнал своего отдела.
  • Менеджер не видит ничего, пока руководитель не откроет доступ: к своим звонкам или ко всему отделу, и к отдельным отчётам.
  • Звонок без отдела (загрузка вручную, менеджер, которого никто не отнёс к отделу) виден только владельцу и ключам API. Звонок чужого отдела отвечает «не найдено», как будто его нет.
  • Ключ API видит данные всех отделов: записи, звук, расшифровки и отчёты. Ключ даёт интеграции права владельца на чтение и на повтор, отмену и удаление записей; создавать пользователей, ключи и менять настройки он не может. Выдавайте ключи только проверенным интеграциям и отзывайте ненужные.

Права читаются из базы при каждом запросе: отключение пользователя или права действует сразу. Подробнее: Роли и доступ.

Что пишется в журнал

Журнал открывается в «Настройки → Люди → Показать журнал действий». Владелец видит все события, руководитель только события своего отдела. Записи нельзя изменить или удалить: база отклоняет такие запросы.

В журнале есть В журнале нет
входы в систему чтение расшифровок, прослушивание и выгрузка через ключ API
изменения людей, прав, отделов, состава менеджеров продаж пароли и секреты
чтение расшифровки и прослушивание звонка человеком (одна запись на звонок и человека за 10 минут)
выгрузка расшифровок
изменения настроек, правил проверки, перепроверки, запуск расчётов

Внимание

Чтение через ключ API в журнал не пишется: ключ считается интеграцией, а не человеком. Если для вас это важно, ведите учёт обращений на стороне интеграции.

Что может покинуть сервер

Куда Что уходит При каких условиях Как остановить
Внешняя языковая модель Текст разговора с метками времени, правила отдела и словари, длина и направление звонка Сразу все условия: ANALYSIS_PROVIDER=openai-compatible, ANALYSIS_ALLOW_EXTERNAL_EGRESS=true; в панели включены проверка звонков и проверка отдела, дневной бюджет больше нуля, звонок не старше даты начала проверки отдела (по умолчанию 30 суток) Раздел ниже
Адрес колбэка интеграции Вся запись: данные звонка и полный текст Только если при создании записи указан callbackUrl Не указывать callbackUrl
Интеграции и пользователи Записи, звук, расшифровки, выгрузки Ключ API; выгрузка расшифровок руководителем или владельцем Отозвать ключ, ограничить права
Карточка сделки в Битрикс24 Комментарий: краткое содержание, этапы, возражения, балл, ссылка на запись Только при включённой записи итогов и отдельном вебхуке Выключить «Писать итоги звонков в сделки Битрикса»
Портал Битрикс24 Запросы на чтение Автоматический режим, загрузка истории Выключить автоматический режим
Hugging Face ничего не отправляется: только скачивание файлов моделей первый запуск распознавателя не требуется

Что получает языковая модель

  • Из запроса исключены номер телефона, имя менеджера и клиента, сделка и любые идентификаторы: в запросе таких полей нет.
  • В тексте номера (пять и более цифр) и адреса почты заменяются на [номер] и [почта] до отправки. Имена, прозвучавшие в разговоре, остаются: надёжного правила для них нет.
  • Текст длиннее примерно 30 000 знаков обрезается в середине.
  • Расход считается в токенах и ограничен дневным бюджетом. Бюджет по умолчанию равен нулю, пока владелец его не задаст.
  • Запросы к модели идут через клиент, который отказывается подключаться к адресам частной сети, если не включён ALLOW_PRIVATE_NETWORK_DOWNLOADS.
  • Пробный прогон правил в редакторе («Попробовать», до пяти недавних звонков) тоже отправляет тексты модели. Он не зависит от переключателей проверки и отдела, но останавливается при нулевом бюджете, паузе модели и паузе очереди.
  • Что делает с текстом сам провайдер модели, платформа не контролирует: условия хранения и обучения выясните у него.

По умолчанию способ проверки rules: словари фраз работают на сервере, и тексты звонков никуда не отправляются.

Как остановить отправку текстов

Любой из способов останавливает только новые запросы; запрос, который уже в пути, завершается.

Способ Где Как возобновить
Дневной бюджет, равный нулю «Настройки → Проверка звонков» → «Дневной бюджет модели» → «Сохранить бюджет» задать бюджет больше нуля
Очередь «Проверка звонков» на паузе «Настройки → Система → Очередь и ошибки» → «Фоновые очереди» → «Приостановить» «Возобновить»
Переключатель «Проверка звонков» «Настройки → Проверка звонков» включить
Проверка отдела «Проверять звонки отдела «…»» в правилах отдела включить
Переменная окружения ANALYSIS_PROVIDER=rules или none и повторное развёртывание вернуть значение и развернуть снова

Нулевой бюджет и пауза очереди останавливают всё, включая пробные прогоны; переключатели проверки и отдела пробные прогоны не останавливают. Чтобы убедиться, что отправки нет, наблюдайте строку «За последние 24 часа потрачено …» в карточке бюджета: она не должна расти, а в очереди «Проверка звонков» не должно быть заданий в работе.

Автоматический режим тоже пишет в переключатель «Проверка звонков»: его выключение выключает проверку, а включение включает её снова, если способ проверки задан. После экстренной остановки не трогайте автоматический режим или проверьте переключатель потом.

Чего платформа не делает намеренно

  • Не пишет в Битрикс24. Основное подключение только читает. Комментарии в сделки возможны лишь на боевом сервере, с отдельным вебхуком и по выключенному по умолчанию переключателю. См. Подключение Битрикс24.
  • Не удаляет данные по расписанию и пачкой. В платформе нет задания, которое удаляет записи, расшифровки, разметку или звук, и нет массового удаления. Это решение разработчиков: удаление должен выполнять человек и осознанно.
  • Не копирует имя и телефон клиента в копию CRM.
  • Не показывает адрес вебхука в интерфейсе и сообщениях об ошибках.
  • Не проигрывает клиенту уведомление о записи разговора.

Единственное удаление записей звонков, которое есть: одна запись за раз. Владелец нажимает «Удалить» в карточке звонка, интеграция вызывает DELETE /v1/recordings/{id}. Удаляются запись с расшифровкой, результатами проверки и разметкой этого звонка, а также файл звука, если его сохранила сама платформа (загрузка, ссылка, звонок из Битрикс24). Файлы, которые пришли извне (забор из хранилища, from-storage), остаются на месте. В журнале остаются события о звонке, в Битрикс24 остаются уже записанные комментарии.

Сроки хранения решает владелец

Ничего не истекает само: платформа не имеет срока хранения. Срок зависит от закона о персональных данных и от того, что сказано клиентам, поэтому его нужно выбрать до того, как писать механизм. Нужно определить:

  1. Сколько хранить звук. Это самая тяжёлая и самая идентифицирующая часть, а расшифровки и результаты проверки полезны и без неё. Для записи без файла API отвечает, что звука нет в хранилище, и продолжает отдавать расшифровку.
  2. Сколько хранить расшифровку и нужно ли после этого оставлять её без имён и номеров.
  3. Распространяется ли тот же срок на разметку и журнал. Журнал только для добавления намеренно, поэтому для него нужен иной механизм, чем для остальных таблиц.
  4. Кто может потребовать удалить звонки одного клиента и как их искать. Страница «Звонки» фильтрует по номеру (фильтр «Телефон»), а удалять звонки можно только по одному.
  5. Сообщают ли клиентам, что звонок записывается и анализируется. Платформа уведомления не проигрывает.

Когда сроки выбраны, звук проще всего убирать правилом жизненного цикла бакета у провайдера хранилища, вне платформы. Для базы данных подходит ручная процедура: человек проверяет изменение, заранее считает, сколько записей оно затронет, запускает его и оставляет запись в журнале. Задание, которое срабатывает само, для персональных данных не подходит.

См. также