Интеграция - это когда заказ с сайта не живёт в почте, бот не дублирует лиды, CRM не спорит с 1С, а бухгалтерия не собирает вселенную из скринов. Если у вас это звучит как фантастика - поздравляю, вы в нормальной компании. Наша задача - превратить хаос в процесс, а не в «ещё один дашборд, который никто не открывает».
Ниже - про разрывы, про очереди, про 1С и про то, почему «вебхук настроим за пять минут» иногда превращается в пять дней, а иногда в пять недель. Шутки будут, но деньги от этого не пропадут, обещаю.
Точки разрыва: где теряются заказы
Классика: двойная доставка события без ключа идемпотентности. Гонка, когда оплата пришла раньше, чем CRM создала сделку. Ручной перенос «на сегодня», который забыли на завтра. Разные статусы в разных системах: на сайте «оплачено», в 1С «ожидает», у менеджера «уточнить». Это не «мелочи», это деньги, которые вы сами отправили в отпуск.
Ещё разрыв - человеческий фактор: «Вася всегда так перекидывал». Вася - прекрасный человек, но автоматизация не должна зависеть от того, выспался Вася или нет.
Контур «заказ - CRM - уведомление»
Нужен устойчивый ID заказа, очередь или воркер, лог, ретраи с backoff, дедупликация. Менеджеру уходит ссылка на карточку, а не «что-то случилось». Телеграм - транспорт, не база истины. Истина в CRM/ERP, иначе через месяц вы не восстановите историю, только мемы.
Если ночью упало - утром должно быть понятно: что именно, сколько раз пытались, что последнее сообщение об ошибке. Если вместо этого начинается расследование уровня «археология» - интеграция сделана как приключение, а не как инженерия.
1С и внешний мир: без мистики
Номенклатуру и остатки часто синхронизируют пакетами с checksum, а статусы оплаты и отгрузки - событийно, но с ограничением частоты, чтобы не устроить DDOS своей базе. Нужно правило расхождений: кто побеждает, как фиксируется ручная правка, чтобы она не стерлась следующим импортом.
Если кто-то говорит «1С сама всё сделает» - обычно это не 1С, это человек, который потом ночами плачет. 1С - как кухня: можно накормить стадион, но нужны продукты, рецепт и посудомойка.
Интеграции, которые выглядят как успех, но это ловушка
«У нас всё в Google таблице» - иногда ок как временный мост. Иногда это мост, который превратился в дом. Дом без фундамента красив снаружи, пока не пошёл дождь.
«Мы просто будем дергать API каждую секунду» - отличный способ познакомиться с блокировкой и счётом за трафик. Лучше дружить с событиями и расписанием.
Чек-лист зрелости (без розовых очков)
- Есть словарь статусов и владелец каждого статуса.
- Есть план, если внешний сервис лежит часами.
- Есть логи, которые можно читать без магии.
- Есть тестовые данные, а не «на проде проверим».
Если два пункта не выполняются - не пугайтесь, это лечится. Если четыре - лечится дороже и с матом.
Сложный контур удобно разобрать по входным: опишите системы и поток в контактах. Без обещаний «сделаем за выходные», зато без воды.