Интеграция AI в Битрикс24 через AI Gateway: вебхуки и REST
Как подключить AI к Битрикс24: входящие вебхуки REST для чтения и записи CRM, обработка лидов и писем через OpenAI-совместимый API AI Gateway на своём сервере-посреднике.
Битрикс24 не ходит в сторонние API сам — интеграция строится через посредника: ваш сервер получает данные из CRM по входящему вебхуку REST, отправляет их в модель AI Gateway и пишет результат обратно тем же REST. Так автоматизируют разбор лидов, классификацию обращений и черновики ответов на письма. Всё на generic HTTP, без привязки к конкретным модулям.
Подготовка
В Битрикс24 создайте входящий вебхук (Разработчикам → Другое → Входящий вебхук) с правами на нужные сущности CRM — вы получите URL вида https://ваш-портал.bitrix24.ru/rest/1/КОД/. На стороне сервера понадобится ключ AI Gateway sk-aigate-… и базовый URL https://ai-gatewey.ru/v1. Оба секрета — в переменных окружения.
pip install openai requestsРеализация
- Настройте клиент и доступ к порталу
Один клиент OpenAI SDK на AI Gateway и базовый URL вебхука Битрикс24 из окружения:
import os, requests from openai import OpenAI B24 = os.environ["BITRIX_WEBHOOK_URL"].rstrip("/") # .../rest/1/КОД ai = OpenAI( base_url="https://ai-gatewey.ru/v1", api_key=os.environ["AIGATE_API_KEY"], ) - Обёртка над моделью
Функция, которая по тексту обращения возвращает нужный результат — здесь короткую тему лида для маршрутизации:
def classify(text: str) -> str: resp = ai.chat.completions.create( model="deepseek/deepseek-chat", messages=[ {"role": "system", "content": "Определи тему обращения одним словом: продажи, поддержка, жалоба, спам."}, {"role": "user", "content": text}, ], ) return resp.choices[0].message.content.strip() - Чтение и запись CRM через REST
Читаем лид методом
crm.lead.get, прогоняем комментарий через модель и дописываем результат обратно методомcrm.lead.update:def handle_lead(lead_id: int): lead = requests.get(f"{B24}/crm.lead.get", params={"id": lead_id}).json()["result"] comments = lead.get("COMMENTS", "") topic = classify(comments) requests.post(f"{B24}/crm.lead.update", json={ "id": lead_id, "fields": {"COMMENTS": comments + f"\n\n[AI] Тема: {topic}"}, }) - Запуск обработки
Вызывайте
handle_leadиз своего эндпоинта, куда Битрикс24 шлёт исходящий вебхук на событие, или по расписанию для новых лидов. Расход по токенам виден в кабинете AI Gateway.handle_lead(42)
Какие модели подойдут
Для классификации лидов и черновиков ответов на письма хватает быстрой недорогой модели; сложные разборы можно направить на флагман:
| Модель | Ввод, ₽/1М | Вывод, ₽/1М | Контекст |
|---|---|---|---|
| DeepSeek: DeepSeek V3 | 31 | 125 | 128K |
| OpenAI: GPT-5.4 Mini | 118 | 705 | 400K |
| Anthropic Claude Haiku Latest | 157 | 784 | 200K |
Частые вопросы
Нужен ли отдельный сервер-посредник?
Да. Битрикс24 не вызывает внешние API напрямую, поэтому между ним и AI Gateway стоит ваш код (сервер, serverless-функция или сценарий по расписанию). Он читает и пишет CRM по REST и обращается к модели.
Как запускать обработку автоматически при новом лиде?
Настройте в Битрикс24 исходящий вебхук или робота бизнес-процесса на событие (например, добавление лида) с адресом вашего эндпоинта. Эндпоинт принимает id сущности и вызывает обработчик.
Можно ли обойтись без Python?
Да — подход generic HTTP: те же REST-методы Битрикс24 и OpenAI-совместимый запрос к AI Gateway вызываются с любого стека (Node.js, PHP) или из no-code сценария n8n.
AI в Битрикс24 — начните с ключа AI Gateway
Получить ключ