enВойти в Senler

Изменение переменных агентом

Настройте сохранение ответов клиента, изменение счётчиков и списков через инструкцию агента.

Сначала разрешите агенту чтение и запись нужных переменных.

Сохранение нескольких ответов

Агент может сохранить несколько переменных одной области за одно действие: например, город, количество товаров и согласие на звонок из одного сообщения. За раз можно изменить до 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». Повторное чтение не меняет число. Диапазон должен соответствовать ограничениям числовой переменной.

Почему переменная не изменилась

Проверьте по порядку:

  1. Для подстановки проверьте системное имя внутри {{...}} и наличие значения в выбранном источнике: проекте, текущем лиде или текущем диалоге.
  2. Для собственной переменной проверьте, что её определение существует в «Настройки» -> «Переменные».
  3. Если агент читает или меняет переменную инструментом, она добавлена в блоке «Переменные» и для неё разрешён нужный доступ.
  4. Для изменения выбран режим «Чтение и запись», а не «Только чтение».
  5. В групповом чате или комментариях однозначно указан нужный участник.
  6. Изменения агента сохранены и опубликованы; рабочий диалог использует новую версию.

Если участник или право записи не определены однозначно, безопасный результат — не менять значение и объяснить, что нужно уточнить.