Окружение: Frontend: deploy-preview-795--chatplace-front.netlify.app ·
Backend: api-1698.review.chatplace.io ·
Юзер: 482@mail.com ·
Chrome на MI node · VPN через socks5
1. Создание сделки create_deal
✅ Позитивные — должна создаться сделка
Промпт: создавать сделку при намерении забронировать, заказать кейтеринг, оставить контакты, заказать доставку. Перед созданием — собрать имя + телефон/email.
✓
✗
«Хочу забронировать столик на субботу» → бот спрашивает имя+телефон → создаёт сделку
✓
✗
«Есть свободные столики на завтра вечером?» → при подтверждении интереса → собирает контакты → сделка
✓
✗
«Можно заказать кейтеринг на 30 человек?» → сбор данных → сделка
✓
✗
«Хотим организовать мероприятие на день рождения» → сбор данных → сделка
✓
✗
«Запишите мой телефон: +66812345678» → сделка с этим номером
✓
✗
«Хочу заказать доставку на дом» → сбор контактов → сделка
❌ Негативные — сделка НЕ должна создаваться
✓
✗
«Какое у вас меню?» → просто отвечает, без сделки
✓
✗
«Где вы находитесь?» → информация о локации, без сделки
✓
✗
«Сколько стоит паста?» → ответ про цены, без сделки
✓
✗
«Привет!» → приветствие, без сделки
2. Перевод → «Переговоры» move_deal
✅ Позитивные — сделка переходит на этап «Переговоры»
Промпт: переводить при уточнении деталей бронирования, вопросах о конкретном меню/спецпредложениях, стоимости кейтеринга, сравнении локаций.
✓
✗
«Нас будет 8 человек, в пятницу вечером» → этап «Переговоры»
✓
✗
«Что входит в сет-меню на террасе?» → этап «Переговоры»
✓
✗
«Сколько стоит кейтеринг на 50 человек?» → этап «Переговоры»
✓
✗
«Какая из ваших локаций больше подходит для свадьбы?» → этап «Переговоры»
✓
✗
«Есть ли у вас спецпредложения на будни?» → этап «Переговоры»
✓
✗
«Придём в субботу вечером» (первое упоминание) → этап «Переговоры», НЕ «Принимают решение»
✓
✗
«Нас будет 6, на субботу» (первое упоминание даты+гостей) → этап «Переговоры»
❌ Негативные — НЕ переводить
✓
✗
«Привет!» → НЕ переводит
✓
✗
«Спасибо за информацию» → НЕ переводит
✓
✗
«А где вы находитесь?» → общий вопрос, НЕ переводит
✓
✗
«Как погода в Таиланде?» → не по теме, НЕ переводит
3. Перевод → «Принимают решение» move_deal
✅ Позитивные — переход на этап «Принимают решение»
Промпт: переводить при подтверждении бронирования, конкретной дате/времени, запросе счёта, согласии на предложение, готовности прийти.
✓
✗
«Да, всё верно, бронируйте» (после обсуждения деталей) → этап «Принимают решение»
✓
✗
«Подтверждаю на субботу 19:00, как обсуждали» → этап «Принимают решение»
✓
✗
«Выставите счёт за кейтеринг» → этап «Принимают решение»
✓
✗
«Ок, давайте этот вариант кейтеринга» (после обсуждения) → этап «Принимают решение»
✓
✗
«Подтверждаю, всё устраивает» → этап «Принимают решение»
❌ Негативные — НЕ переводить
✓
✗
«Ещё подумаю» → НЕ переводит
✓
✗
«Может быть на следующей неделе» → неопределённость, НЕ переводит
✓
✗
«Интересно, но пока не уверен» → НЕ переводит
✓
✗
«Придём в субботу» (без предварительного обсуждения) → НЕ переводит, это «Переговоры»
✓
✗
«Нас будет 4, в пятницу вечером» (первое упоминание) → НЕ переводит, это «Переговоры»
4. Обновление данных в сделке update_deal
✅ Позитивные — данные обновляются
Промпт: обновлять при изменении телефона/email, даты/времени/кол-ва гостей, локации, особых пожеланий, имени контакта.
✓
✗
«Нас будет не 4, а 6 человек» → обновляет количество гостей
✓
✗
«Новый номер: +66899999999» → обновляет телефон
✓
✗
«Давайте лучше в локации на пляже» → обновляет локацию
✓
✗
«У одного гостя аллергия на орехи» → добавляет пожелание
✓
✗
«Перенесите на воскресенье, 18:00» → обновляет дату и время
✓
✗
«Бронирование на имя Александр» → обновляет контактное лицо
✓
✗
«Нужен детский стульчик и место на террасе» → добавляет пожелания
5. Одновременное срабатывание действий ⚠️ known issue
⚡ Создание сделки + перевод этапа в одном ответе
Обнаружено при тестировании: если в контексте диалога уже есть детали (дата, время, кол-во гостей), агент одновременно создаёт сделку И переводит её на другой этап. Сделка попадает сразу в «Переговоры» или «Принимают решение» вместо «Первичный контакт».
Тоггл «Переводить» ВКЛ → сделка сразу перескакивает «Первичный контакт» (⚠️ возможный баг)
✓
✗
Ожидаемое поведение: создание сделки и перевод этапа должны быть последовательными (сначала создать → потом в следующем ответе перевести)
✓
✗
Клиент даёт ТОЛЬКО контакт без деталей → сделка в «Первичный контакт» даже с тогглом ВКЛ
6. E2E сценарий: полный путь клиента
🔄 Клиент бронирует столик от начала до конца
#
Сообщение клиента
Ожидаемое действие
Этап AMO
1
«Привет! Хочу забронировать столик»
Бот спрашивает имя и телефон
—
2
«Меня зовут Анна, +66812345678»
Создаёт сделку
Первичный контакт
3
«Нас будет 4 человека, в субботу вечером»
Уточняет детали
Переговоры
4
«Что у вас из рыбных блюд в сет-меню?»
Отвечает по меню
Переговоры
5
«Да, всё отлично, бронируйте!»
Подтверждение обсуждённых условий
Принимают решение
6
«Кстати, нас будет 6, не 4»
Обновляет кол-во
update
7
«И нужен столик на террасе, пожалуйста»
Обновляет пожелания
update
7. Граничные случаи
✓
✗
Клиент сразу даёт телефон без просьбы бронировать → сделка создаётся (есть контакт)
✓
✗
Клиент спрашивает и о меню, и о бронировании в одном сообщении → бот отвечает на оба, инициирует сбор контактов
✓
✗
Клиент пишет на английском: «I'd like to book a table» → бот обрабатывает корректно
✓
✗
Два обновления подряд: «Нас будет 10. И лучше в 20:00» → оба поля обновляются
✓
✗
Клиент отменяет: «Отмените бронирование» → бот реагирует адекватно (не создаёт новую сделку)
8. Настройки внутри «Создавать сделку» create_deal settings
📌 Добавлять в этап (dropdown)
✓
✗
Dropdown «Добавлять в этап» показывает этапы воронки из amoCRM
✓
✗
Выбрать «Первичный контакт» → сделка создаётся на этом этапе
✓
✗
Сменить этап на другой → сделка создаётся на новом этапе
📋 Какие данные запрашивать
ИИ-агент автоматически запрашивает адрес почты и телефон. Без этих данных сделка не будет создана.
✓
✗
Клиент даёт только имя без телефона/email → сделка НЕ создаётся, бот дозапрашивает
✓
✗
Клиент даёт email → сделка создаётся
✓
✗
Клиент даёт телефон → сделка создаётся
✓
✗
Клиент даёт и email, и телефон → оба сохраняются в сделке
🏷️ Маппинг полей (Адрес → переменная ChatPlace)
✓
✗
Тоггл «Изменить» у поля «Адрес» включён → можно выбрать переменную ChatPlace
✓
✗
Dropdown переменной ChatPlace (interest) → значение передаётся в поле amoCRM
✓
✗
Выключить тоггл «Изменить» → поле передаётся со значением по умолчанию (или не передаётся)
✓
✗
Сменить переменную ChatPlace на другую → новое значение передаётся
➕ Добавить данные
✓
✗
Нажать «+ Добавить данные» → появляется новое поле для маппинга
✓
✗
Добавить кастомное поле amoCRM → маппинг сохраняется и работает
✓
✗
Удалить добавленное поле → маппинг убирается
💬 Оставлять комментарии к сделкам (тоггл)
✓
✗
Тоггл включён → после создания сделки в ней появляется комментарий с деталями диалога
✓
✗
Тоггл выключен → сделка создаётся без комментария
✓
✗
Комментарий содержит ключевые детали (имя, контакт, запрос клиента)
9. Настройки внутри «Переводить сделку на другой этап» move_deal settings
📌 Блоки этапов (множественные правила перевода)
Можно настроить несколько этапов, каждый со своим промптом-правилом. Dropdown показывает этапы воронки amoCRM.
✓
✗
Dropdown «Этап сделки» показывает все этапы воронки amoCRM (Первичный контакт, Переговоры, Принимают решение, Успешно реализовано)
✓
✗
Каждый блок этапа содержит: dropdown выбора этапа + текстовое поле «Опишите правила перевода»
✓
✗
Можно настроить разные правила для разных этапов (Переговоры — одни триггеры, Принимают решение — другие)
✓
✗
Сменить этап в dropdown → правило привязывается к новому этапу
➕ Добавить этап / 🗑️ Удалить этап
✓
✗
Нажать «+ Добавить этап» → появляется новый блок с пустым dropdown и полем правил
✓
✗
Добавить третий этап (напр. «Успешно реализовано») с правилом → сохраняется и работает
✓
✗
Удалить этап (🗑️) → блок исчезает, оставшиеся этапы сохраняются
✓
✗
Удалить все этапы → действие «Переводить» не вызывается агентом (нет настроенных правил)
🔄 Корректность перевода
✓
✗
Сделка на «Первичный контакт» → триггер «Переговоры» → сделка переходит на «Переговоры»
✓
✗
Сделка на «Переговоры» → триггер «Принимают решение» → сделка переходит корректно
✓
✗
Нельзя выбрать один и тот же этап дважды в разных блоках (или можно? — проверить поведение)
10. Настройки внутри «Обновлять данные в сделке» update_deal settings
📋 Какие данные можно менять
ИИ-агент автоматически обновляет адрес почты и телефон по запросу клиента.
✓
✗
Почта и телефон обновляются автоматически без дополнительной настройки
✓
✗
Клиент меняет email → обновляется в сделке amoCRM
✓
✗
Клиент меняет телефон → обновляется в сделке amoCRM
🏷️ Кастомные поля (City и др.) — тоггл «Изменить» + переменная ChatPlace
✓
✗
Тоггл «Изменить» включён у поля City → привязана переменная ChatPlace (interest) → значение обновляется
✓
✗
Тоггл «Изменить» выключен → поле НЕ обновляется агентом (даже если клиент присылает данные)
✓
✗
Несколько полей City с разными состояниями тоггла → обновляются только те, где «Изменить» включён
✓
✗
Поле с «Без переменной» (тоггл выкл) → не участвует в обновлении
✓
✗
Сменить переменную ChatPlace в dropdown → новая переменная передаётся при обновлении
✏️ Модалка «Изменить данные»
Открывается при клике на «Изменить» у поля. Содержит: dropdown «Поле в amoCRM», текстовое поле «В каком виде сохранять данные», кнопки «Удалить» и «Сохранить».
✓
✗
Модалка открывается при клике на «Изменить»
✓
✗
Dropdown «Поле в amoCRM» → показывает поля из amoCRM (City и др.)
✓
✗
Сменить поле в dropdown → сохраняется корректно
✓
✗
«В каком виде сохранять данные» — ввести формат (напр. @username) → сохраняется
✓
✗
Оставить поле формата пустым → сохранить → данные передаются как есть
✓
✗
Кнопка «Сохранить» → модалка закрывается, изменения применяются
✓
✗
Кнопка «Удалить» → поле удаляется из маппинга
✓
✗
Закрыть модалку (✕) без сохранения → изменения НЕ применяются
➕ Добавить данные
✓
✗
Нажать «+ Добавить данные» → появляется новое поле для маппинга
✓
✗
Добавленное поле сохраняется после перезагрузки страницы
✓
✗
Удалить добавленное поле → маппинг убирается
💬 Оставлять комментарии к сделкам (тоггл)
✓
✗
Тоггл включён → после обновления данных в сделке появляется комментарий с деталями
✓
✗
Тоггл выключен → данные обновляются, но комментарий НЕ создаётся
✓
✗
Комментарий содержит информацию об изменённых полях
11. Тогглы разрешений (UI) toggles
🔀 Включение/выключение отдельных действий
Confluence AC: при деактивации настройки сохраняются. Новое действие неактивно, но тестируемо.
✓
✗
Выключить тоггл «Создавать сделку» → агент НЕ создаёт сделки при триггерных фразах
✓
✗
Выключить тоггл «Переводить сделку на другой этап» → агент НЕ переводит сделки
✓
✗
Выключить тоггл «Обновлять данные в сделке» → агент НЕ обновляет данные
✓
✗
Выключить все три тоггла → ни одно AMO-действие не срабатывает
✓
✗
Включить тогглы обратно → действия снова работают
✓
✗
При деактивации тоггла настройки внутри действия сохраняются (промпт, маппинг)
✓
✗
Выключить только «Создавать сделку», оставить «Переводить» и «Обновлять» → перевод и обновление по существующим сделкам работают
12. Отключение интеграции целиком disable
🔌 Кнопка «Отключить» (вся интеграция amoCRM)
✓
✗
Нажать «Отключить» → статус меняется, все AMO-действия недоступны
✓
✗
При отключённой интеграции агент не вызывает AMO-инструменты даже при триггерных фразах
✓
✗
Подключить обратно → настройки (промпты, тогглы, маппинг) сохранились
✓
✗
После повторного подключения → действия работают как до отключения
13. Защита персональных данных privacy
🔒 Тоггл «Защита персональных данных клиентов» + URL
✓
✗
Тоггл включён + URL заполнен (http://myrules.io) → privacy url передаётся в API
✓
✗
Тоггл включён + URL пустой → валидация: показывается ошибка или предупреждение
✓
✗
Тоггл выключен → privacy url не передаётся, поле URL скрыто или неактивно
✓
✗
Ввести невалидный URL (без http/https, просто текст) → валидация
✓
✗
Выключить тоггл → включить обратно → URL сохранился
14. Настройки внутри действий (маппинг полей) mapping