Что делает
По id сделки из командной строки загружает сделку (crm.item.get через actions.v2.call.make) и её таймлайн дел (crm.activity.list через actions.v2.callList.make). Отправляет структурированный промпт в GPT-4o, просит JSON-рекомендацию и создаёт задачу (tasks.task.add через actions.v3.call.make), привязанную к сделке через UF_CRM_TASK.
Стек
Node.js 18+, openai.
Установка
pnpm add openai
Переменные окружения
export B24_HOOK='https://your.bitrix24.com/rest/1/secret'
export OPENAI_API_KEY='sk-...'
Запуск
npx tsx 08-ai-assistant.ts <DEAL_ID>
Исходник
skills/b24jssdk-recipes/examples/08-ai-assistant.ts.
Примечания
- Поиск сделки использует v3-поля (camelCase); список дел — классические поля в верхнем регистре (
OWNER_TYPE_ID,OWNER_ID,CREATED). - Переход на tool-calling OpenAI (параметр
tools, цикл function-calling) — современная форма; см. список предлагаемых примеров. - Промпт требует строгий JSON-ответ и использует
response_format: { type: 'json_object' }, чтобы это обеспечить. - Маппинг приоритета:
high → 2,medium → 1,low → 0соответствует enum приоритета задач Bitrix24.
Обработчик вебхуков
Express-сервер, который принимает исходящие события Bitrix24, подгружает детали через REST, маршрутизирует по имени события. Всегда возвращает 200.
Веб-поиск + LLM
Двухшаговый RAG: запрос к любому провайдеру веб-поиска, прогон результата через ваш LLM с цитатами [N], публикация ответа комментарием в таймлайн CRM на сделке.