Команда уже проверила данные в CRM — а payroll всё равно перенабирает их вручную
Команда проверяла данные сотрудников в CRM. Payroll вводил их заново. Как validation-мост убрал ежемесячное копирование между CRM и payroll SQL Server.
Команда уже проверила данные в CRM — а payroll всё равно перенабирает их вручную
Каждый месяц один и тот же ритуал. Открыть CRM. Открыть payroll. Скопировать первый договор — PESEL, суммы, даты, страховые флаги. Потом следующий. Потом ещё несколько сотен.
Бесит не то, что данные неверные или отсутствуют. Команда уже проверила их в CRM — совместно, внимательно, как и должны проверяться хорошие данные. Проблема в том, что происходит после этого: те же проверенные записи вручную перенабираются во вторую систему, которая никогда не была рассчитана слушать первую.
Этот разрыв — не данные, разрыв — там и живут часы и ошибки.
Две системы, один ручной шов
Польская HR и payroll-компания работала с двумя параллельными мирами:
- CRM — договоры, биллинг и записи сотрудников. Весь коллектив поддерживал систему, поэтому данные внутри были надёжными.
- Payroll-движок (SQL Server) — декларации ZUS, PIT и выплаты зарплат. Его вели бухгалтеры, и ничего туда не попадало случайно.
Между ними — ничего. Готовый коннектор не достаёт до legacy польской payroll-базы. Zapier и Make вежливо останавливаются на API. Мост между «проверено в CRM» и «живёт в payroll» — человек, клавиатура и сотни гражданско-правовых договоров, перенабираемых каждый месяц.
При таком объёме это не риск опечатки, которым можно управлять. Это полная зарплата за перенос данных, которые уже существовали.
Что мы построили
Мы не заменяли CRM. Мы не заменяли payroll. Мы построили недостающий шов между ними — узкий мост, который делает одну вещь исключительно хорошо:
CRM → validation → payroll. Проверено один раз, попало правильно — каждый раз.
Забирает. Мост получает данные месяца напрямую из CRM через REST API — семь связанных таблиц, с пагинацией и учётом tenant'ов, чтобы multi-entity компании оставались чисто разделены. Если API недоступен, переключается на защищённое подключение к базе. Бухгалтер об этом не думает.
Преобразует. Записи CRM редко совпадают со схемой payroll поле в поле. Мост берёт на себя негламурную реальность: legacy-форматы дат, соглашения по номерам договоров, полную разбивку ZUS, маршрутизацию каждой записи в нужное юрлицо. Маппинг, который люди делали в голове, теперь происходит одинаково каждый раз.
Проверяет перед записью — и это сердце решения. Пока хотя бы одна строка не прошла проверку, в payroll ничего не попадает. Мост независимо пересчитывает каждую сумму по актуальным польским налоговым правилам — ZUS, PIT, zdrowotne — и сравнивает результат с CRM:
- до 0,05 PLN → чисто
- до 1,05 PLN → помечено как известное округление между системами
- больше → остановлено и зафиксировано с диагностированной вероятной причиной
В payroll-базу ничего не попадает, пока проверка не пройдена. Ошибки, которые раньше всплывали при отклонении ZUS, теперь всплывают до записи — когда исправить их дёшево.
Импортирует безопасно. Проверенные записи записываются одним контролируемым проходом в таблицы сотрудников, договоров и обязательного страхования. Каждый запуск начинается с dry-run. Если что-то не так, вся партия откатывается чисто — без полуготового месяца, который нужно распутывать.
Чинит. Когда значение нужно поправить после импорта, мост синхронизирует отдельные записи по номеру договора — суммы, имена — без повторного импорта месяца. Обслуживание остаётся точечным, а не разрушительным.
«А разве Excel не решит?»
Годами решал. Excel был промежуточным шагом — и именно там рождались опечатки. Число, скопированное в таблицу и оттуда обратно, имеет два шанса ошибиться, прежде чем попасть в payroll.
Мост полностью убирает человека из копирования: проверенные данные CRM проходят validation и попадают прямо в payroll. Excel по-прежнему нужен — как audit export, запись того, что произошло — но больше не pipeline. Это чек.
Что реально изменилось
- До: сотни договоров перенабирались вручную каждый месяц → После: один контролируемый импорт после проверки командой в CRM
- До: опечатки обнаруживались при подаче ZUS → После: ловятся на validation, до любой записи
- До: примерно полная зарплата на ручной ввод → После: pipeline месяца работает за минуты
Главная цифра — около $30 000 в год возвращённого труда — из внутреннего time tracking компании. Мы помечаем её как измеренную, а не прогнозную: она отражает часы, которые исчезли из реального ежемесячного процесса.
Паттерн под поверхностью
Это был payroll-проект, но форма проблемы встречается везде. Когда проверенная информация живёт в одной системе, а операционная работа — в другой, кто-то тихо связывает их вручную и платит за это часами и ошибками.
Решение почти никогда не «купить платформу побольше». Это узкий, хорошо построенный мост с validation на границе — ПО, которое уважает системы, которым вы уже доверяете, и просто заставляет их говорить.
Если команда ведёт данные в одном месте и каждый месяц перенабирает их в другом — это не процесс. Это утечка. И о ней стоит поговорить.