💡 Как использовать в боте регулярное выражение для исключения отдельных значений
Делимся способом для продвинутых пользователей Ботмамы.
Регулярные выражения часто используются чтобы Развилка, Ввод от пользователя и События пропускали только определенные слова и не реагировали ни на что кроме них.
Попробуйте обратную логику — используйте регулярку, которая не будет реагировать на слова прописанные в ней и будет пропускать всё остальное.
В примере спросим, какой мессенджер использует клиент. После ответа, всем кроме ответивших про Телеграм и Вайбер сообщим что они получат рассылку по смс.
Для разделения пользователей добавим Развилку с одной целью, в типе данных цели выберем Регулярное выражение и пропишем такое регулярное выражение:
По Цели по умолчанию передут пользователи написавшие, что пользуются Telegram и Viber. С экрана, куда ведет эта цель им придет сообщение, что рассылку они будут получать в мессенджере.
По Цели 1 передут пользователи с другими ответами, им придет сообщение, что они будут получать смс рассылку.
Подробнее про то, как использовать регулярное выражение для исключений, можно узнать в статье в базе знаний →
#ботхаки
Делимся способом для продвинутых пользователей Ботмамы.
Регулярные выражения часто используются чтобы Развилка, Ввод от пользователя и События пропускали только определенные слова и не реагировали ни на что кроме них.
Попробуйте обратную логику — используйте регулярку, которая не будет реагировать на слова прописанные в ней и будет пропускать всё остальное.
В примере спросим, какой мессенджер использует клиент. После ответа, всем кроме ответивших про Телеграм и Вайбер сообщим что они получат рассылку по смс.
Для разделения пользователей добавим Развилку с одной целью, в типе данных цели выберем Регулярное выражение и пропишем такое регулярное выражение:
^(?!Telegram|Viber$).+
По Цели по умолчанию передут пользователи написавшие, что пользуются Telegram и Viber. С экрана, куда ведет эта цель им придет сообщение, что рассылку они будут получать в мессенджере.
По Цели 1 передут пользователи с другими ответами, им придет сообщение, что они будут получать смс рассылку.
Подробнее про то, как использовать регулярное выражение для исключений, можно узнать в статье в базе знаний →
#ботхаки
🌴 Новости Botmother — лето 2024
Рассказываем, над чем работала наша команда летом
Коротко:
• Добавили возможность принимать платежи в боте в Telegram Stars.
• Добавили новые компоненты — Медиафайлы и Платные медиафайлы.
• Добавили Анимированные эффекты сообщений.
• Cделали возможным копирование компонентов и их свойств между разными ботами.
• Добавили новый тип данных — Видеосообщение для Telegram.
• Добавили чек-бокс Показать подпись перед медиафайлом для компонентов Видео, Изображение и Платные медиафайлы.
• В раздел Пользователи добавили анимированную полосу отображающуюся в процессе поиска.
• Добавили в компонент Робокасса новый предмет расчета — Услуга.
• Добавили возможность скрывать все ярлыки в разделе Статистика.
• Добавили для хелпера filter условие exclude=true.
Подробнее обо всех этих обновлениях читайте в статье.
Рассказываем, над чем работала наша команда летом
Коротко:
• Добавили возможность принимать платежи в боте в Telegram Stars.
• Добавили новые компоненты — Медиафайлы и Платные медиафайлы.
• Добавили Анимированные эффекты сообщений.
• Cделали возможным копирование компонентов и их свойств между разными ботами.
• Добавили новый тип данных — Видеосообщение для Telegram.
• Добавили чек-бокс Показать подпись перед медиафайлом для компонентов Видео, Изображение и Платные медиафайлы.
• В раздел Пользователи добавили анимированную полосу отображающуюся в процессе поиска.
• Добавили в компонент Робокасса новый предмет расчета — Услуга.
• Добавили возможность скрывать все ярлыки в разделе Статистика.
• Добавили для хелпера filter условие exclude=true.
Подробнее обо всех этих обновлениях читайте в статье.
💡 Как удалить последнее сообщение от бота в ВК
Чтобы удалить последнее сообщение от бота в ВК, добавьте Нативный запрос следующим компонентом после сообщения, которое вы хотите удалить.
Поменяйте платформу с Телеграма на ВКонтакте, затем выберите метод запроса messages.delete
В настройках Нативного запроса добавьте Тело запроса для удаления последнего сообщения:
Готово. Бота можно сохранить и протестировать в ВК.
Подробнее про удаление последнего сообщения в ВК можно узнать в статье в базе знаний →
#ботхаки
Чтобы удалить последнее сообщение от бота в ВК, добавьте Нативный запрос следующим компонентом после сообщения, которое вы хотите удалить.
Поменяйте платформу с Телеграма на ВКонтакте, затем выберите метод запроса messages.delete
В настройках Нативного запроса добавьте Тело запроса для удаления последнего сообщения:
{
"message_ids": "{{lastMessageId}}",
"delete_for_all": "1",
"peer_id": "{{this_user.platform_id}}"
}
Готово. Бота можно сохранить и протестировать в ВК.
Подробнее про удаление последнего сообщения в ВК можно узнать в статье в базе знаний →
#ботхаки
💡 Как добавить web app в бота Telegram
Используйте Web app для того, чтобы клиент смог перейти на веб-страницу не покидая бота.
Web app можно добавить двумя способами:
1. Нативным запросом — Web app будет доступен по кнопке, которую пришлет бот в диалоге.
2. Через бота @BotFather — Web app появится слева от строки ввода.
Для использования Web app через Нативный запрос, выберите метод sendMessage, в Теле запроса пропишите URL страницы, которая откроется при нажатии на кнопку.
Также в Теле запроса указываются тексты на кнопке и перед кнопкой.
В компоненте Тело запроса будет выглядеть примерно так:
Для добавления Web app через BotFather сначала выберите нужного бота с помощью команды
После этого отправьте в BotFather ссылку в таком формате:
В последнем сообщении отправьте название для кнопки с Web app.
Подробнее про Web app можно узнать в статье в базе знаний →
#ботхаки
Используйте Web app для того, чтобы клиент смог перейти на веб-страницу не покидая бота.
Web app можно добавить двумя способами:
1. Нативным запросом — Web app будет доступен по кнопке, которую пришлет бот в диалоге.
2. Через бота @BotFather — Web app появится слева от строки ввода.
Для использования Web app через Нативный запрос, выберите метод sendMessage, в Теле запроса пропишите URL страницы, которая откроется при нажатии на кнопку.
Также в Теле запроса указываются тексты на кнопке и перед кнопкой.
В компоненте Тело запроса будет выглядеть примерно так:
{
"platformId":"{{this_user.platform_id}}",
"chat_id":"{{this_user.platform_id}}",
"text":"Переход в веб-бота",
"reply_markup":{
"inline_keyboard":[
[
{
"text":"Перейти",
"web_app":{
"url": "https://docs.botmother.ru"
}
}
]
]
}
}
Для добавления Web app через BotFather сначала выберите нужного бота с помощью команды
/mybots
, затем последовательно нажимайте кнопки, которые присылает бот: Bot Settings → Menu Button → Configure menu button. После этого отправьте в BotFather ссылку в таком формате:
https://docs.botmother.ru/
В последнем сообщении отправьте название для кнопки с Web app.
Подробнее про Web app можно узнать в статье в базе знаний →
#ботхаки
📌 Как делать перерывы между сообщениями
Используйте Таймаут для кратких перерывов между оповещениями.
Если присылать сообщения с небольшими задержками, то пользователи смогут читать тексты или просматривать файлы от бота по мере их поступления.
Активируйте чек-бокс «Индикатор печати», чтобы бот имитировал набор текста во время паузы.
В помощью Таймаута можно делать перерыв между сообщениями до 5 минут.
Если вам нужна более долгая пауза, не стоит добавлять несколько Таймаутов подряд — в большинстве случаев это будет нарушать работу бота. Для перерыва дольше 5 минут воспользуйтесь Триггерным событием.
Подробнее про Таймаут можно узнать в статье в базе знаний →
#про_конструктор
Используйте Таймаут для кратких перерывов между оповещениями.
Если присылать сообщения с небольшими задержками, то пользователи смогут читать тексты или просматривать файлы от бота по мере их поступления.
Активируйте чек-бокс «Индикатор печати», чтобы бот имитировал набор текста во время паузы.
В помощью Таймаута можно делать перерыв между сообщениями до 5 минут.
Если вам нужна более долгая пауза, не стоит добавлять несколько Таймаутов подряд — в большинстве случаев это будет нарушать работу бота. Для перерыва дольше 5 минут воспользуйтесь Триггерным событием.
Подробнее про Таймаут можно узнать в статье в базе знаний →
#про_конструктор
📌 Как записывать числа в боте
Бот может ожидать ответа от пользователя в виде числа.
Например при заказе тура запрашивается количество мест для бронирования, количество дней тура. Для подбора кредита бот может уточнить у пользователя сумму займа, срок кредита и так далее.
Для записи чисел в боте используется Развилка и Ввод от пользователя с различными типами данных:
1. С типом данных Текст, бот будет пропускать всё, что напишет пользователь — числа, текстовые сообщения.
2. С типом данных Число, бот будет реагировать на любое число. Но если пользователь попробует отправить текст, то бот его не пропустит.
3. Если в Цели Развилки прописать в Значении определенное число, то бот будет пропускать только это число.
Так можно сделать при проведении викторины, когда один из вариантов верный или когда для подтверждения регистрации нужно прислать боту конкретное число.
4. С типом данных Регулярное выражение можно пропускать диапазон чисел, например, от 1 до 10, от 10 до 1000, от 0,5 до бесконечности и так далее.
Регулярное выражение соответствующее нужному диапазону нужно добавить в настройках компонента.
После того, как число пришло в бот, оно записывается в переменную и с ним можно работать дальше — проводить математические операции, отправлять в таблицу и так далее.
#про_конструктор
Бот может ожидать ответа от пользователя в виде числа.
Например при заказе тура запрашивается количество мест для бронирования, количество дней тура. Для подбора кредита бот может уточнить у пользователя сумму займа, срок кредита и так далее.
Для записи чисел в боте используется Развилка и Ввод от пользователя с различными типами данных:
1. С типом данных Текст, бот будет пропускать всё, что напишет пользователь — числа, текстовые сообщения.
2. С типом данных Число, бот будет реагировать на любое число. Но если пользователь попробует отправить текст, то бот его не пропустит.
3. Если в Цели Развилки прописать в Значении определенное число, то бот будет пропускать только это число.
Так можно сделать при проведении викторины, когда один из вариантов верный или когда для подтверждения регистрации нужно прислать боту конкретное число.
4. С типом данных Регулярное выражение можно пропускать диапазон чисел, например, от 1 до 10, от 10 до 1000, от 0,5 до бесконечности и так далее.
Регулярное выражение соответствующее нужному диапазону нужно добавить в настройках компонента.
После того, как число пришло в бот, оно записывается в переменную и с ним можно работать дальше — проводить математические операции, отправлять в таблицу и так далее.
#про_конструктор
📌 Как делать вычисления в боте
Записывайте числа в переменные и используйте их в математических операциях: складывайте, вычитайте, умножайте, делите.
Например, в боте для заказа воды пользователь указывает сколько бутылок ему нужно, после чего бот присылает общую стоимость заказа.
Чтобы воспроизвести это у себя, в первую переменную запишите стоимость одной бутыли воды, затем спросите у пользователя сколько бутылок воды ему нужно и запишите ответ во вторую переменную.
В Значении третьей переменной умножьте цену одной бутылки на их количество:
Выведите результат в текст и пользователь увидит конечную стоимость.
Подробнее про Математику в боте можно узнать в статье в базе знаний →
#про_конструктор
Записывайте числа в переменные и используйте их в математических операциях: складывайте, вычитайте, умножайте, делите.
Например, в боте для заказа воды пользователь указывает сколько бутылок ему нужно, после чего бот присылает общую стоимость заказа.
Чтобы воспроизвести это у себя, в первую переменную запишите стоимость одной бутыли воды, затем спросите у пользователя сколько бутылок воды ему нужно и запишите ответ во вторую переменную.
В Значении третьей переменной умножьте цену одной бутылки на их количество:
{{multiply переменная1 переменная2}}
Выведите результат в текст и пользователь увидит конечную стоимость.
Подробнее про Математику в боте можно узнать в статье в базе знаний →
#про_конструктор
💡 Как сделать бота отвечающего по-разному в зависимости от времени
Используйте такого бота на мероприятии с насыщенной программой и пользователи смогут узнать какое событие проходит именно сейчас, как туда добраться и другие подробности.
Принцип работы такой:
Гость запускает бота в 13 часов и ему приходит информация о лекции проходящей в это время — с 12:00 до 15:00. При запуске в 16 часов, бот пришлет инфо о событии идущем с 15:00 до 19:00 и так далее.
Чтобы повторить сценарий у себя, добавьте в переменную шаблон с несколькими интервалами времени которые будут совпадать с расписанием вашего ивента.
С помощью Развилки переводите пользователя на тот экран, который соответствует текущему временному диапазону.
Подробнее про то, как настроить ответы бота в зависимости от времени можно узнать в статье в базе знаний →
#ботхаки
Используйте такого бота на мероприятии с насыщенной программой и пользователи смогут узнать какое событие проходит именно сейчас, как туда добраться и другие подробности.
Принцип работы такой:
Гость запускает бота в 13 часов и ему приходит информация о лекции проходящей в это время — с 12:00 до 15:00. При запуске в 16 часов, бот пришлет инфо о событии идущем с 15:00 до 19:00 и так далее.
Чтобы повторить сценарий у себя, добавьте в переменную шаблон с несколькими интервалами времени которые будут совпадать с расписанием вашего ивента.
С помощью Развилки переводите пользователя на тот экран, который соответствует текущему временному диапазону.
Подробнее про то, как настроить ответы бота в зависимости от времени можно узнать в статье в базе знаний →
#ботхаки
💡 Как проверить подписку на Telegram-канал
Сделайте бота доступным только для подписчиков вашего Телеграм-канала.
Для этого назначьте бота админом канала, подписку на который будете проверять.
В редакторе добавьте Нативный запрос с методом getChatMember
В настройки компонента добавьте шаблон Тела запроса:
В этом шаблоне поменяйте ID канала на ID вашего канала или на его название в формате
Затем добавьте Развилку с отдельными целями для разных пользователей — подписанных, не подписанных, удалённых из канала, админа и создателя канала.
В Значениях Целей пропишите возможные статусы пользователя относительно канала:
Эти статусы Телеграм пришлёт в переменные после прохождения пользователем Нативного запроса.
Развилка берущая значение переменной из
Подробнее про проверку подписки в Telegram можно узнать в статье в базе знаний →
#ботхаки
Сделайте бота доступным только для подписчиков вашего Телеграм-канала.
Для этого назначьте бота админом канала, подписку на который будете проверять.
В редакторе добавьте Нативный запрос с методом getChatMember
В настройки компонента добавьте шаблон Тела запроса:
{
"chat_id": "ID канала",
"user_id": "{{this_user.platform_id}}"
}
В этом шаблоне поменяйте ID канала на ID вашего канала или на его название в формате
@botmothercom
. Это название можно скопировать из настроек канала в Телеграм.Затем добавьте Развилку с отдельными целями для разных пользователей — подписанных, не подписанных, удалённых из канала, админа и создателя канала.
В Значениях Целей пропишите возможные статусы пользователя относительно канала:
member, creator, administrator, left, kicked.
Эти статусы Телеграм пришлёт в переменные после прохождения пользователем Нативного запроса.
Развилка берущая значение переменной из
last_request.result.status
разведет пользователей с разными статусами по экранам, указанным в переходе Цели.Подробнее про проверку подписки в Telegram можно узнать в статье в базе знаний →
#ботхаки
📌 Как Преднастроенные компоненты ускоряют работу в редакторе ботов
Ускорьте работу над компонентами с одинаковыми или похожими настройками с помощью Преднастроенных компонентов.
Создавайте заготовки как обычные компоненты, только в разделе Преднастроенные компоненты.
У компонентов для которых вы сделали шаблоны, в редакторе ботов появится новый пункт — Преднастройка. В нем можно выбрать подходящую заготовку для компонента, который вы настраиваете.
Меняйте отдельные свойства с помощью кнопки Переопределить свойства. После выбора нужных свойств появится возможность их отредактировать.
Вернуться из компонента обратно в раздел Преднастроенные компоненты можно с помощью кнопки Настроить.
Подробнее про Преднастроенные компоненты можно узнать в статье в базе знаний →
#про_конструктор
Ускорьте работу над компонентами с одинаковыми или похожими настройками с помощью Преднастроенных компонентов.
Создавайте заготовки как обычные компоненты, только в разделе Преднастроенные компоненты.
У компонентов для которых вы сделали шаблоны, в редакторе ботов появится новый пункт — Преднастройка. В нем можно выбрать подходящую заготовку для компонента, который вы настраиваете.
Меняйте отдельные свойства с помощью кнопки Переопределить свойства. После выбора нужных свойств появится возможность их отредактировать.
Вернуться из компонента обратно в раздел Преднастроенные компоненты можно с помощью кнопки Настроить.
Подробнее про Преднастроенные компоненты можно узнать в статье в базе знаний →
#про_конструктор
📺 Сделали видео про удаление сообщений
В видео показываем как удалять сообщения с помощью Нативного запроса.
В одном видеоролике собрали способы для удаления четырех видов сообщений:
• последнего сообщения от бота,
• любого сообщения от бота,
• блока сообщений от бота,
• последнего сообщения от пользователя.
Посмотреть видео на YouTube →
Посмотреть видео на RuTube →
В видео показываем как удалять сообщения с помощью Нативного запроса.
В одном видеоролике собрали способы для удаления четырех видов сообщений:
• последнего сообщения от бота,
• любого сообщения от бота,
• блока сообщений от бота,
• последнего сообщения от пользователя.
Посмотреть видео на YouTube →
Посмотреть видео на RuTube →