Kommo закрывает продажи, Sage ведёт бухгалтерию — но между ними нет нативного коннектора. Менеджер закрывает сделку и вручную переносит данные в Sage: реквизиты клиента, сумму, позиции, налоговый код, номер ledger account. При 40–50 сделках в месяц это несколько часов потерянного времени и стабильный источник ошибок. Кастомная интеграция Kommo и Sage устраняет этот разрыв полностью.
Почему нативной интеграции не существует
В маркетплейсе Kommo нет официального коннектора с Sage ни в одной из версий: ни с Sage Business Cloud Accounting, ни с Sage Intacct. Через Zapier или Make можно настроить базовый триггер — но он покрывает только простейший сценарий создания контакта. Реальная бизнес-логика требует прямой работы с Sage API.
Важно понимать, что Sage — это не один продукт:
- Sage Business Cloud Accounting — облачное решение для малого бизнеса с REST API
- Sage Intacct — платформа для среднего и крупного бизнеса с более сложной API-архитектурой и обязательным маппингом на ledger accounts
- Sage 50 — десктопное решение с ограниченным API
Статья описывает интеграцию с Sage Business Cloud Accounting и Sage Intacct — двумя наиболее распространёнными облачными версиями.
Ключевая особенность Sage: ledger accounts
В отличие от QuickBooks или FreshBooks, Sage требует привязки каждой строки инвойса к ledger account — счёту в плане счетов компании. Это означает, что при передаче line items из Kommo в Sage каждая позиция должна содержать не только название и сумму, но и корректный ledger_account_id.
Именно здесь ломаются все попытки настроить интеграцию через Zapier: без маппинга ledger accounts инвойс в Sage либо не создаётся, либо создаётся с ошибками в бухгалтерском учёте. Кастомная интеграция решает это через конфигурационную таблицу маппинга: каждый тип продукта или услуги из каталога Kommo соответствует конкретному ledger account в Sage.
Что решает кастомная интеграция от Exceltic.dev
- Триггер по этапу воронки — инвойс в Sage создаётся строго при переходе сделки на нужный этап, например «Выставить счёт» или «Договор подписан»
- Маппинг ledger accounts — каждая позиция из каталога Kommo автоматически привязывается к соответствующему ledger account в Sage через конфигурационную таблицу
- Полный маппинг line items — название, количество, unit price, скидка, налоговый код передаются в каждую строку инвойса Sage
- Дедупликация контактов — перед созданием инвойса система проверяет наличие клиента в Sage по email и использует существующий
contact_idвместо создания дубля - Обратная синхронизация — при смене статуса инвойса в Sage (Paid, Void, Overdue) кастомное поле в карточке сделки Kommo обновляется автоматически
- Поддержка Sage Intacct — для компаний на Sage Intacct интеграция поддерживает дополнительные объекты: dimensions, departments, locations
- Ссылка в карточке — после создания инвойса его номер и прямая ссылка записываются в кастомное поле сделки Kommo
Как работает интеграция — технический процесс
Архитектура подключения
Интеграция построена на связке Kommo Webhooks → middleware Exceltic → Sage Business Cloud API. Аутентификация с Sage реализована через OAuth 2.0 с автоматическим обновлением refresh token. Обратная синхронизация работает через Sage Webhooks, которые уведомляют middleware при изменении статуса инвойса.
Ключевое отличие от интеграций с QuickBooks или FreshBooks — обязательная инициализация при запуске: middleware загружает полный список ledger accounts из Sage (GET /ledger_accounts) и строит таблицу маппинга совместно с бухгалтером клиента. Без этого шага корректное создание инвойсов невозможно.
Пошаговый сценарий работы
- Менеджер переводит сделку на этап «Выставить счёт» в Kommo
- Kommo отправляет webhook с ID сделки на endpoint middleware
- Middleware запрашивает полные данные сделки
GET /api/v4/leads/{id}и контактаGET /api/v4/contacts/{id} - Система ищет контакт в Sage:
GET /contacts?email={email} - Если контакт не найден — создаётся новый
POST /contacts - Для каждой позиции сделки middleware определяет
ledger_account_idиз таблицы маппинга - Формируется объект Invoice с массивом line items, tax_rate_id, payment_terms_id
- Инвойс создаётся:
POST /sales_invoices - Sage возвращает
invoice_idи номер инвойса - Middleware записывает номер и ссылку в кастомные поля сделки Kommo:
PATCH /api/v4/leads/{id} - При изменении статуса инвойса в Sage — Webhook обновляет поле
Payment Statusв Kommo
Что происходит при ошибке
При ошибке со стороны Sage API middleware сохраняет событие в очередь с exponential backoff: повторные попытки через 1, 5 и 15 минут. При трёх неудачных попытках в Kommo создаётся задача на ответственного менеджера с описанием ошибки. Особый случай — ошибка маппинга ledger account: если позиция сделки не найдена в таблице маппинга, middleware не создаёт инвойс с ошибочными данными, а немедленно уведомляет менеджера с просьбой уточнить тип позиции.
Реальный кейс
Финансовый консультант, 3 менеджера, ~35 сделок в месяц, клиенты в UK.
Компания использовала Sage Business Cloud Accounting как основную бухгалтерскую систему — стандарт для малого бизнеса в UK. Kommo использовался для управления воронкой. Между ними — полный разрыв: каждый закрытый контракт требовал ручного создания инвойса в Sage с правильным ledger account для каждой услуги (консультация, аудит, подготовка отчётности).
Бухгалтер тратил 3–4 часа в неделю на создание инвойсов и проверку корректности ledger account маппинга. Примерно раз в месяц возникала ошибка в маппинге — инвойс уходил клиенту с неправильным account code, что требовало исправления и повторной отправки.
После запуска интеграции инвойсы создаются автоматически через 5 секунд после смены этапа в Kommo. Маппинг ledger accounts настроен один раз и работает без участия бухгалтера. Статус оплаты виден прямо в воронке Kommo.
Результат: 14 часов в месяц возвращено бухгалтеру, 0 ошибок маппинга за 6 месяцев, цикл выставления инвойса сократился с 1–2 дней до нескольких секунд.
Для каких бизнесов подходит
Интеграция наиболее актуальна для компаний в UK и EU, где Sage является стандартом бухгалтерского учёта — особенно в сфере профессиональных услуг: финансовый консалтинг, бухгалтерские фирмы, юридические компании, архитектурные бюро.
Для компаний на Sage Intacct интеграция особенно ценна при наличии сложной организационной структуры: несколько юридических лиц, departments и locations — всё это маппируется через dimensions Sage Intacct на данные воронки Kommo.
Часто задаваемые вопросы
Почему нельзя интегрировать Kommo и Sage через Zapier?
Zapier может передать базовые данные контакта, но не умеет маппировать line items на ledger accounts Sage. Без корректного ledger_account_id в каждой строке инвойс либо не создаётся, либо создаётся с ошибками в бухгалтерском учёте. Это требует прямой работы с Sage API и конфигурационной логики на стороне middleware.
Поддерживает ли интеграция Sage Intacct?
Да. Sage Intacct имеет собственный API на базе XML/SOAP (старая версия) и REST (новая версия). Middleware Exceltic поддерживает оба варианта и дополнительно передаёт dimensions: department, location, project — из кастомных полей сделки Kommo.
Как настраивается маппинг ledger accounts?
При запуске интеграции Exceltic.dev проводит сессию с бухгалтером клиента: загружает список ledger accounts из Sage и совместно строит таблицу маппинга — какой тип продукта или услуги из каталога Kommo соответствует какому account code в Sage. После этого маппинг работает автоматически.
Что происходит если в сделке появляется новый тип услуги без маппинга?
Middleware не создаёт инвойс с некорректными данными. Вместо этого в Kommo создаётся задача с просьбой уточнить ledger account для новой позиции. После добавления маппинга инвойс создаётся автоматически.
Сколько времени занимает разработка интеграции Kommo и Sage?
Базовая интеграция с маппингом line items и обратной синхронизацией — 4–6 рабочих дней. Версия для Sage Intacct с поддержкой dimensions — 8–12 рабочих дней. Exceltic.dev определяет точные сроки после технического брифа.
Если вы хотите автоматизировать создание инвойсов Sage из воронки Kommo — опишите вашу задачу команде Exceltic.dev. Разберём маппинг и предложим архитектуру под вашу бухгалтерскую структуру.