Изменение переменных агентом
Настройте сохранение ответов клиента, изменение счётчиков и списков через инструкцию агента.
Сначала разрешите агенту чтение и запись нужных переменных.
Сохранение нескольких ответов
Агент может сохранить несколько переменных одной области за одно действие: например, город, количество товаров и согласие на звонок из одного сообщения. За раз можно изменить до 100 переменных проекта, одного лида или одного диалога. Все поля проверяются до записи: если хотя бы одно значение не подходит по типу или недоступно агенту, вся эта группа изменений отклоняется. Переменные, которые агент не передал, остаются без изменений.
В определении переменной задайте понятное описание, инструкцию для агента и ограничения значения. В описании объясните назначение поля, например «Количество товаров в заказе», а в инструкции укажите, когда и из какого ответа клиента его заполнять.
Пример правила для инструкции: «Когда клиент назовёт город и количество товаров, сохрани их вместе в переменные city и quantity этого лида. Согласие на звонок запиши в call_allowed только после явного ответа клиента».
Очистка переменной убирает её значение; отсутствие значения не равно числу 0 или логическому false. При обычном присваивании массив или объект заменяется целиком. Для изменения части значения используйте операции из следующего раздела.
Изменение счётчиков, списков и других значений
Агент может изменить уже сохранённое значение без предварительного чтения. Настройте доступ «Чтение и запись» и опишите требуемое действие, например:
- Число: «После подтверждения заказа увеличь
orders_countу этого лида на 1». Можно прибавлять и вычитать заданное число. - Список: «Добавь выбранный товар в
product_ids, сохрани прежние товары и не добавляй дубликаты». Можно добавлять элементы в начало или конец, добавлять только отсутствующие либо удалять указанные элементы. Обычное добавление сохраняет повторы; проверка уникальности сравнивает элемент целиком. - Текст: «Добавь новую заметку в конец
notes, сохранив предыдущие». Доступно добавление в начало или конец текста. - Логическое значение: «Переключи
reminder_enabledна противоположное значение». - Дата: «Запиши текущее время в
last_contact_at» или «Перенесиnext_contact_atна 2 дня вперёд». Сдвиг возможен для уже заполненной даты, в минутах, часах или днях; день означает 24 часа. - Объект: «Обнови поле
cityвdelivery_address, сохрани остальные поля». Можно изменить или удалить отдельные поля верхнего уровня. Вложенный объект в изменяемом поле заменяется целиком, а не объединяется по вложенным полям.
Если число, текст, флажок или список ещё не заполнены, относительное изменение начинается соответственно с 0, пустого текста, false или пустого списка. Итоговое значение должно соответствовать типу и ограничениям переменной.
Для первоначального заполнения сформулируйте правило: «Запиши source, только если у переменной ещё нет значения». Значения 0, false, пустая строка и пустой список уже считаются заданными и таким действием не заменяются.
Относительные изменения можно объединять с обычным сохранением в одну группу: например, записать город и одновременно увеличить счётчик заказов. К группе применяются те же проверки, что и при сохранении нескольких ответов: либо сохраняются все изменения, либо ни одно.
Случайное число
Для числовой переменной агент может выбрать случайное целое число в заданном диапазоне и сразу сохранить его. Обе границы включены, все числа в диапазоне равновероятны.
Например: «Выбери случайное целое число от 1 до 3 и сохрани в переменную лида offer_variant. Используй сохранённый вариант при дальнейшем общении».
Новая генерация заменяет прежнее число. Если вариант должен оставаться постоянным, уточните правило: «Сначала проверь offer_variant. Если значение уже задано, используй его; иначе сгенерируй и сохрани число от 1 до 3». Повторное чтение не меняет число. Диапазон должен соответствовать ограничениям числовой переменной.
Почему переменная не изменилась
Проверьте по порядку:
- Для подстановки проверьте системное имя внутри
{{...}}и наличие значения в выбранном источнике: проекте, текущем лиде или текущем диалоге. - Для собственной переменной проверьте, что её определение существует в «Настройки» -> «Переменные».
- Если агент читает или меняет переменную инструментом, она добавлена в блоке «Переменные» и для неё разрешён нужный доступ.
- Для изменения выбран режим «Чтение и запись», а не «Только чтение».
- В групповом чате или комментариях однозначно указан нужный участник.
- Изменения агента сохранены и опубликованы; рабочий диалог использует новую версию.
Если участник или право записи не определены однозначно, безопасный результат — не менять значение и объяснить, что нужно уточнить.