В данном кейсе мы покажем как сделать в Телеграм боте продавца товаров или услуг прямо с вашего сайта на WordPress и собирать заказы в удобную базу в Notion
Шаг №1: Подготовка WordPress
Подготовим ваш сайт на WordPress для того чтобы наш бот смог получать товары в нужных категориях. Для этого добавьте следующий код в файл `functions.php` в настройках вашей темы:
add_action('rest_api_init', function () {
register_rest_route('myshop/v1', '/products', array(
'methods' => 'GET',
'callback' => 'get_products_info',
'permission_callback' => '__return_true'
));
});
function get_products_info($request) {
$category = $request->get_param('category');
$args = array(
'status' => 'publish',
'limit' => -1
);
if ($category) {
$args['category'] = array($category);
}
$products = wc_get_products($args);
$data = array();
foreach ($products as $product) {
$data[] = array(
'id' => $product->get_id(),
'name' => $product->get_name(),
'price' => $product->get_price(),
'regular_price' => $product->get_regular_price(),
'sale_price' => $product->get_sale_price(),
'stock_status' => $product->get_stock_status(),
'stock_quantity' => $product->get_stock_quantity(),
'categories' => wp_list_pluck($product->get_category_ids(), 'name'),
'permalink' => get_permalink($product->get_id()),
'image_url' => wp_get_attachment_url($product->get_image_id()),
);
}
return new WP_REST_Response($data, 200);
}
![Пример установки скрипта для сторонних обращений к каталогу товаров Пример установки скрипта для сторонних обращений к каталогу товаров](https://habrastorage.org/getpro/habr/upload_files/b31/578/a19/b31578a196f53347995808ab1b0e579c.jpg)
Если вы хотите чтобы никто кроме бота не смог обратиться к сайту вы можете добавить проверку пароля, вот так:
add_action('rest_api_init', function () {
register_rest_route('myshop/v1', '/products', array(
'methods' => 'GET',
'callback' => 'get_products_info',
'permission_callback' => 'check_api_password'
));
});
function check_api_password($request) {
$api_password = 'your_secure_password_here'; // Замените на ваш пароль
$provided_password = $request->get_param('api_password');
if ($provided_password && $provided_password === $api_password) {
return true;
} else {
return new WP_Error('rest_forbidden', 'Неверный пароль API', array('status' => 401));
}
}
function get_products_info($request) {
$category = $request->get_param('category');
$args = array(
'status' => 'publish',
'limit' => -1
);
if ($category) {
$args['category'] = array($category);
}
$products = wc_get_products($args);
$data = array();
foreach ($products as $product) {
$data[] = array(
'id' => $product->get_id(),
'name' => $product->get_name(),
'price' => $product->get_price(),
'regular_price' => $product->get_regular_price(),
'sale_price' => $product->get_sale_price(),
'stock_status' => $product->get_stock_status(),
'stock_quantity' => $product->get_stock_quantity(),
'categories' => wp_list_pluck($product->get_category_ids(), 'name'),
'permalink' => get_permalink($product->get_id()),
'image_url' => wp_get_attachment_url($product->get_image_id()),
);
}
return new WP_REST_Response($data, 200);
}
Шаг №2: Подготовка Notion
По работе в Notion очень много видео на YouTube и даже на русском языке, так что я вам дам ссылку на полученный шаблон для нашего бота в Notion.
![Рабочее пространство для ИИ бота по продаже с сайта WordPress Рабочее пространство для ИИ бота по продаже с сайта WordPress](https://habrastorage.org/getpro/habr/upload_files/4f4/bc8/8e7/4f4bc88e71fb0347b462c8d096b96670.png)
Шаг №3: Создание Телеграм бота на платформе ProTalk
Тут приведу ссылку на гайд по созданию Телеграм бота на платформе ProTalk:
И итоговую роль бота:
Ты - опытная и дружелюбная менеджер по продаже светильников. Твоя цель - обеспечить клиентов качественными консультациями и помочь им сделать правильный выбор.
Твоя задача - помочь клиентам выбрать подходящие светильники на сайте [https://svetaluks.ru](https://svetaluks.ru/) и успешно завершить продажу.
Когда клиент определится с выбором ты должна спросить его имя и номер телефона, после чего отправить эти данные в таблицу Notion: [https://www.notion.so/0b27ddc833864c558376d2537ea11ddf?v=b7c69c8af2294ae8857c04bc86f6b86d&pvs=4](https://www.notion.so/0b27ddc833864c558376d2537ea11ddf?pvs=21)
Поля для записи заявки:
```markdown
“Клиент” - это заголовок, сюда запиши имя клиента
“Телефон” - текстовое поле, сюда запиши телефон клиента
“Заказ” - тектовое поле, сюда запиши заказ клиента
"Сумма" - числовое поле, сюда запиши сумму заказа
```
Используй эти категории для поиска светильников:
"childrens-table-lamps" - детские настольные светильники.
Токен для записи в Notion : “secret_EPGE2uRL85XXXXXXXXXXXXXXXXXXXXXXXXX”
Не выходи из своей роли.
Кстати саму роль мы тоже вынесли в Notion, вот так:
![Используем страницу Notion как внешнюю роль для бота на платформе ProTalk Используем страницу Notion как внешнюю роль для бота на платформе ProTalk](https://habrastorage.org/getpro/habr/upload_files/261/7ef/6bb/2617ef6bb51113119044035913b01cf8.png)
В итоге получаем такого бота:
![Бот на платформе ProTalk Бот на платформе ProTalk](https://habrastorage.org/getpro/habr/upload_files/2b4/9b6/d2e/2b49b6d2e21f34d62c2a55442202fc11.png)
К боту мы подключили две функции:
![Подключенные функции к боту на ProTalk Подключенные функции к боту на ProTalk](https://habrastorage.org/getpro/habr/upload_files/71a/abc/3ca/71aabc3ca5f3be58b401e75a3c606ff3.png)
![Функция для связи с сайтом WordPress Функция для связи с сайтом WordPress](https://habrastorage.org/getpro/habr/upload_files/99a/cfb/2f4/99acfb2f47b4cd8546525deac8f54c6a.png)
![Функция для записи в таблицу Notion Функция для записи в таблицу Notion](https://habrastorage.org/getpro/habr/upload_files/563/dff/487/563dff487cd4113d65f5477c7e75e63c.png)
Шаг№ 4: Тестируем бота
![Бот использует подключение к сайту WordPress и предлагает нам товары Бот использует подключение к сайту WordPress и предлагает нам товары](https://habrastorage.org/getpro/habr/upload_files/fe6/a30/f42/fe6a30f423953e6ffe6b6b96cbdc308e.png)
![Бот отправляет заказ в базу Notion Бот отправляет заказ в базу Notion](https://habrastorage.org/getpro/habr/upload_files/e4f/a88/e57/e4fa88e57d53c76017e05b8c1606691f.png)
![Заказ создан правильно и все разнесено по нужным колонкам Заказ создан правильно и все разнесено по нужным колонкам](https://habrastorage.org/getpro/habr/upload_files/976/321/b28/976321b28ab516747ce3fd8ed09bd1cb.png)
Дополнительно мы можем включить боту такие настройки:
![Диалоговые настройки в ботах ProTalk Диалоговые настройки в ботах ProTalk](https://habrastorage.org/getpro/habr/upload_files/c52/41d/300/c5241d300dfae39d51846f4998df18c7.png)
![Функция, которая позволит боту возобновить текущий диалог через несколько дней, в удобное для клиента время Функция, которая позволит боту возобновить текущий диалог через несколько дней, в удобное для клиента время](https://habrastorage.org/getpro/habr/upload_files/cdc/c75/20e/cdcc7520eeeb54cdf744b661b0315f63.png)
И тогда станет возможно такое поведение бота:
![ИИ бот ProTalk может возобновлять диалог в удобное для клиента время ИИ бот ProTalk может возобновлять диалог в удобное для клиента время](https://habrastorage.org/getpro/habr/upload_files/be7/217/1a6/be72171a6e2abeeecab7010450f9ecbe.png)
Итоги
На базе приведенного кейса возникает идея "упаковки" готовых для тиражирования ИИ компаний в виде шаблона Notion в котором будут находится:
Роли всех ИИ сотрудников
Базы знаний в виде таблиц Notion
Базы заявок (лидов) от ботов
Если у вас возникли идея как еще можно использовать связку ИИ ботов с Notion, пишите про них в комментариях или мне в Telegram.
P.S. Видео по созданию бота из данной статьи
Комментарии (11)
Ilya_JOATMON
28.07.2024 06:12+4Надуманный бизнес кейс по мне.
Покупатель или знает конкретную модель и ищет ее где подешевле. Или не знает что хочет, и просматривает кучи товара, определяется со стилем и уже подбирает в нем, но не факт что то что ему понравится есть в магазине. Но может отметить несколько моделей которые ближе подходят.
Ни в одном из случаев чат бот не проще и быстрее. Обычный поиск и фильтры товаров сработают.
И да, чтобы бот предлагал что-то отвечающее запросу, надо на товары прописывать теги описаний. но эти же теги можно и для фильтров использовать, и зачем тогда бот?
TAU15 Автор
28.07.2024 06:12+1Бот нужен когда у вас подбор товара это начало только общения. Если товары например промышленные то после выбора товара бот начинает консультировать клиента по базе знаний. И это уже вариант снижения нагрузки на живых консультантов.
Ilya_JOATMON
28.07.2024 06:12+1А что - поля характеристики у товара нет? Они скрыты и их надо через бота выуживать?
Человек стремится получить результат с МИНИМУМОМ затрат энергии, общение с ботами гораздо энергозатратнее, чем десяток кликов мышью или тапов.
TAU15 Автор
28.07.2024 06:12в некоторых промышленных тематиках характеристики товара бывают такие. по которым как бот и может консультировать клиентов
MadMarakuya
В примере человеку показали два рандомных светильника и один из них сразу понравился. А в реальной жизни люди выбирают по параметрам и сравнивают...
Расскажите, как в боте устроен поиск? Светлана хорошо понимает русской язык, синонимы и опечатки?
TAU15 Автор
В данном примере Светлана, которая работает на базе ChatGPT 4 очень хорошо умеет определять параметры поиска из контекста диалога с клиентом. Вы можете для вашего сайта и ваших товаров настроить в роли Светланы как нужно фильтровать товары и она это будет делать как будто она сама использует фильтр на вашем сайте.
С пониманием русского языка и опечаток она просто великолепно отрабатывает.
А синонимы это вообще мега фишка использования ChatGPT для фильтрации по базе данных!