Создаем бота на Aimylogic для автоматизации интернет-магазина

Про автоматизацию общения с клиентами сегодня не пишет только ленивый. Но вот как начать ее использовать на практике — об этом рассказывают редко.
Мы в Just AI понимаем, что автоматизация — это тренд, и знаем, как она может помочь вашему малому и большому бизнесу. И сегодня решили написать увлекательный туториал о том, как с помощью Google таблиц и конструктора ботов Aimylogic можно без труда и без программирования автоматизировать первую линию общения с вашими клиентами, чтобы получить из этого реальную пользу, а не просто создать очередного бесполезного чат-бота.
Готовый шаблон
Мы подготовили шаблон бота в нашем конструкторе Aimylogic, чтобы вы могли создать его в один клик и изучить его работу на практике. Он называется “Онлайн заказы” и находится в разделе Шаблоны на главной странице в вашем аккаунте Aimylogic.

Далее в статье мы рассказываем о процессе его создания.
Схема работы онлайн-магазина
Рассмотрим типовой онлайн-магазин. Клиент заходит на сайт или в группу ВКонтакте. В онлайн-чате узнает у консультанта наличие и цены на товар. И, если все устраивает, пишет адрес доставки. Консультант заводит новый заказ и выдает его номер клиенту. Потом клиент может вернуться и спросить о статусе заказа, просто указав его номер.
Если клиентов много, то консультанты могут не успевать отвечать на типовые запросы. А это плохо для бизнеса — клиент просто уйдет в другой магазин. Если нанимать больше консультантов — это лишние издержки.
Google таблицы в качестве базы данных
В нашем кейсе мы будем хранить базу товаров и список заказов в табличках на Google Drive, а наш бот сможет получать из нее информацию и автоматически выдавать клиенту.
Сейчас консультант при поступлении вопроса от клиента просто заходит в табличку, смотрит наличие товара и цену и выдает ответ в чат. Если клиент хочет заказать, то консультант спрашивает адрес доставки, переходит на второй лист в таблице и добавляет новую строчку такого вида

Когда потом клиент спрашивает о статусе, консультант узнает у него номер заказа, заходит на второй лист в табличке, находит статус по номеру и выдает клиенту.
Вот эти процессы мы сейчас с вами и автоматизируем.
Классифицируем запросы клиентов
Прежде чем приступить к проектированию бота в Aimylogic, определимся, что конкретно пишут наши клиенты в чате с консультантами.
В основном люди в чате спрашивают:
- Почем айфоны/айпады/макбуки?
- Я хочу купить
- И где мой заказ?
Создание бота на Aimylogic
Создание бота в Aimylogic похоже на создание сайта в любом конструкторе сайтов. Только с тем исключением, что мы проектируем не статичный сайт, а динамический диалог с клиентом.

Бот в Aimylogic — это последовательность экранов, по которым бот переходит с помощью соединителей (стрелок, которые связывают карточки с блоками). А блок — это собственно действие, которое выполняет бот на каждом экране. Можно делать ветвления, обрабатывать пользовательские запросы, делать HTTP вызовы и так далее.
Создаем базу товаров
Наш бот должен понимать, когда клиенты спрашивают его о ценах и наличии товаров из нашей базы. Причем он должен понимать как английское iphone, так и русское написание с учетом морфологии. Aimylogic такое умеет — называется Сущности. В меню нажимаем на Сущности, создаем сущность item и забиваем названия товаров с синонимами.

Тут важно одно — чтобы название в колонке Сущность совпадало с тем, что у нас написано в табличке. Потом увидите почему.
Публикуем таблицу товаров
Чтобы бот мог на ходу узнавать наличие и цены, а также статусы заказов, нужно чтобы Google таблица была опубликована. Потом мы “скормим” ее боту специальным образом.
Чтобы опубликовать гугл-таблицу, откройте меню Файл — Опубликовать в веб (File — Publish to the web). Откроется окно, в котором нужно просто нажать на кнопку Опубликовать (Publish).

Все, больше ничего делать не надо. Возвращаемся в редактор бота Aimylogic.
Конструируем диалог
Теперь, собственно, создадим сценарий диалога с клиентом, чтобы бот мог отвечать на вопросы о текущей цене на товар, сообщать его наличие, спрашивать адрес доставки, ну и сообщать статус заказа по его номеру.
Как было сказано ранее, бот в Aimylogic — это последовательность экранов. При входе в редактор сценария бота сразу открывается палитра блоков первого экрана. На первом экране расположим блок фраз, которые бот ожидает от пользователя. Жмем на Фразы, открывается окно, в котором нужно указать примеры фраз и разбить их на группы по тематике запроса.

Там, где пользователь может спросить что-то о товаре, указываем ссылку на нашу сущность $item. Например, “Сколько стоит $item”. Так как Aimylogic работает на алгоритмах машинного обучения, то наш бот поймет все синонимичные выражения клиента и автоматически сохранит идентификатор товара в переменную $item.
Нужно еще поставить галочку “Глобальный блок”, чтобы бот реагировал на заданные фразы на всех экранах.
Читаем данные из Google таблиц
Далее начинается самое интересное. Когда клиент говорит “Почем нынче айфоны?” или “Есть ли макбуки в наличии?”, бот должен получить данные по товару из Google таблицы и сказать клиенту, есть ли они в наличии и какая сегодня цена.
Боты Aimylogic могут делать HTTP запросы прямо по ходу сценария с помощью блока HTTP запрос. Но, чтобы с данными было удобно работать, нужно, чтобы сервис на той стороне возвращал простой JSON, а не таблицу.
Чтобы такое осуществить, можно использовать вот такой URL:
http://tools.aimylogic.com/api/googlesheet2json?sheet=1&id=идентификатордокумента
Если такой URL открыть в браузере, то вы увидите массив JSON объектов с полями, как в вашей таблице. И вот такое можно использовать в сценарии бота. Вместо идентификатордокумента нужно просто подставить идентификатор вашей гугл- таблицы. Чтобы его узнать, откройте в браузере вашу гугл-таблицу и посмотрите в адресную строку.

Вот эта последовательность символов и есть идентификатор. В итоге должен получиться URL такого вида:
Теперь, когда мы превратили таблицу в JSON, можно научить бота работать с ней. Кликните на группу фраз на первом экране (например на “сколько стоит $item”) — создастся второй экран. На нем добавьте блок HTTP запрос с такими параметрами:

Вставьте URL, который мы получили ранее. А на вкладке Response создайте переменную с именем device. Это, собственно, та переменная, куда бот сохранит данные о товаре, которые он вытащит из таблицы. В качестве значения переменной укажите простой Javascript код
Тут мы учим бота вытаскивать из ответа сервера ($httpResponse) объект, у которого поле name совпадает с тем, что попросил клиент. Aimylogic из коробки работает с библиотекой underscorejs, поэтому используем ее функцию findWhere, чтобы в одну строчку вытащить нужный товар.
Есть в наличии, хотите купить?
Теперь бот вытащил в переменную $device данные о товаре по запросу пользователя. Причем клиент может писать хоть “айпады”, хоть “айфоны” — бот все поймет. Теперь нужно научить бота говорить клиенту, есть ли этот товар в наличии, огласить его цену и предложить заказать.
У каждого товара есть поле instock, которое либо true, либо нету. Это та самая галочка в гугл-табличке, которую консультант снимает, когда такого товара нет в наличии. Поэтому бот должен посмотреть на этот флажок и, если он true, — предложить купить, а если нет — то сказать, что такого товара временно нет в наличии.
Кликнем на Завершен успешно в блоке с HTTP запросом. Создастся следующий экран бота, на который нужно добавить блок Условия. С помощью этого блока в Aimylogic можно устраивать ветвления диалога в зависимости от различных условий.

Каждое условие — это, по сути, Javascript выражение, которое либо истинно, либо ложно. Если истинно, то сработает ветка диалога, которая исходит из этого условия. Если нет, то бот перейдет к проверке следующего условия и так далее. Если ни одно условие не истинно, то выполнится ветка else.

На экране с веткой $device.instock (товар в наличии) покажем клиенту текст

И добавим блок Фразы

Спрашиваем адрес доставки
Если клиент говорит что-то типа “Да”, то бот должен спросить, куда доставить заказ. Кликнем на группу фраз “да” в создавшемся блоке и добавим блок Ввод текста

На этом экране бот задаст вопрос и весь пользовательский ввод сохранит в переменную address. После этого нужно поблагодарить клиента и отправить консультанту оповещение о том, что кто-то хочет купить iphone. Консультант перепроверит наличие, заведет в табличке новый заказ, зайдет во ВКонтакте и сообщит клиенту номер заказа в личном сообщении.
Кликните на Переход после ввода $address и добавьте блок Текст

Подключаем бота к ВКонтакте
Итак, первая версия готова! Бот умеет проверять наличие и принимать заказы. Потестировать можно в интерфейсе редактора Aimylogic, после чего нужно подключить бота к группе ВКонтакте. Делается это просто. Виджет чата ВКонтакте можно также разместить на сайте, чтобы посетители вашего сайта могли сразу писать боту в окошке чата.
После этого бот начнет делать то, ради чего мы его создавали — снимет основную нагрузку в чатах, доводя до консультанта только заказчиков, которые готовы купить наш товар.
Проверка статуса заказа
Ветка с проверкой статуса принципиально ничем не отличается от ветки с созданием заказа. Так как наши заказы мы сохраняем на втором листе в табличке, то HTTP запрос бота к таблице будет немного другим:
Здесь мы просто заменили параметр sheet на 2 (второй лист). Ну и обработка ответа тоже выглядит чуть иначе:
Здесь мы ищем заказ, номер которого совпадает с тем, который клиент указал на предыдущем шаге сценария в блоке Ввод числа.

В итоге
Можно по-прежнему использовать Google таблицы в качестве базы данных для хранения товаров и заказов, а бот, созданный на Aimylogic, может использовать ее для ответов на запросы наших клиентов в группе ВКонтакте и на сайте.
Сущности в Aimylogic позволяют боту понимать названия товаров с учетом морфологии. Блок HTTP запроса — отличный способ интеграции бота с чем-угодно, что умеет выдавать JSON (или XML). А сервис tools.aimylogic.com как раз позволил превратить таблицу на Google Drive в массив из JSON объектов.
Автоматизация в нашем примере решает вполне конкретную задачу и, самое главное, не приводит к тому, что клиенты уходят с сайта, где бот пытается полностью заменить человека, а в итоге не может сделать ничего. Здесь автоматизация, наоборот, помогает сделать бизнес эффективнее.
Напоминаем, что готового бота вы можете создать на aimylogic.com в один клик из шаблона под названием “Онлайн заказы”.
→ Сайт с тестовым ботом находится тут
→ Табличка с товарами и заказами — тут
→ Полную документацию по конструктору Aimylogic и новые туториалы можно найти здесь
Вступительный урок. Как создать первого чат-бота
Чат-боты — один из популярных инструментов для упрощения бизнес-процессов: они могут взять на себя рутинные задачи, освобождая время сотрудников для более интересных и творческих задач. Хорошо продуманный чат-бот автоматически отвечает на запросы клиента и облегчает жизнь вашим сотрудникам.
Для первого знакомства с Aimylogic вы можете прочитать этот урок или посмотреть вводное видео:
С чего мне начать?
После того как вы зарегистрируетесь в Aimylogic и верифицируете свой email и номер телефона, вы попадете на главную страницу нашего конструктора ботов.
Здесь будет находиться список всех сценариев для чат-ботов, которые вы создадите. Сценарии для обзвонов будут размещаться на вкладке Звонки.
Для успешной работы чат-бота вам будет необходимо:
- Тщательно продумать и прописать сценарий в конструкторе.
- Внимательно протестировать работу сценария. чат-бота в нужном вам канале.
- Регулярно анализировать результаты работы бота и улучшать сценарий.
Создание сценария
В первую очередь создайте сценарий: на главной странице Aimylogic нажмите Создать чат-бота.
Вы увидите всплывающее окно, в котором нужно указать название для бота и выбрать язык сценария.
Выбранный язык сценария влияет на то, в каких каналах можно будет использовать бота. Для большинства случаев подойдет русский язык. Язык бота нельзя будет изменить в дальнейшем.
Когда бот будет создан, вы попадете в редактор бота и увидите пустой сценарий со списком блоков.
Блоки — это «кирпичики», из которых строится логика работы сценария. Каждый из блоков — это какое-либо действие, которое совершает бот: приветствие клиента, отправка изображения или распознавание того, что клиент хочет сделать заказ.
Блоки можно разделить на три группы:
- Реплики бота — типы ответов бота клиенту в диалоге. Реплики бота можно комбинировать.
- Реплики пользователя — предполагаемые ответы клиента боту, которые распознаются ботом при помощи интентов. Можно выбрать готовый интент или создать свой.
- Действия — возможные варианты поведения бота, кроме реплик. Например, это может быть перевод диалога на оператора или завершение сценария.
Интент — это блок в сценарии Aimylogic, с помощью которого бот понимает, чего хочет клиент.

Блоки добавляются на экраны. Каждый экран — это состояние бота, в котором он совершает действие или ряд действий.
В этом уроке вы создадите простой сценарий, в котором бот будет:
-
; ; ;
- прощаться с клиентом.
Такой сценарий будет состоять из пяти блоков, распределенных по трем экранам.
Приветствие
На первом экране бот будет здороваться с клиентом и ожидать ответного приветствия.
Выберите блок Текст и введите в нем приветственную фразу бота. Вы можете добавить несколько разных реплик, из которых бот случайным образом выберет одну. Каждая новая реплика добавляется при помощи кнопки Добавить другую реплику. Добавив реплики, нажмите Сохранить.
Теперь необходимо сделать так, чтобы бот принимал ответное приветствие от клиента. На том же экране выберите + Блок > Еще блоки > Приветствие. На экран добавится интент Приветствие.
Приветствие — один из готовых интентов в Aimylogic. Готовые интенты — это заранее подготовленный список возможных реакций клиента, например, согласие или прощание. Когда вы добавляете такой готовый интент в сценарий, вам не нужно думать про разные варианты ответов клиента.
Например, в текущем сценарии клиент может написать «Здравствуйте» или «Привет» — и бот в любом случае поймет, что клиент хотел сказать.

Вопрос
После того как клиент поздоровался, бот должен запросить его имя. А для того чтобы бот в дальнейшем прислал клиенту сообщение с полученным именем, боту нужно его сохранить.
Для этого добавьте новый экран с блоком text to $var , который находится в подменю Еще блоки. С его помощью полученное от клиента имя сохранится в переменную, которую можно будет далее использовать в любом месте сценария.
При добавлении блока text to $var заполните поля:
- В поле Сообщение укажите вопрос, который бот задаст клиенту, например, Как вас зовут? .
- В поле Имя переменной назовите переменную, в которой будет храниться имя клиента. Имя переменной может содержать цифры и латинские буквы и не должно содержать пробелов. Например, в данном случае можно назвать переменную name .

Связь экранов
Теперь у вас в сценарии есть два экрана, но они пока не соединены между собой. Так как бот должен спросить имя клиента только после того, как клиент поздоровается, соедините интент Приветствие со вторым экраном, на котором бот задает клиенту вопрос.
Для этого наведите курсор мыши на кружок у интента Приветствие и, зажав кнопку мыши, протяните стрелку к нужному экрану.

Теперь, как только клиент отправит приветственное сообщение, бот сразу же задаст свой вопрос.
Отправка сообщения
Теперь нужно создать последний экран, на котором бот отправит клиенту сообщение с его именем, а затем попрощается.
Добавьте новый экран с блоком Текст. Впишите туда Вас зовут $name . В этом сообщении $name будет заменено на то имя, которое клиент отправил боту в предыдущем сообщении.
Так как больше в рамках сценария боту делать ничего не нужно, можно добавить на этот же экран блок с текстом До свидания! .
Свяжите Переход после ввода $name на втором экране с последним экраном.
Сценарий готов. Он должен выглядеть следующим образом:

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

Не пренебрегайте тестированием сценария. Оно помогает находить ошибки на этапе его разработки, то есть, до того, как бот начнет общаться с реальными клиентами.
Чем сложнее сценарий, тем тщательнее нужно его тестировать. Во время тестирования проверяйте работоспособность всех веток сценария.
Публикация бота
На данном этапе ваш сценарий недоступен никому, кроме вас. Чтобы клиенты могли общаться с вашим ботом, вам нужно опубликовать его в одном из каналов.
Канал — это интерфейс общения чат-бота и пользователя. Это может быть чат в социальной сети или мессенджере, виджет CRM или еще что-то.
Прежде чем создавать бота для публикации в определенном канале, мы рекомендуем ознакомиться с документацией по подключению к этому каналу. У многих каналов есть требования, которые обязательно нужно учесть при создании сценария.
Для примера выберем канал чатвиджет. Чатвиджет — это окно чата, которое появляется у вас на сайте и в котором клиент может общаться с ботом.
Для публикации бота нажмите кнопку Опубликовать в правом верхнем углу страницы. Вы будете перенаправлены в раздел Каналы и увидите список всех каналов, в которых вы можете опубликовать бота. Каналы сгруппированы в соответствие с их типом и назначением.
В группе каналов Мессенджеры, соцсети и API в первой строке вы увидите канал Чатвиджет. Выберите его и в модальном окне нажмите Подключить. Чатвиджет появится в списке подключений.
Дождитесь, пока статус канала перейдет в Канал подключен — это занимает не более минуты. Нажав Получить script, вы получите код для вставки чатвиджета с ботом в код вашего сайта.
Ботов Aimylogic можно публиковать в самых разных каналах. Вот самые популярные из них:
Анализ и доработка
Как бы тщательно вы ни проработали сценарий, всегда найдутся клиенты, которые дадут нестандартный ответ или зададут вопрос, не предусмотренный сценарием.
Поэтому после публикации бота в канале мы рекомендуем использовать разделы Статистика и Диалоги.
Как сделать телеграм-бота без программирования
Например, если бот нужен срочно, а вы ещё не освоили Python.
Если вам показались сложными наши статьи о создании своего телеграм-бота и запуске его на сервере, то вот вам подборка конструкторов, где можно сделать почти то же самое.
В основе конструкторов лежит простой принцип: вы собираете из готовых кирпичиков то поведение, которое вам нужно. Если какого-то кирпичика нет, то варианта два: найти другой конструктор или придумать, как можно обойтись без него.
Manybot
Стоимость: бесплатно, но с рекламными сообщениями.

Manybot — единственный сервис в нашей подборке, где нет визуального конструктора, а вся работа идёт через телеграм-чат. Сервис подойдёт тем, кому нужны простые и предсказуемые диалоги, выбор из небольшого числа вариантов и маленькое меню. Вряд ли он подойдёт для серьёзных проектов, потому что проще выучить Python, чем управлять сложным ботом через команды в чате.
Платной версии нет, поэтому ваш бот будет иногда отправлять свои рекламные сообщения всем читателям, а отключить это нельзя.
Bottap
Стоимость: бесплатная версия с рекламой или 390 ₽ в месяц.

Мультиплатформенный конструктор помогает создать бота, который может работать одновременно в Телеграме, Вайбере и во ВКонтакте. В отличие от предыдущего сервиса, здесь есть блоки, которые можно перетягивать мышкой и настраивать связи между ними.
Из возможностей стоит отметить встроенную CRM, неограниченную глубину ответов бота и формы обратной связи.
Botmother
Стоимость: бесплатно с ограничениями, но без рекламы, или 1249 ₽ в месяц.

Хороший сервис для тех, кому нужно много функций и подробная документация. Это уже полноценный конструктор, где можно программировать сложную логику.
В сервисе есть встроенные шаблоны для типовых ситуаций и готовые боты, которые можно переделать под свои задачи. Ещё можно отследить каждый диалог с пользователем и вмешаться, если бот не справляется с общением.
PuzzleBot
Стоимость: бесплатно с рекламными сообщениями или от 490 ₽ в месяц.

Мощный сервис, где легко создать бота любого уровня. Можно делать сложные условия, настраивать триггеры, автоматизировать сбор статистики, передавать ответы пользователей в другие сервисы и что угодно ещё.
Единственный минус — для работы с сервисом всё-таки нужно знать основы программирования: что такое переменная, вложенные условия и циклы. С другой стороны, если вы читаете «Код», то это для вас не проблема.
Amylogic
Стоимость: бесплатно, но с ограничениями по возможностям, или от 990 ₽ в месяц.
Это самый крутой по возможностям сервис, который мы тестировали. Если в PuzzleBot и Botmother мы могли делать почти всё, то здесь мы можем делать всё. Без шуток, здесь есть переменные, объекты как в ООП, функции и прочие программистские штуки.
Особый кайф — собирать из кирпичиков нужный шаблон, а потом тонко допиливать его, используя встроенные скрипты. Это выделяет сервис среди остальных, потому что его приятно использовать и тем, кто не знает программирование, и тем, кто знает его очень хорошо. Документация вся есть и на русском, поэтому проблем с изучением возникнуть не должно.
Что дальше
В следующей статье с помощью этих сервисов мы сделаем бота, который будет помогать нам с расписанием занятий, планёрками и встречами. Если у вас есть идеи для бота, которые вы хотите увидеть в наших материалах — напишите их в комментариях.