Найти в Дзене
Дневники Сенсея

Выпуск №4 - Генерация и распознавание QR кодов в чат боте

В четвертом выпуске речь пойдет о том, как в salebot можно научить чат бота генерировать и распознавать QR коды. Ну и немного про разметку текста и оформление переносов внутри текста с помощью калькулятора. Привет, на связи Сенсей. Сегодня решил попробовать текстовую версию с подробными скринами, видео в данной статье не будет. Давайте попробуем собрать небольшую воронку, которая будет взаимодействовать с QR кодами. Для начала, создадим обычную цепочку сбора данных, где у клиента спрашиваем поочерёдно имя, фамилию, телефон и город. Далее, эти данные нам необходимо "зашить" в QR код. При чём "зашить" их не просто как отдельные слова, а с красивым оформлением (перенос строк, выделение текста жирным и т.д). Здесь нужно начать с оформления текста. В последнем блоке нашей цепочке (там где "Спасибо! Регистрация завершена!"), в калькуляторе пишем следующее: #{имя}, #{фамилия}, #{телефон} и #{город} - это переменные из стрелок, вместо которых подставится то, что вводил клиент проходя по цепоч

В четвертом выпуске речь пойдет о том, как в salebot можно научить чат бота генерировать и распознавать QR коды. Ну и немного про разметку текста и оформление переносов внутри текста с помощью калькулятора.

Привет, на связи Сенсей. Сегодня решил попробовать текстовую версию с подробными скринами, видео в данной статье не будет. Давайте попробуем собрать небольшую воронку, которая будет взаимодействовать с QR кодами. Для начала, создадим обычную цепочку сбора данных, где у клиента спрашиваем поочерёдно имя, фамилию, телефон и город.

-2

Далее, эти данные нам необходимо "зашить" в QR код. При чём "зашить" их не просто как отдельные слова, а с красивым оформлением (перенос строк, выделение текста жирным и т.д). Здесь нужно начать с оформления текста. В последнем блоке нашей цепочке (там где "Спасибо! Регистрация завершена!"), в калькуляторе пишем следующее:

-3

#{имя}, #{фамилия}, #{телефон} и #{город} - это переменные из стрелок, вместо которых подставится то, что вводил клиент проходя по цепочке.

Символ \n - это перенос строки. Если вы оформляете текст в калькуляторе и в дальнейшем планируете его использовать в функции, тут обычный Enter на клавиатуре нельзя использовать. Текст должен быть записан строго в одну строку, именно поэтому в таких случаях применяется \n. Если вам надо сделать два переноса (получить отступ внутри текста в виде пустой строки), то нужно ставить \n два раза. Давайте воспользуемся встроенной переменной current_date и добавим к нашему тексту дату регистрации клиента:

-4

Теперь достаточно добавить ниже саму функцию для создания QR кода:

-5

Тут помним, что калькулятор выполняется сверху вниз, поэтому не нарушаем последовательность: сначала задаем переменные и только потом пишем саму функцию. Остается теперь в этом же блоке зайти во Вложения, тип вложения выбрать "Фото" и ниже в поле "URL вложения" прописать переменную #{код}. Именно в нее функция поместит ссылку на наш QR код и клиент его сразу же сможет увидеть.

-6

Готово! С генерацией, надеюсь, понятно. Теперь давайте сделаем ветку для распознавания кода. Создаем зеленый блок (стартовое условие), в условии у него пишем ключевое слово для запуска. Я напишу "Распознать код". Из этого зеленого блока идет стрелка в белый блок (состояние диалога), в котором мы и будем делать обратную расшифровку QR кода и доставать из него данные.

-7

Итак, открываем калькулятор в белом блоке и пишем в нем всего лишь одну функцию:

-8

Давайте разберемся, что тут написано. Во-первых, сама функция recognize_code, именно она делает расшифровку QR кода. Во-вторых, в параметрах функции мы указали переменную attachment_url, это встроенная переменная, в которой находится ссылка на вложение, которое прислал клиент. Остается вывести переменную #{результат} в тексте сообщения и мы увидим, что было зашифровано в отправленном QR коде:

-9

Распознавание настроено. Давайте добавим последний штрих, сделаем выделение текста жирным. Для этого, нам необходимо вернуться в цепочку сбора данных, там где мы создавали переменную текст и добавить в нее разметку текста. Я хочу, чтобы у меня распознанный текст выглядел следующим образом:

-10

Т.е. слова "Имя:", "Фамилия:", "Город:", "Телефон:" и "Дата регистрации:" были выделены жирным шрифтом. В телеграм для этого существует два типа разметки markdown и html. Я рекомендую пользоваться html, она менее капризная к знакам препинания внутри текста, следовательно, более надежная в работе. Если наведем мышку на подсказку под полем текст сообщения, то можно будет увидеть все команды, отвечающие за разметку текста в телеграм

-11

Здесь меня интересует жирный шрифт. Значит я должен добавить открывающий тег <strong> перед текстом, который хочу выделить и закрывающий тег </strong> в конце текста. Таким образом я указываю боту начало и конец выделения, именно к этой части и будет применена разметка:

-12

Возвращаемся в блок, где у нас прописана функция распознавания и нажимаем кнопку html. Данная кнопка активирует разметку в поле текст сообщения:

-13

Если мы ее не включим, то текст будет выглядеть так:

-14

После включения, всё встает на свои места и мы с ботом теперь понимаем друг друга:

-15

Готово! Как видите, ничего сложного нет. В завершении выпуска хочу сказать, где такое можно применять и сколько стоит подобная работа:

1. Часто заказчики просят сделать именно момент регистрации, то что было описано сейчас в статье: зашифровываем данные о клиенте в QR код, на входе на мероприятие этот код сканируют (при чем это может быть любое приложение, не обязательно ботом) и вносят в базу данные клиента, фиксируют факт его прибытия на мероприятие. Стоит в районе 5-7 тысяч, зависит от того, насколько большой текст будет изначально шифроваться. Чем больше текст, тем больше времени потратим на расстановку переносов или выделение текста.

2. Так же, такая механика очень круто ложится для оффлайн квестов: зашиваем в QR код разные ссылки на бота с разными тегами. Клиенты играют в игру, ходят по локациям, находят спрятанные распечатанные QR коды, сканируют их и тем самым запускают в боте разные цепочки постепенно продвигаясь по сюжетной линии квеста. По стоимости около 10-12+ тысяч, тут зависит от общего количества кодов. Так же у нас каждый тег, спрятанный в QR код, должен быть привязан к конкретному блоку в воронке. Чем больше кодов - тем больше блоков, тем дороже цена.

3. Реклама чат бота компании. Принцип такой же как в пункте 2, но с небольшим отличием. Пример: у клиента сеть небольших магазинчиков в крупных ЖК г. Краснодара. Мы ему сделали чат бот и под каждый магазин сделали свой QR код со своим тегом. Люди приходят в магазин, могут отсканировать код и запустить бота. Дальше в боте мы смотрим по какому тегу был запуск бота (в каком из магазинов это произошло) и сегментируем клиентов по спискам. Благодаря этому мы можем делать им точечные рассылки, рассказывать об акциях в конкретном магазине, рассказывать о новинках в ассортименте и т.д. Стоимость 8-12+ тысяч и она так же зависит от количества магазинов т.к. каждый магазин привязан к отдельному списку внутри проекта и, возможно даже, к отдельной ветке внутри воронки.

Думаю на сегодня всё, всем кто дочитал статью спасибо, надеюсь информация в ней вам пригодится. А тем, кто еще и попробовал такое сейчас реализовать, спасибо и плюсик в копилку: вы только что приобрели новый навык!

Всем пока, до новых встреч на канале)

Автор: Alexchatbots