Блок «CRM / Закрыть сделку»

Этот блок связывает воронку с вашей CRM-системой: создаёт контакт, лид или сделку в amoCRM либо Bitrix24, а затем завершает диалог. Под капотом тут две разные роли. Блок «Закрыть сделку» — терминальный: он останавливает воронку (дальше из него связей нет). А сама выгрузка данных в CRM выполняется CRM-действиями (amoCRM / Bitrix24), которые вы ставите перед ним.

Типичный паттерн: сначала блок с CRM-действием (создать сделку с контактом), затем «Закрыть сделку» — клиент получил оффер, заявка ушла в CRM, диалог закрыт.

Когда использовать

  • Когда клиент дошёл до конца воронки и нужно зафиксировать заявку в CRM
  • Когда нужно создать контакт/лид/сделку из данных, собранных в боте (имя, телефон, email)
  • Когда после оффера диалог должен завершиться — чтобы клиент не «висел» в воронке
  • Когда нужно записать ID созданной сделки в переменную для дальнейших шагов

Настройки

CRM-действие (блок выгрузки данных) настраивается так:

  • Провайдер (crmProvider) — куда выгружать: `amocrm` или `bitrix24`. Без него блок ничего не делает. GetCourse устарел — для него используйте отдельное действие «Экспорт в GetCourse».
  • Действие (crmAction) — что создать: `create_contact` (контакт), `create_lead` (лид), `create_deal` (сделка с контактом).
  • Данные контакта — email, телефон, имя, фамилия. Если поле пустое, подставляются переменные по умолчанию: `{email}`, `{phone}`, `{first_name}`, `{last_name}`.
  • Название сделки / лида (title) — заголовок записи. Поддерживает переменные. По умолчанию «Лид из бота» / «Сделка из бота».
  • Сумма (amount) — бюджет сделки в рублях, число (можно через переменную).
  • Комментарий (comment) — текст-примечание (для Bitrix24 пишется в поле COMMENTS).
  • Результат → переменная (crmResultVariable) — имя переменной, куда записать ID созданной записи (или текст ошибки).

Для расширенных amoCRM/Bitrix24-действий доступны дополнительные поля: ID воронки, ID этапа/статуса, ответственный, поиск контакта, добавление задачи и заметки — каждое со своим набором полей.

Блок «Закрыть сделку» настроек не имеет — у него нет панели параметров. Достаточно поставить его в нужное место схемы.

Как работает

  • Блок «Закрыть сделку» при выполнении просто останавливает воронку (флаг stop). Исходящих связей у него нет — это конечная точка схемы.
  • CRM-действие проверяет провайдера и действие. Если их нет — возвращает ошибку и ничего не отправляет.
  • Все плейсхолдеры в полях (имя, телефон, заголовок, сумма) прогоняются через подстановку переменных перед отправкой.
  • Для `create_deal` создаётся связка «сделка + контакт» одним вызовом (имя/телефон/email клиента).
  • Результат пишется в переменную из «Результат → переменная»: при успехе — ID записи (или `success`), при ошибке — строка вида `error: <причина>`. Если переменная не указана, результат не сохраняется.
  • Ошибки CRM не роняют воронку: они логируются, в переменную пишется текст ошибки, выполнение продолжается.

Пример

1. Блок «Ввод» — спрашиваем телефон, сохраняем в `{phone}`. 2. Блок с CRM-действием: провайдер `amocrm`, действие `create_deal`, название «Заявка с бота #{client.name}», сумма `5000`, результат в переменную `amo_deal_id`. 3. Блок «Сообщение»: «Спасибо! Менеджер свяжется с вами. Номер заявки: #{amo_deal_id}». 4. Блок «Закрыть сделку» — диалог завершён, заявка в amoCRM.

Частые ошибки

  • Не настроена интеграция CRM. amoCRM/Bitrix24 работают только при заполненных учётных данных (поддомен, токены — задаются в настройках проекта). Без них блок вернёт ошибку «credentials not configured» и сделка не создастся.
  • Ждёте ветвления после «Закрыть сделку». Это терминальный блок — после него ничего не выполнится. Все CRM-действия и сообщения ставьте ДО него.
  • Запрос в CRM завис. Каждый вызов amoCRM имеет таймаут 30 секунд. Если CRM недоступна — в переменную результата попадёт ошибка, проверяйте её следующим блоком «Условие», если важна реакция на сбой.