Возвращаем часы, которые уходят на почту и заявки

Бесплатный аудит кейса

Учёт рекламаций собран в одну базу: 12 231 заявка

Бумага, таблицы и старая программа сведены в одну базу. Архив перенесён без дублей.

Как это работает

  1. Почта, форма, ввод

    Входящие

    Письмо клиента

    Форма с сайта, повторно

    Оператор принял звонок

  2. Сверка номеров

    Система учёта

    1. Повтор формы отсёк по ключу
    2. Выдал номер под блокировкой
    3. Привязал к истории клиента
  3. Одна база без дублей

    Заявка № Р2-0418

    Источник
    форма на сайте
    Клиент
    ООО «скрыто»

    В базе 12 231 заявка

    Номер выдан, дубля нет

было: три источника стало: одна база

Три источника пишут в одну базу, повтор формы дубля не даёт. Данные вымышлены.

Кейс в цифрах

  • 9 225квитанций перенесено
  • 12 231заявка в единой базе
  • 130конфликтов номеров разведено
Как проверяли

Импорт идемпотентен: прогнали повторно и сверили количество записей. Выдачу номеров проверили на одновременной работе нескольких операторов, приём заявок с сайта — на повторной отправке той же формы.

Технически
  • сервисы в Docker на Linux
  • база заявок
  • рабочая почта по стандартным протоколам
  • закрытый приём заявок с сайта по токену
  • доступ к интерфейсу только через защищённый канал
  • индексы под отчёты

Ситуация

Заявка приходила письмом, с формы на сайте и от оператора. Номера в разных источниках совпадали, историю клиента собирали по почте. Отчёты делали руками.

Что сделали

Собрали веб-интерфейс учёта и одну базу на три источника. Номера выдаются двумя сериями под блокировкой, приём с сайта закрыт токеном. Архив перенесли импортом без дублей: 9 225 квитанций, 130 конфликтов номеров разведены.

Как устроено подробно

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

Импорт идемпотентный: повторный прогон дублей не создаёт, иначе первая же ошибка удваивает базу. Правило разведения конфликтов номеров зафиксировали до начала переноса. Заведение заявки с сайта и из почты перестало стоить 5⁠–⁠10 минут ручного ввода.

Отдельно чинили ошибку блокировки: база отвечала «занято» при настроенном таймауте ожидания, потому что транзакция бралась не на входе, а на первой записи. Транзакции записи теперь открываются сразу, откат сделан переключателем.

Переносим в ваш проект

  • Три источника, одна база
  • Импорт без дублей
  • Правило для конфликтов номеров

Разберём ваш случай

Связаться