Добавьте нейросеть в Битрикс24 через входящие и исходящие вебхуки и ваш backend. AI обрабатывает лиды, пишет ответы и резюмирует сделки, а результат пишется обратно в карточку через REST. Оплата в рублях, без VPN.
AI читает новый лид, размечает тему и приоритет, заполняет поля и ставит тег прямо в карточке.
Первая линия в чатах и открытых линиях: бот отвечает на типовые вопросы, сложное отдаёт оператору.
Транскрипт звонка или история сделки превращается в краткое резюме и список договорённостей в комментарии.
Генерация писем клиенту и черновиков коммерческих предложений по данным из карточки сделки.
Битрикс24 не ходит в модель напрямую. Между ними — ваш backend: он принимает событие или вызов робота, вызывает AI API и пишет результат обратно в CRM через REST.
Срабатывает исходящий вебхук на событие onCrmLeadAdd или робот в роботах CRM — Битрикс24 шлёт POST на ваш backend.
Сразу отвечает 200, проверяет идемпотентность по id и собирает системный промпт из полей карточки.
Запрос на российский эндпоинт с base_url и ключом — ответ модели в рублях, без VPN.
Backend пишет результат обратно через входящий вебхук REST — crm.lead.update или комментарий к сделке.
Express принимает исходящий вебхук, OpenAI SDK обращается к GROWMI, ответ пишется обратно через REST. Меняете baseURL и ключ — остальное стандартное.
import express from "express"; import OpenAI from "openai"; const app = express(); app.use(express.urlencoded({ extended: true })); const ai = new OpenAI({ baseURL: "https://api.growmi.ru/v1", apiKey: process.env.GROWMI_KEY, }); const seen = new Set(); // идемпотентность по id лида app.post("/bitrix/lead", (req, res) => { res.sendStatus(200); // сразу 200 — вебхук ждёт быстрый ответ const id = req.body.data?.FIELDS?.ID; if (!id || seen.has(id)) return; // дубль робота — пропускаем seen.add(id); handle(id); // обрабатываем асинхронно }); async function handle(id) { const { result: lead } = await b24("crm.lead.get", { id }); const r = await ai.chat.completions.create({ model: "gpt", max_tokens: 400, // потолок ответа = контроль расхода messages: [ { role: "system", content: SYSTEM_PROMPT }, { role: "user", content: JSON.stringify(lead) }, ], }); const note = r.choices[0].message.content; await b24("crm.lead.update", { // пишем результат обратно в карточку id, fields: { COMMENTS: note }, }); } function b24(method, body) { return fetch(process.env.B24_HOOK + method, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body), }).then((x) => x.json()); } app.listen(3000);
const SYSTEM_PROMPT = `Ты — ассистент отдела продаж в Битрикс24. По данным лида определи тему обращения и приоритет. Сформулируй короткое резюме и следующий шаг для менеджера. Пиши на русском, без воды. Не выдумывай контакты и суммы.`;
GROWMI_KEY=wp-... # из кабинета GROWMI B24_HOOK=https://your.bitrix24.ru/rest/1/abc123/ # входящий вебхук, scope: crm
Месячный потолок расхода в кабинете GROWMI. Дошли до лимита — запросы к модели останавливаются, портал не уходит в минус.
Счётчик обращений к AI на один id сделки или лида в вашем backend — защита от дублей робота и циклов автоматизации.
Ограничение длины ответа модели. Короче резюме или комментарий — дешевле запрос и быстрее запись в карточку.
crm для crm.lead.update200 и обрабатывать запрос асинхронно в фонеcrm при созданииПодойдёт и облако (bitrix24.ru), и коробка. Интеграция строится на вебхуках и REST API, которые есть в обоих вариантах. Для облака backend должен быть доступен из интернета, для коробки — иметь сетевой доступ к порталу.
Нет. Запросы к AI API идут на российский эндпоинт GROWMI, а к Битрикс24 — на ваш портал. VPN не нужен ни для AI, ни для CRM.
Робот и события могут срабатывать повторно. Делайте обработку идемпотентной: сохраняйте id лида и факт обработки, а при повторном вызове с тем же id просто возвращайте успех без нового запроса к модели.
Да. Оплата в рублях для юрлиц и ИП по счёту, с актами и счётом-фактурой. Иностранные карты и валютные платежи не нужны.
В Битрикс24 откройте «Разработчикам» → «Другое» → вебхуки. Создайте входящий вебхук для записи (scope crm) и исходящий — на событие onCrmLeadAdd или вызов из робота. URL входящего вебхука храните в .env.
Оставьте email — пришлём ключ, тестовый баланс и готовый шаблон обработчика вебхука на Node.js.