Создание сценариев в конструкторе Fromni

Сценарий - модуль, позволяющий настраивать цепочки входящих и исходящих сообщений, которые будут автоматически отправляться через каналы (мессенджеры) Вашим клиентам.
Инструкция от 2 октября 2024 года.
Создание сценария
Для того чтобы создать чат-бота, в первую очередь необходимо зайти в наше приложение Fromni by Imobis.
Для входа можно воспользоваться ссылкой https://auth.fromni.com/ru
Если вы ещё не зарегистрированы в нашем приложении, посмотрите следующую статью.
1. В приложении Fromni нужно перейти в Сценарии —> Мои сценарии и нажмите Создать сценарий.
2. Напишите название сценария. Галочка рядом с Сценарий кампании ставится в случае, если данный сценарий будет инициироваться с Вашей стороны, например: массовая рассылка (подробнее о типах сценариев).
3. После нажатия на кнопку Далее, у вас откроется окно, как на скрине ниже (вариант, если вы поставили галочку на Сценарий типа «кампании»):
  • вкладка «Сценарий», где есть рабочая область (1), меню добавления действий бота (2), действия внутри рабочей области (3), мини-карта (4);
  • вкладка «Настройки» (5), где можно задать дополнительные настройки, такие как «что делать в случае неизвестной ошибки» или «сколько сценарий должен действовать»;
  • вкладка «Аналитика» (6), где можно посмотреть подробную статистику по данному боту;
  • панель управления (7), где можно сохранить все изменения, посмотреть логин профиля или выйти из конструктора.
Если вы не поставили галочку, то автоматически создаётся сценарий типа «бот» и тогда новое окно будет выглядеть точно также, но с добавлением вкладки Интеграции, где необходимо привязать его к нужным каналам.
Конструктор сценария
В этом разделе вы можете добавлять блоки из меню слева, выстраивать между ними связи, тем самым конструируя диалог с клиентом.
Блок 1. Сообщение.
Блок предназначен для коммуникации с пользователем, то есть тут Вы создаете сообщения, которые бот будет отправлять Вашему клиенту. Блок может содержать несколько сообщений, эмодзи, клавиатуру (кнопки привязанные к сообщению), вложения (картинки и документы привязанные к сообщению).

  • Для того чтобы добавить в сценарий блок Сообщение, нажмите на него в левой панели.

  • Затем нажмите на шестеренку в верхнем правом углу блока Сообщение, чтобы было удобнее работать с сообщением.

  • В открывшемся окне, Вы можете выбрать вид окна для работы с блоком («Боковая панель» или «Модальное окно»).
Разберем основные поля сообщения:
  1. Бот говорит.
В данном поле пишем сообщение, которое будет «говорить» наш бот. При помощи кнопки +сообщение можно добавить еще одно поле, для ввода текстового сообщения.
Некоторые каналы поддерживают форматирование текста (например, WhatsApp). Однако, имейте в виду, что если сценарий одновременно используется и для каналов, которые не поддерживают форматирование, то в них текст будет отображать лишние символы без форматирования.
В тексте Вы можете использовать переменные бота, они будут заменены на их значения (при условии, что ранее в сценарии они были созданы).
2. Вложения.
При помощи данной функции, можно прикрепить к сообщению картинку или документ (можно добавить к одному сообщению несколько вложений, но нельзя добавить вложение, если в блоке добавлено несколько текстовых сообщений Бот говорит).
Для загрузки вложения, необходимо нажать на кнопку Вложения (в скобках указано количество добавленных файлов), после чего откроется модальное окно.

  • Нажмите на 1, чтобы сменить тип вложения (изображение или документ).
  • Переключайтесь с помощью 2, чтобы загрузить вложение с устройства или указать ссылку на вложение.
  • Вы можете перетащить файл на область 3, чтобы загрузить его.
  • Используйте кнопку 4, чтобы прикрепить еще один файл.
В канале WhatsApp Web отправится только первое добавленное вложение.
3. Клавиатура.
Данная функция позволяет привязать к сообщению кнопки.
При помощи кнопок можно:
  • перейти к другому сообщению бота;
  • перейти на сайт;
  • позвать оператора (живого человека);
  • собирать информацию о своих клиентах, классифицировать клиентов и пр.
Если в блоке указано несколько сообщений, то клавиатура будет отправлена только вместе с последним.
От каждой кнопки клавиатуры, может идти соединительная линия до другого действия. Это значит, что если пользователь нажмет на эту кнопку, то сценарий перейдет к указанному шагу.
Кроме заданных кнопок, в клавиатуре находится вариант Любой ответ, который означает, что пользователь не воспользовался ни одной из предложенных кнопок, написав боту какой-то текст. В таком случае, возможны несколько вариантов развития событий:
  1. если от варианта Любой ответ, исходит линия к следующему шагу, то сценарий перейдет к указанному действию;
  2. если от варианта Любой ответ, НЕ исходит линия, то бот отправит последнее сообщение еще раз и снова покажет клавиатуру, привязанную к нему;
  3. если от варианта Любой ответ, НЕ исходит линия и во вкладке «Настройки» задано сообщение Что, если ответ не распознан, то бот отправит указанное сообщение, а после снова повторит сообщение с клавиатурой.
Создание кнопок клавиатуры.
Чтобы добавить кнопку в клавиатуру, используйте +кнопка. В появившемся поле Текст кнопки, впишите текст, который будет виден пользователю на кнопке. Если Вы хотите добавить ссылку в кнопку, то смените тип кнопки при помощи шестеренки (не поддерживается в Instagram*).
Для того чтобы кнопки корректно отображались в боте, обратите внимание на допустимые значения количества кнопок, и их длину в соответствии с используемым каналом.
Канал WhatsApp Web не поддерживает кнопки, в данном канале кнопки будут заменены на цифры.
Чекбоксы Кнопка «Назад» и Кнопка «Главное меню» позволяют добавить / убрать эти кнопки из клавиатуры. Вам не нужно связывать эти кнопки с каким-либо действием.

Изменить текст этих кнопок можно в разделе Настройки —> Общие —> Текст кнопок.
Корректировать расположение кнопок можно при помощи настроек Строки и Колонки.
Если чекбокс Inline-клавиатура активен, то клавиатура будет сразу под сообщением (Inline-клавиатура доступна не во всех мессенджерах).

Inline клавиатура

Обычная клавиатура
4. Множественный выбор.
Множественный выбор работает только в канале WebChat.
Функция позволяет предложить клиенту выбрать один или несколько вариантов ответа.

Чтобы сделать блок с чек-боксами (множественный выбор), нужно добавить блок Сообщение. Варианты чек-боксов прописать в кнопках и поставить галочку рядом с надписью Множественный выбор. Кнопки преобразуются в варианты для множественного выбора.
5. Сохранение ответа в переменную.
Текст ответа пользователя можно сохранить в отдельную переменную.
Для этого нужно указать название переменной в поле Сохранить ответ в переменной и выбрать тип переменной string (текст)/number (число). Далее эту переменную можно использовать в сценарии.
На скриншоте видно, что любой выбор пользователя (кнопки «1», «2», «3» и «любой ответ») запишется в переменную «переменная_сообщения», то есть если пользователь нажмет на кнопку «1», в значение переменной запишется «1».
Используем это в дальнейшем в сценарии (см. на скрине)
По итогу получаем:
5. Нет ответа.
Если на данное сообщение были заданы варианты ответа с помощью клавиатуры, то также можно задать действие в случае не ответа пользователя.

Для этого
  • перейдите в настройки нужного блока «Сообщение»;
  • в самом низу нажмите чекбокс «Нет ответа»;
  • задайте время в течение которого нужно ждать ответа;
  • выберите какой блок должен следовать после заданного времени.

если клиент ничего не ответит в течение 5 часов, ему отправится сообщение
Блок 2. Ответ.
Блок предназначен для сравнения ответа пользователя с ожидаемыми ответами.

Вы можете добавить сколько угодно ожидаемых ответов. Регистр не имеет значения. Если ответ пользователя совпадает с ожидаемым ответом больше чем на 85%, то они считаются совпадающими — это позволяет учитывать опечатки.

От каждого ответа может идти соединительная линия до другого действия. Это значит, что если ответ пользователя совпадает с этим ответом, то сценарий перейдет к указанному шагу. Кроме ожидаемых ответов, в блоке находится вариант Любой ответ, который означает, что ответ пользователя не совпал ни с одним из ожидаемых. В таком случае действия бота совпадают со случаем, когда пользователь не нажал ни одну из предложенных кнопок.

Сохранение ответа в переменную.

Текст ответа пользователя можно сохранить в отдельную переменную. Для этого нужно указать название переменной в поле Сохранить ответ в переменной и выбрать тип переменной string (текст)/number (число).

Далее эту переменную можно использовать в сценарии.

По итогу получаем:

Также есть возможность задать действие через определенное время после того, как пользователь ничего не ответил.
Блок 3. Задать вопрос.
Блок запросить от пользователя ответ, в котором должны быть данные в определенном формате.

В поле Текст вопроса, укажите текст сообщения, которое будет отправлено пользователю.

В поле Тип ожидаемого ответа доступны несколько вариантов:
  • Телефон. Алгоритм найдет в ответе пользователя номер телефона и запишет его в переменную. Пример. Ответ пользователя: «Мой телефон — +79 991 234 567», в переменную запишется — «+79 991 234 567»
  • Email. Ответ пользователя должен содержать email. Пример. Ответ пользователя: «Отправьте письмо на test@test.com». В переменную запишется — «test@test.com».
Блок 4. Переменные.
Блок используется для создания новых переменных сессии и преобразования переменных.

В блоке требуется указать:
  • Название переменной. Без решеток, кавычек и пр. Например, firstName.
  • Значение переменной, например, Олег.

Значение переменной можно задать несколькими способами:
  1. Конкретным значением, например, Олег.
  2. Выражением на языке JavaScript. Например, «Наумов».toUpperCase ().
  3. Выражением на JS с использованием переменных Fromni. Например, #firstName# + «» + #secondName#. Здесь мы складываем 2 переменные, полученные раннее, добавляя между ними пробел.
Позволяется писать почти любой код на JavaScript с ограничениями по безопасности (нельзя использовать внешние зависимости, время исполнения кода ограничено 1 секундой). Но все же 1 внешнюю зависимость использовать можно — это библиотека lodash (https://lodash.com/docs/4.17.15), которая содержит множество вспомогательных методов. Она доступна по символу нижнего подчеркивания _. Например, если нужно использовать метод https://lodash.com/docs/4.17.15#chunk, то в поле значение переменной нужно ввести _.chunk (какие-то аргументы).
Блок 5. Условие.
Действие предназначено для разветвления диалога в зависимости от вычисляемого условия.

Вы можете добавить неограниченное количество условий. В качестве условия выступает JavaScript выражение с поддержкой переменных Fromni. От каждого условия может исходить линия к другому действию, означающая, что если это условие правдиво, то сценарий перейдет к указанному действию. Если ни одно из указанных условий не верно, то сработает переход Иначе (else). Важно — если от else не исходит линия, то сценарий будет завершен!
Блок 6. Цифровой профиль.
Цифровой профиль — это блок, позволяющий изменять переменные, которые находятся в CRM.

В конструкторе сценариев, блок Цифровой профиль предназначен для обновления цифрового профиля пользователя. Переменные блока Цифровой профиль отличаются от переменных из блока Переменные тем, что распространяются на все сценарии и хранятся в разделе CRM, а в блоке Переменные активны только в рамках конкретного сценария.

В поле Действие выберите действие, которое нужно применить к цифровому профилю:
  1. Установить переменную. Выберите стандартную переменную из выпадающего списка или создайте новую. В значении переменной может быть как текст или число, так и выражение на JavaScript с поддержкой переменных Fromni.
  2. Очистить переменную. Выберите переменную, чтобы удалить ее значение в цифровом профиле.

Далее добавляем новый блок Цифровой профиль и выбираем действие — Обновить профиль, передав phonenumber в параметр phone. В настоящее время, в этом шаге необходимо обрамлять название параметра значками #.#
Блок 7. Перевод на оператора.
Если человек не может найти ответ на свой вопрос в боте, Вы можете дать ему возможность позвать живого человека при помощи блока Перевод на оператора.

Действие приостанавливает работу бота на указанное время, позволяя пользователю общаться с оператором.

Передвигайте бегунок, чтобы изменить временное окно (каждое сообщение пользователя в режиме оператора продлевает этот режим на указанное количество часов).

После перевода на оператора, текущий диалог не завершается (несмотря на то, что данное действие всегда будет в конце ветки сценария), а приостанавливается на указанное время. Это значит, что бот перестает реагировать на сообщения пользователя (в том числе и нажатия на клавиатуру, кроме кнопок «Назад» и «Главное меню»).

Режим оператора может быть завершен несколькими способами:
  1. Режим оператора сам закончится по таймауту;
  2. Оператор сам закрывает диалог (в разделе Мессенджер при помощи кнопки Возобновить).
  3. Запустился другой сценарий (пользователь ввел сообщение-триггер (см. Настройки —> Условия запуска)) или Вы запустили рассылку.
  4. Кнопка «Назад» или «Главное меню» (при условии, что в режиме оператора пользователь не отправлял сообщения).
Блок 8. HTTP-запрос.
Действие предназначено для запроса к внешним API.

В поле URL и метод запроса укажите URL запроса и HTTP-глагол (GET, POST, PUT, DELETE).
Тело запроса поддерживает только формат JSON. В значениях полей можно использовать переменные бота.
Блок 9. Переключение сценария.
Завершает текущий сценарий и начинает новый.

Выберите один из Ваших сценариев в выпадающем списке.
При переключении сценария переносятся все переменные, созданные в прошлом сценарии, в том числе переменные сценария.
Блок 10. Уведомления
Данный блок используется для отправки сообщения на email в определенный момент сценария.

Email может быть как задан изначально (например email менеджера) или из переменной (например email клиента). В отправляемом сообщении также можно использовать как заранее заданный текст в сценарии, так и переменные.
Блок 11. Таймер
Данный блок используется для задания времени задержки при переходе в следующий блок.

отправить следующее сообщение через 2 дня

Если вы хотите задать таймер только в случае не ответа пользователя, воспользуйтесь таймером в настройках блока «Сообщение» или блока «Ответ».
Общее
При нажатии на 3 точки на блоке любого действия открывается контекстное меню:
  • Пометить как «Старт», делает выбранный блок первым действием, которое будет выполнено при запуске сценария.
  • Пометить как «Главное меню» указывает, что бот должен перейти к этому блоку, если пользователь нажал на системную кнопку «Главное меню».
  • Клонировать — создание идентичного блока.
  • Удалить — удаление блока.
Внизу справа, расположена мини-карта, благодаря которой можно:
  • видеть где мы находимся в данный момент;
  • менять масштаб рабочей области (1);
  • скрывать карту (2) и разворачивать конструктор сценариев на весь экран (3).
Интеграции
В данном разделе Вам необходимо подключить каналы, в которых будет активен настраиваемый сценарий. Доступно только для сценариев, которые имеют тип «бот».
Настройки
Данная вкладка находится в разделе Конструктор сценариев вверху по центру.
Данный раздел состоит из 3-х блоков: Условия запуска, Общие и Переменные сценария.
  1. Условия запуска.
В этом разделе можно установить правила или команды, по которым сценарий будет начинаться.

Команды для активации сценария (1).
Здесь Вы можете указать любое количество слов, фраз или предложений, по которым должен активироваться этот сценарий. После ввода каждой команды активации сценария, нажмите на кнопку Сохранить.

Установить как сценарий по умолчанию (2). Доступно только для сценариев, которые имеют тип «бот».
В данном разделе Вы можете выбрать каналы (из подключенных во вкладке  «Интеграции»), в которых данный сценарий, будет сценарием по умолчанию.
Сценарий по умолчанию — сценарий, который активируется на любое сообщение пользователя, если не активен другой сценарий в данный момент.
Если для выбранного канала ранее был выбран другой сценарий по умолчанию, то он переназначается.
2. Общие.
В этом разделе можно настроить общие характеристики сценария.
Что, если ответ пользователя не распознан (1).
В данном поле нужно выбрать, что произойдет если бот не поймет, что написал пользователь:
  • Завершить сценарий — сценарий завершится;
  • Отправить сообщение — будет отправлено сообщение из поля Сообщение бота и повториться предыдущее сообщение из сценария.
Что, если произошла неизвестная ошибка (2).

Если в сценарии произошла ошибка, которая не может быть обработана ботом, то сценарий завершается с ошибкой. Выберите:
  • Завершить сценарий — сценарий завершится;
  • Отправить сообщение — сценарий завершится и будет отправлено сообщение из поля Сообщение бота.
Время на ответ.
После того как бот отправил сообщение, он ожидает ответ от пользователя. По завершению времени, завершается сценарий. Время задается в часах. Если указать 0, то время ожидания ответа бесконечно.
Тексты кнопок.
Вы можете изменить текст системных кнопок «Назад» И «Главное меню»:
  • Кнопка «Назад» — бот перейдет к предыдущему Сообщению;
  • Кнопка «Главное меню» — бот перейдет к «Главному меню».
3. Переменные сценария.
В данном разделе указываем переменные, которые будут использоваться по умолчанию в сценарии.

  • Имя переменной — указываем имя, при помощи которого будем использовать переменную в сценарии.
  • Значение переменной — задаем значение, которое будет отображаться в сообщениях у пользователя вместо имени переменной.
Аналитика
Данная вкладка находится вверху, по центру конструктора.
Действия и переходы.
Можно увидеть сколько людей переходили в тот или иной блок, или по той, или иной связи блоков:
Статистика.
В данной вкладке отображается за выбранный период:
  • количество запусков данного сценария;
  • уникальных подписчиков, которые общались с ботом;
  • отправлено сообщений по данному сценарию (от бота к пользователю);
  • получено сообщений (отправил пользователь в рамках сценария).
Типы сценариев
При создании сценария можно выбрать его тип — бот или кампания.
Основное отличие сводится к тому, кто инициирует диалог по сценарию.
  • Для Кампании это может быть только Бизнес (компания).
  • Для Бота — только пользователь, который пишет сообщение в канал, где активен соответствующий сценарий.
При активации сценария типа «Кампания» (при помощи чек-бокса Сценарий кампании) в конструкторе автоматически активируется первый стартовый блок Сообщение.
Необходимо выбрать либо Шаблон, либо Группу шаблонов, которые будут отправлены в рамках Кампании.
Сценарии кампаний, имеющие шаблон в первом сообщении, могут быть отправлены вручную, либо при наступлении события, переданного по API.

Типы переменных
Переменные — специальные символы, вместо которых, при отправке, будут подставляться данные получателя.
Переменные в конструкторе сценариев могут быть 3 типов:
  • цифрового профиля;
  • сценария;
  • сессии;
Переменные цифрового профиля.
Переменные из раздела CRM, то есть такие переменные как Имя, День рождения, Город, Пол, Страна, Фамилия (список переменных пользователь может смотреть и изменять тут).

Для изменения переменных используется блок Цифровой профиль. Чтобы использовать переменные в тексте сообщения, в блоке Переменные или в иных местах необходимо писать: #$contact# (например, #$contact.phone# - номер телефона, #$contact.Имя# - имя пользователя при условии, что в CRM есть такой параметр).

Удобно использовать, когда вам нужно, что-то выяснить о своей целевой аудитории и потом опираться на эти данные. Например: пометить людей, которые согласны на получение рекламных рассылок или выяснить имя человека, чтобы менеджер и/или бот персонализировал свои сообщения.
Переменные сценария.
Переменные, которые задаются в момент создания сценария и одинаковы для всех пользователей.

Также к переменным сценария относятся переменные для сокращения ссылок #SHORTLINK#, #SHORTLINK1#, #SHORTLINK2# и т. д. Данные переменные позволяют сократить ссылку при отправке SMS.

Все переходы по таким ссылкам будут заноситься в статистику (посмотреть можно в разделе Статистика —> По кампаниям).
Задается данная переменная как и все переменные сценария:
Переменные сессии.
Переменные сессии (сессия — время от старта диалога по сценарию до его завершения). Они создаются во время сессии и удаляются после ее завершения.

Переменная сессии может быть задана несколькими способами:
  • Сохранение ответа пользователя в переменную (в блоке Сообщение или Ответ);
  • Блок Переменные;
  • Переменная кампании. Когда запускается кампания, содержащая данные по получателям, то доступны переменные с названиями этих полей.
*Компания Meta Platforms Inc., владеющая социальными сетями Facebook и Instagram, по решению суда от 21.03.2022 признана экстремистской организацией, ее деятельность на территории России запрещена