Менеджер закрывает сделку в Kommo — и тут же вручную открывает FreshBooks, копирует данные клиента, сумму, описание услуги и создаёт инвойс. На каждую сделку уходит 10–15 минут, а при росте команды ошибки становятся нормой. Кастомная интеграция Kommo и FreshBooks устраняет этот разрыв: инвойс создаётся автоматически в момент перехода сделки на нужный этап воронки.
Что умеет нативная интеграция — и где она заканчивается
В маркетплейсе Kommo нет официального коннектора с FreshBooks. Существуют решения через Zapier или Make — они позволяют создать базовый триггер «новая сделка → новый клиент в FreshBooks». Но у этого подхода есть жёсткие ограничения:
- Нет маппинга кастомных полей сделки в строки инвойса
- Невозможно передать несколько позиций (line items) из одной сделки
- Отсутствует обратная синхронизация: статус оплаты из FreshBooks не попадает обратно в Kommo
- Нет логики условий: инвойс создаётся на любом этапе, а не на конкретном
- Дублирование клиентов в FreshBooks при повторных сделках
Именно эти ограничения и решает кастомная интеграция.
Что решает кастомная интеграция от Exceltic.dev
- Триггер по этапу воронки — инвойс создаётся только при переходе на конкретный этап, например «Договор подписан» или «Выставить счёт»
- Кастомный маппинг полей — данные из полей сделки Kommo (сумма, описание, валюта, discount) передаются в соответствующие поля FreshBooks Invoice
- Множественные line items — если сделка содержит несколько продуктов или услуг, каждая позиция передаётся отдельной строкой инвойса
- Дедупликация клиентов — перед созданием инвойса система проверяет, существует ли клиент в FreshBooks по email, и использует существующий профиль вместо создания дубля
- Обратная синхронизация — при смене статуса инвойса в FreshBooks (Paid, Overdue, Sent) соответствующее поле в карточке сделки Kommo обновляется автоматически
- Ссылка в карточке — после создания инвойса прямая ссылка на него появляется в карточке сделки Kommo
Как работает интеграция — технический процесс
Архитектура подключения
Интеграция построена на связке Kommo Webhooks → middleware Exceltic → FreshBooks REST API. Kommo отправляет webhook-событие при смене этапа сделки, middleware обрабатывает payload и формирует запрос к FreshBooks API v1 через OAuth 2.0. Обратная синхронизация реализована через FreshBooks Webhooks, которые слушают события invoice.update.
Такой подход выбран намеренно: polling (периодические запросы) создавал бы нагрузку на API и задержку до нескольких минут. Webhook-архитектура обеспечивает синхронизацию в течение 3–5 секунд.
Пошаговый сценарий работы
- Менеджер переводит сделку на этап «Выставить счёт» в Kommo
- Kommo отправляет webhook с payload: ID сделки, ID контакта, сумма, кастомные поля
- Middleware Exceltic получает webhook и запрашивает полные данные сделки через Kommo API (
GET /api/v4/leads/{id}) - Система проверяет наличие клиента в FreshBooks по email (
GET /api/v1/clients?email=) - Если клиент найден — используется существующий
client_id; если нет — создаётся новый (POST /api/v1/clients) - Формируется инвойс с line items из позиций сделки (
POST /api/v1/invoices) - FreshBooks возвращает
invoice_idи публичную ссылку - Middleware записывает ссылку на инвойс в кастомное поле карточки сделки Kommo (
PATCH /api/v4/leads/{id}) - Менеджер видит ссылку на инвойс прямо в Kommo и отправляет его клиенту в один клик
Что происходит при ошибке
Если FreshBooks API недоступен или возвращает ошибку, middleware сохраняет событие в очередь и повторяет попытку через 1, 5 и 30 минут (exponential backoff). При трёх неудачных попытках в Kommo создаётся задача на ответственного менеджера с описанием ошибки. Все события логируются — это позволяет восстановить данные ретроспективно.
Реальный кейс
Digital-агентство, 8 менеджеров по продажам, ~60 сделок в месяц.
До интеграции каждый менеджер тратил в среднем 12 минут на создание инвойса вручную. При 60 сделках в месяц — это 12 часов потерянного времени команды ежемесячно. Плюс в FreshBooks накопилось более 200 дублей клиентов из-за ручного ввода.
После запуска интеграции инвойс создаётся автоматически в течение 5 секунд после смены этапа. Статус оплаты синхронизируется обратно в Kommo, что позволило настроить автоматическое напоминание клиентам через 3 дня после отправки неоплаченного инвойса. Количество дублей в FreshBooks за первые два месяца: ноль.
Результат: 12 часов в месяц возвращены команде, цикл выставления счёта сократился с 1–2 дней до нескольких секунд.
Для каких бизнесов подходит
Интеграция наиболее востребована в сервисном бизнесе с регулярными сделками: digital-агентства, консалтинговые компании, юридические и бухгалтерские фирмы, фриланс-студии. Везде, где менеджер закрывает сделку и сразу должен выставить счёт.
Подходит также для B2B-компаний с повторными клиентами — дедупликация и история инвойсов в разрезе клиента становятся особенно ценными при работе с долгосрочными контрактами.
Менее актуально для e-commerce и розничных продаж, где инвойсы генерируются платёжной системой автоматически.
Часто задаваемые вопросы
Можно ли настроить интеграцию Kommo и FreshBooks без разработчика?
Базовый триггер через Zapier настраивается самостоятельно за 30 минут, но он покрывает лишь простейший сценарий. Как только появляются кастомные поля, несколько line items, дедупликация клиентов или обратная синхронизация статусов — без разработчика не обойтись. Эти сценарии требуют прямой работы с FreshBooks API и Kommo Webhooks.
Сколько стоит кастомная интеграция Kommo и FreshBooks?
Стоимость зависит от сложности бизнес-логики: количества маппингов, наличия обратной синхронизации, кастомных условий и требований к логированию. Типовая интеграция с базовым набором функций разрабатывается за 2–5 рабочих дней. Точную стоимость Exceltic.dev рассчитывает после брифа.
Что происходит с данными если FreshBooks временно недоступен?
Middleware использует механизм retry с очередью событий. Ни одно событие не теряется — все они обрабатываются после восстановления доступности сервиса. Максимальная задержка при сбое — 30 минут.
Можно ли изменить логику интеграции после запуска?
Да. Например, добавить новый триггерный этап, изменить маппинг полей или подключить дополнительные типы объектов. Middleware построен модульно, поэтому изменения вносятся без переработки всей интеграции.
Поддерживает ли интеграция мультивалютность?
FreshBooks поддерживает мультивалютные инвойсы через поле currency_code. Если в сделке Kommo хранится валюта сделки (кастомное поле), интеграция передаёт её в инвойс автоматически. Это особенно важно для компаний, работающих с клиентами в разных странах.
Если вы хотите убрать ручной ввод данных между Kommo и FreshBooks — опишите вашу задачу команде Exceltic.dev. Мы разберём сценарий и предложим архитектуру под вашу воронку.