Платформа
Решения
Кто использует Directual и почему?
Что можно сделать на платформе?
Какие отрасли подходят для Directual?
Материалы
Чат-боты можно встретить во множестве приложений, включая службы поддержки клиентов, виртуальных ассистентов и мессенджеры в социальных сетях. Они предоставляют автоматические ответы и способны выполнять рутинные задачи, отвечать на часто задаваемые вопросы и даже давать персонализированные рекомендации. В этом уроке объясняются основы использования синхронных сценариев Directual для создания чат-ботов.

Вам понадобится использовать webhook-интеграцию. Это означает, что сервис чат-бота отправляет объект на вебхук, а затем синхронный сценарий в Directual обрабатывает этот объект и возвращает ответ.

Создайте виджет чата, подключите его к боту и скопируйте код, чтобы добавить виджет в приложение-маркетплейс. Для этого откройте Directual, перейдите на вкладку Web Pages → Web Portal settings → вкладка Custom Code. Вставьте код сюда и сохраните изменения. Отлично, теперь в вашем маркетплейсе есть виджет.




Пришло время настроить логику чат-бота в Directual. Перейдите на вкладку API builder → Webhooks и создайте новый.

Скопируйте URL вебхука, затем вернитесь на платформу чат-бота и выберите плитку Webhook во вкладке Integrations. Создайте новый вебхук и выберите бота. Затем настройте его, присвоив имя и вставив только что скопированный URL. В качестве токена верификации можно использовать любую строку. В этом примере мы будем использовать directual_token.

Когда вы создали вебхук, автоматически был создан сценарий для обработки всех входящих объектов. Быстро взгляните на созданный объект. Обратите внимание на поле данных URL — в нём есть два важных значения: Challenge и Token.
Чтобы успешно пройти валидацию, вы должны вернуть значение Challenge. Для этого нужно использовать шаг API response.


Вам также следует удалить триггер New Objects, поскольку этот сценарий будет выполняться синхронно. Далее перейдите в настройки вебхука и укажите, что сценарий синхронный.
Важно! Не забудьте удалить триггеры на шаге Start (иначе сценарий будет обрабатываться дважды: синхронно и асинхронно).

Далее настройте обработку разных узлов чат-бота — это значит, что вебхук может вызываться из разных мест дерева чат-бота, и каждый узел нужно обрабатывать отдельно.
Дайте первому узлу имя: Webhook Node 1. Теперь добавьте ветвление, например, чат-бот спросит, что нужно пользователю → help (тикет в help desk) или поиск по каталогу товаров.


Будет два узла: один для службы поддержки (help desk) и один для предоставления информации о товарах. Это значит, что вам нужно создать два варианта ответа для чат-бота. Один — для помощи, другой — для поиска конкретного товара в каталоге.
Для этого вам понадобятся ключевые слова. Первое — Help — означает, что пользователю нужна помощь или тикет в службу поддержки. Второе ключевое слово — Good — означает, что пользователь хочет посмотреть каталог.


Для этого вам понадобится ещё один узел вебхука, назовите его Webhook Node 2. Имя узла используется внутри сценария обработки вебхука для фильтрации.
Теперь настройте сценарий отправки ответа, когда пользователь ищет конкретный товар. Это будет другой узел. Сначала посмотрим на входящие объекты вебхука и информацию об узле. Вам нужно извлечь информацию из поля JSON, поэтому создайте новую строковую контекстную переменную под названием Node.

На первом шаге под названием Edit object добавьте ещё одно действие для записи значения name из поля body в контекстную переменную узла. Для этого снова вызовите поле JSON, отключите Smart Inputs и добавьте имя узла, поскольку JSON вложенный.

Добавьте условие по значению контекстной переменной и, как обычно, не забудьте добавить комментарии, чтобы сценарий было легче отслеживать. Если мы находимся в Node 1, то ответ — Help desk is here! А если мы в Node 2, то получаем ответ — Goods catalog is here.
Не забудьте настроить условия. Значение контекстной переменной node должно быть равно Webhook node 1 или Webhook node 2 соответственно.
Опубликуйте сценарий и проверьте его. Если пользователю нужна помощь, он получит сообщение — Helpdesk is here! Если пользователю нужен конкретный товар, он получит сообщение — Goods catalog is here. Всё сработало правильно, оба узла обработались отдельно.
Используйте вторую ветку диалога, где пользователю нужен каталог товаров. Добавьте запрос деталей — бот спрашивает, что нужно или что ищет пользователь, а пользователь что-то отвечает.

Для этого вам нужно настроить сценарий в Directual. Проверьте последний объект, обработанный на шаге API response в сценарии. Там, в поле сообщения, вы увидите поисковый запрос. Вам нужно использовать этот запрос для поиска по базе товаров и вернуть пользователю релевантные результаты.

Для этого поискового запроса вам понадобится новая контекстная переменная. Воспользуемся уже знакомым шагом Edit Object и сохраним значение Property из поля JSON в контекстную переменную.

Далее добавьте шаг Find Objects, который будет искать объекты в структуре Goods, соответствующие запросу. Результат нужно сохранить в поле-массив ссылок. Добавьте это поле — array link — к объекту сценария, то есть к объекту Webhook.

Обновите сценарий, чтобы включить эти поля. Мы сохраняем результат поиска в поле Goods и ищем в структуре Goods.
Теперь нужно подготовить положительный ответ, который будет сформирован из array link. Добавьте шаг Edit object в сценарий — именно там мы соберём ответ, который частично подготовим с помощью контекстной переменной. Назовём её Elements. Создайте контекстную переменную — Elements. Пройдитесь по array link, добавьте итератор для arrayLinks (здесь {{#goods}}), а затем имя элемента внутри этого выражения.
Мы проходим по всем элементам массива и для каждого создаём JSON-объект с запятой после него. Поля этого JSON-объекта заполняются из полей объектов, на которые ссылается наш массив.

Нам нужно удалить последнюю запятую в {{elements}}. Используйте Lodash _.trim для удаления пробелов и .slice(0,-1) (стандартный JS-метод для удаления последнего символа). Не забудьте включить режим кода во вводе:

Затем составляем полный ответ для ChatBot API:

И, наконец:

Сочетание Directual и ChatBot.com открывает безграничные возможности для создания индивидуального пользовательского опыта для ваших приложений. Дерзайте, экспериментируйте! Если у вас возникнут сложности, не стесняйтесь обращаться за помощью в наше No-code сообщество. Также ознакомьтесь с нашим ускоренным курсом 101, чтобы узнать больше о Directual и его возможностях.
Это компьютерная программа, предназначенная для имитации разговора с пользователями-людьми, особенно через интернет. Вы можете создавать чат-ботов без программирования, используя no-code платформы.
Сценарии в Directual представляют собой back-end логику вашего приложения. Сценарии обрабатывают объекты из целевой структуры данных.
Да, можете. Как Directual, так и Chatbot.com предоставляют API (в частности, no-code вебхуки), которые можно использовать для создания пользовательских интеграций между этими двумя платформами.