Подключите нейросеть к amoCRM через вебхуки и Digital Pipeline / Salesbot плюс ваш backend. Бот квалифицирует сделки, ставит теги и подсказывает менеджеру, а вы платите в рублях — без VPN.
AI читает первичную заявку и поля сделки, оценивает горячесть и проставляет балл квалификации.
Размечает сделку тегами и подсказывает этап Digital Pipeline для распределения по воронке.
Готовит вариант ответа клиенту и следующий шаг — менеджер отправляет одним кликом.
Краткое резюме диалога и расшифровки звонка прямо в примечании к сделке.
amoCRM не ходит в модель напрямую. Между ними — ваш backend: он принимает событие сделки, вызывает AI API, а затем обновляет сделку через REST API amoCRM.
Вебхук на изменение сделки или шаг Digital Pipeline / Salesbot отправляет данные на ваш URL.
Парсит form-data, фильтрует тип события, собирает контекст сделки и системный промпт.
Запрос на российский эндпоинт с base_url и ключом — ответ модели в рублях.
PATCH /api/v4/leads с долгоживущим токеном: теги, поля и статус по ответу модели.
Express принимает вебхук amoCRM (form-urlencoded), OpenAI SDK обращается к GROWMI, а затем backend обновляет сделку через /api/v4/leads.
import express from "express"; import OpenAI from "openai"; const app = express(); app.use(express.urlencoded({ extended: true })); // amoCRM шлёт form-urlencoded const ai = new OpenAI({ baseURL: "https://api.growmi.ru/v1", apiKey: process.env.GROWMI_KEY!, }); app.post("/amo/hook", async (req, res) => { res.sendStatus(200); // сразу 200, чтобы amoCRM не ретраил const lead = req.body?.leads?.update?.[0]; if (!lead) return; // фильтр по типу события const r = await ai.chat.completions.create({ model: "gpt", max_tokens: 400, // потолок ответа = контроль расхода messages: [ { role: "system", content: SYSTEM_PROMPT }, { role: "user", content: `Сделка: ${lead.name}. Бюджет: ${lead.price}` }, ], }); const tag = r.choices[0].message.content ?? "новый"; await fetch(`https://${process.env.AMO_DOMAIN}/api/v4/leads`, { method: "PATCH", headers: { "Authorization": `Bearer ${process.env.AMO_TOKEN}`, // долгоживущий токен "Content-Type": "application/json", }, body: JSON.stringify([{ id: Number(lead.id), _embedded: { tags: [{ name: tag }] } }]), }); }); app.listen(3000);
const SYSTEM_PROMPT = `Ты — ассистент отдела продаж в amoCRM. По названию и бюджету сделки оцени горячесть лида. Верни ОДИН тег: «горячий», «тёплый» или «холодный». Не добавляй пояснений и кавычек — только сам тег.`;
GROWMI_KEY=wp-... # из кабинета GROWMI AMO_DOMAIN=mycompany.amocrm.ru # домен аккаунта AMO_TOKEN=eyJ0eXAi... # долгоживущий токен интеграции
Месячный потолок расхода в кабинете GROWMI. Дошли до лимита — запросы останавливаются, интеграция не уходит в минус.
В backend ограничьте число вызовов AI на одну сделку (lead_id), чтобы повторные вебхуки не множили запросы.
Ограничение длины ответа модели. Для тега или короткого резюме хватит 200–400 токенов — это дешевле и быстрее.
express.urlencoded), читать leads[update]access_token по refresh заранее, до истеченияДа. Облачная amoCRM умеет слать вебхуки и работать через Digital Pipeline / Salesbot, а ваш backend обращается к amoCRM по REST API /api/v4 с долгоживущим токеном интеграции. Доступа к серверу amoCRM не требуется.
Нет. Запросы к AI API идут на российский эндпоинт GROWMI, а amoCRM — российский сервис. VPN не нужен ни на сервере, ни в кабинете amoCRM.
amoCRM отправляет вебхуки в формате application/x-www-form-urlencoded с вложенными ключами вида leads[update][0][id], а не JSON. На backend нужно парсить form-data, а не разбирать тело как JSON.
Да. Оплата в рублях с карты или по счёту для юрлица с закрывающими документами. Иностранные карты и VPN не нужны.
amoCRM шлёт вебхук на каждое изменение сделки. Фильтруйте по типу события и храните последний обработанный lead_id + хэш изменения, чтобы обеспечить идемпотентность и не вызывать AI повторно.
Оставьте email — пришлём ключ, тестовый баланс и готовый шаблон вебхука для amoCRM на Node.js.