Автоматизация фин. учета: Jobber → Google Sheet через N8N
Реализована комплексная и отказоустойчивая система автоматизации для клинингового бизнеса. Главная задача — настроить автоматический перенос данных из CRM Jobber в Google Sheets с помощью платформы n8n для точного расчета выплат клининговым командам (процентная и почасовая модель).
Что было сделано (Технические детали реализации):
- Секционная модель данных («Конструктор»): Строка визита в таблице разделена на независимые зоны (Визит, Инвойс, Платеж, Расчет). Каждый поток n8n обновляет только свои поля, что исключает конфликты при параллельной обработке вебхуков.
- Динамическая адресация (Header-based): n8n считывает номера колонок по ключам в первой строке таблицы. Менеджер может свободно менять столбцы местами — интеграция не сломается.
- Идемпотентность и защита от дублей: Реализована генерация уникальных ключей event_id и механика atomic upsert через n8n Data Table. Повторные вебхуки отсекаются автоматически, не создавая дубликатов.
- Гибкое распределение финансов:
- Написан алгоритм определения ответственного за наличные (Cash Taker) среди нескольких команд на визите на основе их типа и ID.
- Реализована логика расщепления мульти-визитных инвойсов (если один счет выставлен на несколько уборок, суммы делятся поровну).
- Режим «Ручное Редактирование» (Manual Lock): Создан механизм защиты данных. Если менеджер ставит галочку ручного корректирования на любой строке визита, автоматика полностью замораживает обновление этого объекта, чтобы не затереть ручные правки.
- Fail-safe и мониторинг:
- Интегрирована очередь ошибок — Dead Letter Queue (Failed_Events) прямо в Google Sheets для удобного разбора менеджером.
- Настроена политика ретраев Exponential Backoff для обхода лимитов API (429, 5xx). Создана система из 24 кастомных Telegram-алертов (разделенных по веткам: Info, Warnings, Errors) для моментального оповещения о расхождениях в суммах, отсутствии команд в справочниках или ошибках API.
- Оптимизация нагрузки: Расчет итоговых выплат (V), сумм уборки (N) и расхождений (R) полностью вынесен на сторону формул Google Sheets внутри строки, что уменьшило количество запросов к API и ускорило работу системы.
Стек технологий:
- n8n (Создание workflow, n8n Data Table для логирования и дедупликации)
- Jobber API (GraphQL, Webhooks, Верификация событий через HMAC-SHA256)
- Google Sheets API (Batch-обновления, работа с формулами)
- JavaScript / Node.js (Регулярные выражения, парсинг line items и логика фильтрации данных внутри n8n-узлов)
- Telegram Bot API (Маршрутизация уведомлений по топикам)
Результат для бизнеса:
Заказчик получил полностью автономную финансовую витрину. Ручная работа бухгалтера/менеджера сведена к минимуму — система сама собирает данные о выполненной работе, считает чистый доход за вычетом парковок и налогов, делит чаевые и начисляет зарплату клинерам. Все нестандартные кейсы или финансовые расхождения подсвечиваются через Telegram, что гарантирует 100% контроль за финансами.
Что было сделано (Технические детали реализации):
- Секционная модель данных («Конструктор»): Строка визита в таблице разделена на независимые зоны (Визит, Инвойс, Платеж, Расчет). Каждый поток n8n обновляет только свои поля, что исключает конфликты при параллельной обработке вебхуков.
- Динамическая адресация (Header-based): n8n считывает номера колонок по ключам в первой строке таблицы. Менеджер может свободно менять столбцы местами — интеграция не сломается.
- Идемпотентность и защита от дублей: Реализована генерация уникальных ключей event_id и механика atomic upsert через n8n Data Table. Повторные вебхуки отсекаются автоматически, не создавая дубликатов.
- Гибкое распределение финансов:
- Написан алгоритм определения ответственного за наличные (Cash Taker) среди нескольких команд на визите на основе их типа и ID.
- Реализована логика расщепления мульти-визитных инвойсов (если один счет выставлен на несколько уборок, суммы делятся поровну).
- Режим «Ручное Редактирование» (Manual Lock): Создан механизм защиты данных. Если менеджер ставит галочку ручного корректирования на любой строке визита, автоматика полностью замораживает обновление этого объекта, чтобы не затереть ручные правки.
- Fail-safe и мониторинг:
- Интегрирована очередь ошибок — Dead Letter Queue (Failed_Events) прямо в Google Sheets для удобного разбора менеджером.
- Настроена политика ретраев Exponential Backoff для обхода лимитов API (429, 5xx). Создана система из 24 кастомных Telegram-алертов (разделенных по веткам: Info, Warnings, Errors) для моментального оповещения о расхождениях в суммах, отсутствии команд в справочниках или ошибках API.
- Оптимизация нагрузки: Расчет итоговых выплат (V), сумм уборки (N) и расхождений (R) полностью вынесен на сторону формул Google Sheets внутри строки, что уменьшило количество запросов к API и ускорило работу системы.
Стек технологий:
- n8n (Создание workflow, n8n Data Table для логирования и дедупликации)
- Jobber API (GraphQL, Webhooks, Верификация событий через HMAC-SHA256)
- Google Sheets API (Batch-обновления, работа с формулами)
- JavaScript / Node.js (Регулярные выражения, парсинг line items и логика фильтрации данных внутри n8n-узлов)
- Telegram Bot API (Маршрутизация уведомлений по топикам)
Результат для бизнеса:
Заказчик получил полностью автономную финансовую витрину. Ручная работа бухгалтера/менеджера сведена к минимуму — система сама собирает данные о выполненной работе, считает чистый доход за вычетом парковок и налогов, делит чаевые и начисляет зарплату клинерам. Все нестандартные кейсы или финансовые расхождения подсвечиваются через Telegram, что гарантирует 100% контроль за финансами.