Telegraft

Тип бота

Один источник истины — и это та CRM, за которую вы уже платите

Telegram-бот с подключённой CRM читает и пишет записи в той воронке, которую ваша команда уже ведёт, поэтому разговор в Telegram обновляет ту же самую сделку, которую продавец видит в HubSpot или Salesforce. Он убирает двойной ввод. Починить CRM, данным которой уже нельзя доверять, он не может.

Боты с подключённой CRM: цена, сроки и ограничения

Фиксированная цена
$4,600 USD
Срок
24 календарных дня с момента старта
Потолок HubSpot
~100 запросов за 10 секунд на аккаунт, стандартные тарифы
Потолок Salesforce
Суточная квота вызовов на организацию, а не на интеграцию
Семантика вебхуков
Как минимум один раз, не по порядку и с дублями
Контроль параллельной записи
У большинства CRM его просто нет

As of 2025-10-01, Telegram Bot API 13.4

Какую задачу это решает

Отказ, ради предотвращения которого этот проект и существует, — вторая база. Команда ставит бота, бот ведёт собственные записи, и через квартал на вопрос, на какой стадии сделка, есть два ответа. Никто не решает, какой из них главный, потому что расхождение замечают только тогда, когда прогноз оказался неверным. К этому моменту свести их — уже проект, а не правка.

Подключить бота к действующей CRM менее эффектно и куда полезнее. Источником истины остаётся CRM. Бот становится быстрой витриной поверх неё: продавец правит сделку из такси, клиент отвечает на квалифицирующий вопрос и ответ ложится в настоящую карточку контакта, руководитель вытягивает воронку в групповой чат, не открывая ноутбук.

Сложное здесь не интерфейс. Сложное — разметка полей и то, что происходит, когда одну и ту же запись меняют с обеих сторон. У большинства CRM нет вменяемого контроля параллельных изменений, поэтому в проекте приходится явно решить, чья сторона побеждает, и сделать проигравшее значение видимым, а не тихо выброшенным. Именно на этом решении расходятся грамотная интеграция и правдоподобная на вид, и принимать его стоит осознанно и в самом начале.

Как идёт разработка

  1. Разметка полей согласуется до того, как что-то построено

    Какой объект CRM, какие поля, в какую сторону течёт каждое и что означает пустое значение. Это рабочая сессия, а не экран настроек, и пропустить её — самый надёжный способ получить интеграцию, которую придётся переделывать.

    webhook
  2. Бот авторизуется как служебный пользователь, а не как человек

    Отдельный пользователь CRM с ограниченными правами. Работать под учётной записью продавца получается ровно до его увольнения, после которого все автоматические записи встают, а журнал действий превращается в выдумку.

    webhook
  3. Запись сначала попадает в локальную очередь и только потом в CRM

    Бот фиксирует задуманное изменение у себя и подтверждает его пользователю, а затем отправляет в CRM с повторами. Лимит частоты или технические работы задерживают запись; потерять её они не могут, и пользователю никогда не сообщают о том, чего не произошло.

    webhook
  4. Входящие изменения приходят по webhook там, где CRM это умеет

    Смена стадии в Salesforce доходит до бота за секунды. Там, где вебхуки недоступны или ненадёжны, по расписанию работает опрос, и оба источника сверяются между собой, а не принимаются на веру по отдельности.

    webhook
  5. Конфликты разрешаются по правилу, и проигравшего показывают

    Обычно побеждает последняя запись по каждому полю, а по всему, что человек правил в CRM руками, главной остаётся CRM. Важно не то, какое правило вы выбрали, а то, что отброшенное значение попадает в журнал, который кто-то читает, а не исчезает.

    webhook
  6. Продавцы правят сделки в том же чате, где и так сидят

    Короткая команда или инлайн-кнопка двигает стадию, записывает звонок или ставит следующий шаг. Ценность в том, что это происходит в момент разговора, а не пачкой в конце недели, когда детали уже стёрлись.

    commands

Что Telegram разрешает, а что нет

Интерфейс HubSpot на стандартных тарифах допускает порядка 100 запросов за 10 секунд на аккаунт.

Массовую первичную синхронизацию существующей воронки приходится растягивать на минуты. Это разовая цена запуска, но её планируют заранее, а не обнаруживают, когда аккаунт придушили посреди миграции.

Salesforce считает суточную квоту вызовов на всю организацию, а не на каждую интеграцию.

Ваш бот конкурирует со всеми прочими вашими интеграциями. Частота синхронизации становится вопросом бюджета, и болтливый бот способен выбрать квоту организации и сломать посторонние системы.

Большинство CRM не предлагают оптимистичного контроля параллельных изменений при обновлении записи.

Две системы, пишущие в одно поле в одну и ту же секунду, дают результат «побеждает последний» без всякой ошибки. Поэтому политика конфликтов — это ваше проектное решение, а не то, что за вас обеспечит CRM.

Вебхуки CRM доставляются как минимум один раз и могут прийти дважды или не по порядку.

Каждый обработчик идемпотентен и опирается на версию записи, а не считает, что каждая доставка новая. Без этого повторная доставка снова применит смену стадии, которую человек уже откатил.

Администраторы CRM регулярно переименовывают собственные поля без предупреждения.

Разметка ссылается на внутренние идентификаторы полей, а не на подписи, и разметка, переставшая разрешаться, поднимает тревогу вместо того, чтобы записать данные не в то поле. Тихая запись не туда обходится намного дороже, чем громкий отказ.

Когда это не нужно строить

  • Данным в вашей CRM уже нельзя доверять. Интеграция разносит то, что там лежит, быстрее и по большему числу мест; чистить она ничего не будет.
  • Вы хотите, чтобы бот стал основной системой учёта. Тогда вам нужна не интеграция с CRM, а другой проект, а смешивание этих двух вещей и порождает проблему двух баз, ради которой всё затевалось.
  • Ваша CRM тяжело доработана серверной автоматикой на запись. Каждая запись бота запустит процессы, которых никто не описывал, а побочные эффекты обнаруживаются обычно уже в бою.
  • CRM пользуются всего один-два человека. Проблема двойного ввода, которую вы решаете, меньше интеграции, которую вы покупаете.

На чём это работает

КомпонентВерсияЗачем
grammY1.45Фреймворк бота и набор команд для продавцов.
Cloudflare WorkerscurrentСреда исполнения, с триггером по расписанию, который крутит резервный опрос.
Cloudflare D1currentОчередь записи, курсоры синхронизации и журнал конфликтов.
Zod4.4Проверка схемы на каждом ответе CRM, потому что его форму контролируете не вы.
TypeScript5.9Строгий режим, разметка полей выражена типами, а не строками.

О чём спрашивают перед стартом

С какими CRM реально имеет смысл интегрироваться?

HubSpot, Pipedrive, Zoho и Airtable — прямолинейны и хорошо документированы. Salesforce вполне посилен, но дороже из-за планирования квоты вызовов и объёма доработок, специфичных для конкретной организации. Коробочная или самописная система оценивается отдельно.

Что происходит, когда CRM недоступна или душит запросы?

Запись уже сохранена локально, и пользователю уже сказано, что всё прошло, — потому что оно и прошло. Отправка повторяется с нарастающей паузой, а если попытки исчерпаны, человеку приходит оповещение с точной записью и содержимым запроса. Ничего не теряется.

Кто побеждает, когда одно поле меняют и бот, и продавец?

По умолчанию CRM — на том основании, что у человека, который правит напрямую, есть контекст, которого у бота нет. Важнее другое: отброшенное значение пишется в журнал конфликтов, который кто-то просматривает, поэтому плохое правило проявляется как закономерность, а не как загадка.

Он умеет создавать новые записи или только обновлять существующие?

И то и другое, хотя дубли берутся именно из создания. Новые записи перед созданием сопоставляются с существующими по тем ключам, которые вы назначили, а неоднозначное совпадение поднимается на человека, а не разрешается угадыванием.

Запустит ли это наши действующие процессы в CRM?

Да, и к этому стоит отнестись серьёзно. Запись от бота неотличима от любой другой программной записи, поэтому сработает вся автоматика, навешенная на эти объекты. Опись существующей автоматики входит в оценку именно потому, что сюрпризы здесь дорогие.

Может ли руководитель смотреть воронку, не открывая CRM?

Да. Команда публикует текущий срез в группу, и собирается он по запросу, а не по расписанию, поэтому устаревшим не бывает. Витрина сознательно сделана только для чтения: правка воронки из сводки — это способ поменять запись случайно.

Сколько занимает рабочая сессия по разметке полей?

Обычно две встречи. Первая вытаскивает наружу, что поля вообще должны означать, — и нередко это первый раз, когда кто-то это записывает. Вторая фиксирует направления потоков и правила конфликтов. Это самая рычажная часть проекта.