Почему вашей CRM нужен кастомный Telegram-бот (amoCRM & Bitrix24)

Для большинства современных компаний мессенджеры стали основным каналом коммуникации с клиентами. Однако ручная обработка входящих запросов в чатах несет в себе массу рисков: менеджеры забывают отвечать на сообщения, контакты не сохраняются в базу данных, а первичная квалификация клиента занимает часы ручной переписки.
Интеграция кастомного Telegram-бота с вашей CRM-системой (amoCRM, Bitrix24, HubSpot) позволяет полностью автоматизировать первичный контакт с клиентом.
Бот вовлекает потенциального клиента в диалог, задает ему серию квалификационных вопросов с помощью инлайн-кнопок, оценивает лид по скоринговому алгоритму и моментально создает сделку в нужном этапе воронки продаж.
В этой статье мы спроектируем воронку квалификации, напишем алгоритм скоринга на TypeScript и настроим отправку данных в amoCRM API.
Архитектура квалификации лидов в Telegram
[Пользователь запускает бота]
│
v
[Вопрос 1: Бюджет проекта?] ──> [Инлайн-кнопки: до $2к, до $10к, от $10к+]
│
v
[Вопрос 2: Направление?] ──> [Инлайн-кнопки: SaaS, Телеграм-бот, Консалтинг]
│
v
[Запрос контактов] ──> [Кнопка отправки телефона или текстовый ввод почты]
│
v
(Алгоритм скоринга лида)
ЕСЛИ бюджет = "от $10к" ТОГДА Приоритет = "ВЫСОКИЙ" ИНАЧЕ Приоритет = "СРЕДНИЙ"
│
v
(Запрос к API amoCRM)
Создание Контакта ──> Создание Сделки ──> Привязка Контакта к Сделке
│
v
[Оповещение менеджеров в Slack/Telegram со ссылкой на карточку в CRM]
1. Проектирование скоринга лидов
Прежде чем отправлять данные в CRM, мы рассчитаем балл лида на бэкенде. Это поможет вашему отделу продаж в первую очередь обрабатывать самые прибыльные сделки.
export interface QualificationAnswers {
budget: string; // 'under_2k' | '2k_10k' | 'over_10k'
timeline: string; // 'immediate' | '1_month' | 'planning'
projectType: string; // 'saas' | 'bot' | 'consultation'
}
export interface LeadScore {
score: number;
priority: 'LOW' | 'MEDIUM' | 'HIGH';
}
export function calculateLeadScore(answers: QualificationAnswers): LeadScore {
let score = 0;
// 1. Оценка бюджета
if (answers.budget === 'over_10k') score += 50;
else if (answers.budget === '2k_10k') score += 30;
else score += 10;
// 2. Оценка срочности запуска
if (answers.timeline === 'immediate') score += 30;
else if (answers.timeline === '1_month') score += 20;
else score += 5;
// 3. Оценка соответствия стеку услуг
if (answers.projectType === 'saas') score += 20;
else if (answers.projectType === 'bot') score += 15;
else score += 5;
let priority: 'LOW' | 'MEDIUM' | 'HIGH' = 'LOW';
if (score >= 70) priority = 'HIGH';
else if (score >= 40) priority = 'MEDIUM';
return { score, priority };
}
2. Передача сделок в API amoCRM
Пример реализации на Node.js для создания контакта и сделки в amoCRM с использованием библиотеки Axios.
import axios from 'axios';
interface LeadPayload {
firstName: string;
phone: string;
telegramUsername?: string;
score: LeadScore;
answers: QualificationAnswers;
}
export async function pushLeadToAmoCRM(lead: LeadPayload) {
const subdomain = process.env.AMOCRM_SUBDOMAIN;
const token = process.env.AMOCRM_ACCESS_TOKEN;
const headers = {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
};
try {
// 1. Создаем контакт в amoCRM
const contactRes = await axios.post(
`https://${subdomain}.amocrm.ru/api/v4/contacts`,
[{
name: lead.firstName,
custom_fields_values: [
{
field_id: 111111, // ID поля "Телефон" в вашей amoCRM
values: [{ value: lead.phone, enum_code: 'MOB' }]
},
{
field_id: 222222, // ID поля "Telegram" в вашей amoCRM
values: [{ value: lead.telegramUsername ? `@${lead.telegramUsername}` : 'N/A' }]
}
]
}],
{ headers }
);
const contactId = contactRes.data._embedded.contacts[0].id;
// 2. Создаем сделку с указанием рассчитанной приоритетности
const leadName = `Лид [${lead.score.priority}]: ${lead.firstName}`;
const budgetValue = lead.answers.budget === 'over_10k' ? 10000 : (lead.answers.budget === '2k_10k' ? 5000 : 1500);
const dealRes = await axios.post(
`https://${subdomain}.amocrm.ru/api/v4/leads`,
[{
name: leadName,
price: budgetValue,
_embedded: {
contacts: [{ id: contactId }]
},
custom_fields_values: [
{
field_id: 333333, // ID кастомного поля "Тип проекта"
values: [{ value: lead.answers.projectType }]
},
{
field_id: 444444, // ID кастомного поля "Оценка ИИ"
values: [{ value: `Балл: ${lead.score.score}/100` }]
}
]
}],
{ headers }
);
return dealRes.data;
} catch (error: any) {
console.error('[CRM Error] amoCRM API Sync failed:', error.response?.data || error.message);
throw new Error('CRM Sync Error');
}
}
3. Оптимизация UI/UX внутри Telegram
Для повышения конверсии избегайте ручного ввода текста пользователем. Используйте нативные кнопки Inline Keyboard:
import TelegramBot from 'node-telegram-bot-api';
export function sendBudgetQuestion(bot: TelegramBot, chatId: number) {
bot.sendMessage(chatId, "Выберите примерный бюджет вашего проекта:", {
reply_markup: {
inline_keyboard: [
[
{ text: "До $2,000", callback_data: "budget_under_2k" },
{ text: "$2,000 - $10,000", callback_data: "budget_2k_10k" }
],
[
{ text: "Более $10,000", callback_data: "budget_over_10k" }
]
]
}
});
}
Источники и документация
- Telegram Bot API — инлайн-кнопки, callback-запросы и приём контактов
- Документация API amoCRM — методы создания контактов и сделок
- REST API Bitrix24 — аналогичные методы для Bitrix24
Автоматизация сбора контактов и мгновенная отправка лидов в amoCRM исключает влияние человеческого фактора: менеджеры не теряют переписки, а клиент получает ответ в течение первой минуты.
В моих проектах разработки ботов, таких как конструктор TeleGo.io, мы активно применяем подобные сценарии синхронизации для автоматической отправки активности пользователей в CRM. Для построения еще более сложной воронки можно объединить CRM-систему с ИИ-ботом поддержки на базе RAG, который будет квалифицировать лида и решать его первичные вопросы в диалоге.
Если вы хотите разработать кастомного Telegram-бота с интеграцией в amoCRM или Bitrix24 под задачи вашего отдела продаж, посмотрите мою услугу Создание Telegram-ботов под ключ или запишитесь на Консультацию.
Частые вопросы
Зачем боту скоринг лидов, если CRM и так собирает заявки?
Скоринг сортирует заявки до того, как их увидит менеджер: лид с бюджетом от $10 000 и срочным запуском попадает в CRM с высоким приоритетом и мгновенным уведомлением, а холодные заявки не отвлекают отдел продаж. Это ускоряет ответ самым прибыльным клиентам.
С какими CRM можно интегрировать Telegram-бота?
С любой системой, у которой есть API: amoCRM, Bitrix24, HubSpot, а также самописные CRM. Бот создаёт контакт, сделку в нужном этапе воронки и передаёт ответы анкеты в кастомные поля.
Почему в боте лучше кнопки, чем свободный ввод текста?
Инлайн-кнопки повышают конверсию прохождения анкеты: пользователю не нужно печатать, а бот получает предсказуемые данные без парсинга свободного текста. Ручной ввод остаётся только там, где без него нельзя — телефон или email.