FAQ

ЧАТ-БОТ

Що робити, якщо бот працює в тестовому вікні, але не працює в месенджері?

Ваш тариф або не оплачено, або оплачено не той тариф.

Як отримати від клієнта дійсний (або правильний) номер телефону?

Потрібно додати валідацію номера телефону за допомогою regex.

Регулярні вирази дозволяють боту перевірити, чи введені дані мають правильний формат (наприклад, переконатися, що це номер телефону, а не щось інше).

Як виконати перевірку?

Під час спілкування з клієнтами часто потрібно передзвонити їм. То як чат-бот може автоматично збирати дані клієнта? Відповідь проста — за допомогою регулярних виразів.

Щоб використати функцію для збору номера телефону (або email), використовуйте такі регулярні вирази:

  1. Номер телефону (Росія): ^((\+7|7|8)+([0-9]){10})$ змінити країну і номер

  2. Номер телефону (з кодом країни): ^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$

  3. Email: ^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$

У воронці ми використали регулярний вираз для номерів телефонів з будь-якої країни.

Так само, як бот зберігав ім’я та вік клієнта, він також збереже номер телефону або email користувача (якщо ви використаєте правильний регулярний вираз).

Створіть блок, у якому бот надішле повідомлення з проханням надіслати номер телефону (або email) клієнта:

Блок із повідомленням для збору номера телефону клієнта

Далі з’єднайте зі стрілкою цей блок і задайте відповідний регулярний вираз як умову для стрілки.

З умовою регулярного виразу чат-бот прийматиме лише номери телефонів у вигляді цифр, а email — у правильному стандартному форматі.

Якщо клієнт надішле повідомлення, яке не є дійсним номером телефону (або email), ви можете створити блок, який повідомить клієнту, що його введення неправильне:

Із блоку, де ви попросили клієнта надіслати номер телефону, створіть другу стрілку і в новому блоці напишіть повідомлення на кшталт: «Це не номер телефону. Будь ласка, введіть свій номер телефону!»

Виберіть тип блоку «Безстанний» (див. скріншот вище). Цей тип блоку не має умов, як блок «Стан діалогу», і до нього не можна перейти напряму.

Блок «Безстанний» ідеально підходить у нашій воронці, тому що користувач не зможе перейти далі з попереднього блоку, не ввівши номер телефону, що гарантує його введення для продовження руху воронкою.

Про блок «Безстанний» та його можливості можна прочитати в статті «Блок без стану». посилання

Більше деталей про регулярні вирази можна знайти в статті під назвою «Список корисних регулярних виразів». посилання

Як дізнатися кількість підписників бота?

У розділі «Аналітика» показано як загальну кількість клієнтів, так і кількість, розбиту за платформами месенджерів. посилання

Як зробити так, щоб бот сам ініціював розмову

У кожному месенджері є власне налаштування, яке дозволяє боту надіслати перше повідомлення.

Стаття «Перше повідомлення в месенджерах» тут. посилання

Як надіслати повідомлення «фолоу-ап»?

Іноді клієнт може зупинити проходження воронкою з особистих причин. Щоб нагадати про себе клієнту, ви можете надіслати повідомлення-нагадування, використовуючи блок «Безстанний».

Цей блок надішле повідомлення користувачу, не переміщаючи його кудись у межах основної воронки.

Докладніше про те, як працюють такі блоки, можна прочитати в статті «Безстанні» блоки. посилання

Ми також використовуємо таймер (затримку) у стрілках і УВІМКНІТЬ перемикач «Скасувати, якщо вийшов із блоку».

Перемикач «Скасувати, якщо вийшов із блоку» означає, що стрілка спрацює лише для користувачів, які через заданий час все ще перебувають у зеленому блоці й не перейшли до білого блоку.

Як зробити так, щоб послідовність із 2-3 повідомлень відкривалася одразу?

Потрібно з’єднати блоки стрілками та встановити затримку 0 секунд у налаштуваннях з’єднання стрілок.

Як можна вимкнути розумні відповіді, коли в чат приєднується оператор або менеджер, щоб бот перестав відповідати?

Потрібно встановити затримку після відповіді оператора.

Як відстежити, чи натиснула людина на посилання з попереднього повідомлення?

Для цього потрібно використати функцію proxy-link.

Створімо змінну з назвою link і надамо їй значення proxy() з вашим посиланням:

Далі створіть кнопку, для якої URL буде встановлено в змінну link:

Додайте кнопку до блоку та протестуйте її. У розмові з клієнтом ви побачите таке сповіщення у відповідному розділі:

Відеоурок

Я хочу запускати таргетовану рекламу для цього бота. Де я можу взяти його посилання?

Ви можете створити сайт (лендінг-сторінку), на якому будуть посилання на ботів.

Використання сайту або лендінгу не є обов’язковим; ви можете просто використовувати proxy-посилання.

Функція «Часова затримка» використовується для надсилання повідомлення у заданий час і дату?

Так, вірно. Повідомлення буде надіслано в дату та час, задані в налаштуваннях стрілки (з’єднання).

Якщо перед відправленням встановлено затримку, її буде додано до вказаного часу. Наприклад, повідомлення буде надіслано 21/07/2025 о 11:00, тому що затримку, встановлену в полі «Затримка перед відповіддю», додають до часу, заданого в полі «Час відправлення».

Чи можливо створити двох різних ботів в одному акаунті?

Ви можете створити будь-яку кількість проєктів в одному акаунті.

Чи можливо налаштувати стрілку з таймером і умовою переходу так, щоб вона не запускалася після кожного повідомлення клієнта?

Якщо з якоїсь причини ви вимкнули «Скасувати заплановані повідомлення», але все ще використовуєте перехід із таймером та умовою, рекомендуємо додати #{question} у поле «Рядки, на які не відповідати».

Чому текст «&para» у блоці замінюється на «¶»?

На жаль, у цьому випадку спрацьовує сам браузер, який виявляє, як йому здається, помилку і автоматично замінює &para на ¶, після чого це відображається як символ «¶». Щоб уникнути цієї проблеми, рекомендуємо замість цього використовувати &Para.

Чи можливо налаштувати сповіщення для нашого адміністратора, коли клієнт надсилає повідомлення в онлайн-чаті?

Так, це можливо. Докладніше про це можна прочитати в статті:

Чи можливо мати різні посилання на бота з різною логікою?

Повідомлення в підтримку:

«Добрий день! У нас така ситуація: У нас є два однакові посилання, які ведуть на один і той самий сайт, але ми зробили розділення, щоб зрозуміти, звідки приходять ліди.

Чи можна це зробити, використовуючи лише одного бота?

Іншими словами, одне посилання буде в шапці профілю Telegram, а інше використовуватиметься в нашій рекламі, і ми хочемо розділити ці два канали, використовуючи одного бота».

Так, ви можете створити два сайти (лендінг-сторінки) у конструкторі та призначити кожному власний тег:

  1. Створіть два сайти з різними тегами:

  1. Потім у стартових блоках вкажіть теги в умові блоку:

а) Іншими словами, коли користувач заходить у месенджер через лендінг-сторінку «Сайт курсу», застосовується таке налаштування:

б) Коли користувач заходить у месенджер з лендінг-сторінки «Навчання», спрацює друга воронка:

Чи можливо надіслати повідомлення наступного дня після першого повідомлення бота?

Повідомлення в підтримку:

«У мене така ситуація: Людина натискає на рекламу і входить у бота, отримуючи вітальне повідомлення. Мені потрібно надіслати їй посилання рівно о 12:00 наступного дня. Як це налаштувати?»

Так, можна. У полі «дата відправлення» на стрілці потрібно вказати змінну next_day разом із потрібним часом відправлення.

Як налаштувати бота так, щоб він не заважав спілкуванню між клієнтами та операторами?

У налаштування проєкту, є поле «Час у хвилинах, протягом якого бот ставить паузу після відповіді оператора».

Зворотний відлік починається з моменту, коли оператор надсилає повідомлення. Якщо ви випадково встановите занадто велике значення і бот надто довго не відповідатиме клієнту, встановіть у полі 0 та повідомте клієнта.

Як налаштувати відписку через чат-бота?

ВКЛАДЕННЯ ФАЙЛІВ

Чи можу я прикріплювати зображення?

Так, бот може надсилати зображення в повідомленнях. Для цього в конструкторі виберіть потрібний блок, додайте вкладення та виберіть відповідний тип (наприклад, зображення):

ПБільше деталей про надсилання вкладень можна знайти тут. посилання

Як я можу надіслати кілька зображень (файлів)?

Тепер блоки підтримують додавання кількох вкладень одного типу:

Ви також можете створити кілька послідовних блоків, кожен із яких надсилатиме вкладення без тексту, вказавши у полі відповіді змінну #{none}.

Чому замість файлів приходять посилання?

Це означає або те, що ви вибрали тип надсилання файлу як посилання, або сталася помилка під час надсилання файлу. Рекомендується перевірити, чи існує файл за посиланням.

Ось деякі особливості надсилання файлів:

  1. Під час завантаження файли повинні мати різні назви оскільки вони зберігаються на сервері. У кожного проєкту є своя папка, і дублікати назв файлів не допускаються.

  2. Якщо ви надсилаєте файл як посилання, переконайтеся, що посилання працює.

  3. Відеофайли, надіслані як «відео для перегляду», не підтримуються.

  4. Видалення блоку також видаляє прикріплений до нього файл.

Як зробити, щоб з’являвся попередній перегляд посилання?

Під час додавання посилань у текст повідомлення ви можете увімкнути показ попереднього перегляду посилання так:

Перетворення посилання на красивий попередній перегляд під час надсилання в соціальних мережах або месенджерах, таких як Telegram, WhatsApp, Facebook забезпечується розміткою Open Graph.

Розмітка Open Graph складається з додаткових метатегів, що включають заголовок (og:title), опис (og:description) та зображення (og:image).

Коли ви змінюєте зображення або опис для попереднього перегляду посилання, вам потрібно очистити кеш за допомогою спеціальних інструментів.

Який максимальний розмір файлу?

Максимальний розмір файлу для завантаження в конструкторі — 20 МБ; обмежень на розмір під час надсилання за посиланням немає.

Як я можу надіслати випадковий текст або зображення?

Нам часто ставлять запитання про те, як надіслати значення, зображення тощо, випадково вибрані з набору даних. Ось детальне пояснення:

Формат функції:

random(low, high) - Щоб отримати випадкове число, функція приймає два параметри: нижню та верхню межі. Приклад: random(-10,10) Результат — ціле число від -10 до 10.

Отримання випадкового значення з набору даних

Під набором даних ми маємо на увазі будь-яке джерело збереженої інформації — масив, словник або таблицю.

Розгляньмо приклад з масивом:

  1. Оголошення масиву: text = { "1": "Тебе чекає сонячна Італія", "2": "Гадаю, модна Франція підніме тобі настрій", "3": "Час відвідати береги рідного Криму", "4": "Дослідіть куточки своєї батьківщини" }

    picture = { "1": "https://i.ibb.co/k4prZK0/itperv.jpg", "2": "https://i.ibb.co/mTthk8t/image.jpg", "3": "https://i.ibb.co/dJ1d6XK/5d42d4f8a593ad12cf3fb394-1.jpg", "4": "https://i.ibb.co/Y3YYGQD/DSCF6408-2.jpg" }

  2. Виберіть випадкове значення: vibor=random(1,4)

  3. Отримайте значення з масивів, використовуючи вибране число: txt = get(text, '#{vibor}') pct = get(picture,'#{vibor}')

  4. Виведіть результати клієнту. Приклад:

Під час роботи з таблицями підхід такий самий, як і з масивами та словниками: спочатку потрібно заповнити дані, а потім прочитати випадково вибраний рядок із таблиці.

ВОРОНКА

Як розділити воронку за месенджерами?

Щоб визначити, з якого месенджера прийшов клієнт, є вбудовані змінні #{client_type} та #{messenger}. Обидві містять інформацію про месенджер, але #{client_type} повертає число, тоді як #{messenger} повертає назву.

Наприклад, якщо людина прийшла з Онлайн-чату, #{client_type} повертає 5, а #{messenger} повертає «Онлайн-чат».

Ось значення для client_type:

Значення
Месенджер

1

Telegram

2

Viber

3

Facebook messenger

5

онлайн-чат

10

Instagram

14

e-mail

16

Telegram Business Account

Докладніше про змінні можна прочитати тут. посилання

Розгляньмо кілька прикладів:

Щоб визначити, з якого месенджера пише клієнт, створіть 3 гілки. У полі «Змінна для порівняння» кожної стрілки вкажіть відповідні умови:

Залежно від месенджера, який використовує клієнт, він піде відповідним шляхом у воронці та потрапить до відповідного блоку.

  1. Якщо клієнт пише через Telegram, його буде перенаправлено до блоку з назвою «Ви з Telegram»:

  1. Якщо клієнт пише з іншого месенджера або з онлайн-чату, його буде перенаправлено до блоку з назвою «Ви не з Telegram»:

Як розділити воронку за різними логінами?

Для користувачів, підключених до кількох акаунтів у межах одного месенджера, може бути складно розділити функціональність воронки за акаунтами. Щоб це вирішити, є вбудована змінна #{group}. Вона повертає ідентифікатор акаунта бота, з яким взаємодіє клієнт.

Приклад:

У розділі «Канали» підключено два боти Telegram. Будь ласка, скопіюйте group_id:

Ви можете використовувати порівняння значення змінної group як у блоках з умовами, так і в стрілках. Для цього використовуйте «Змінна для порівняння» .

Розділіть воронки у стартових блоках:

У цих блоках умови запуску воронки однакові, але поле «Змінна для порівняння» перевіряє значення змінної group.

Цей блок з умовою «start» спрацює лише у відповідному боті:

Щоб розділити воронку за логінами ботів, ви також можете порівнювати значення змінної group у з’єднаннях (стрілках). Так користувачі отримуватимуть різні повідомлення на певних етапах воронки залежно від того, яким ботом користується клієнт.

Ось один зі способів налаштування стрілок

Докладніше про змінні можна прочитати тут. посилання

Як я можу сповістити адміністратора, якщо користувач надсилає повідомлення поза воронкою?

Є кілька способів це зробити.

Варіант 1: Створіть блок «Безстанний з умовою», який реагує на повідомлення поза визначеними умовами бота, і налаштуйте калькулятор: message(187235469, 'Задано запитання https://mavibot.ai/projects/#{project_id}/clients/#{client_id}'), де перший параметр (187235469) — це client_id менеджера.

Докладніше про те, як працює функція message(), можна дізнатися в цій статті. посилання

Варіант 2:

У налаштуваннях проєкту в поле «Повідомлення, якщо бот не знає відповіді» вставте таке:

#{substring(message(187235469,'Задано питання https://salebot.pro/projects/#{project_id}/clients/#{client_id}'),4)}.

Тоді адміністратор вашого проєкту отримуватиме сповіщення про будь-яке повідомлення, на яке бот не знає, як відповісти.

ІНШЕ

Де я можу знайти номер проєкту?

Номер проєкту можна знайти в адресному рядку браузера:

Також ви можете знайти його в списку проєктів:

Як оновити кеш посилання Open Graph?

Telegram

Запустіть бота @webpagebot і надішліть потрібне посилання. Потім очистіть кеш, вибравши одну з команд [update …].

Facebook

Перейдіть на сторінку дебагера поширення, введіть посилання в поле та натисніть Debug. Потім виберіть «Scrape again», щоб оновити зображення та опис посилання.

Для WhatsApp посилання зазвичай оновлюються автоматично.

Як перевірити, чи є учасник чату в певному списку?

Ось як це застосувати на практиці: Уявіть, що ви дали посилання на приватний чат. Так, посилання одноразове, але кмітливий клієнт може зайти в чат з чужого акаунта. Бот ще не бачив цього користувача, тож не може видалити його після несплати — і він продовжує безплатно споживати ваш контент.

Щоб цього уникнути:

  • Додайте платних користувачів до списку

  • Створіть окремий список для кураторів/адмінів/VIP-учасників

  • Коли хтось новий приєднується до чату, бот перевіряє, чи є він у будь-якому зі списків. Якщо ні — його безжально видаляють.

Отже, для цього налаштування вам знадобляться такі функції: - add_to_list(номер списка)- щоб додати користувача до списку - tg_create_chat_invite_link(platform_id, member_limit=None, hours=None, request=None) - щоб створити запрошувальне посилання на чат (обробляє callback) - some_client_in_list(list_id, recepient) - щоб перевірити, чи є учасник у певному списку - tg_ban_chat_member(platform_id, user_id, hours=99999, revoke_messages=True) - щоб заблокувати користувача чату

Як я можу отримати посилання на месенджери?

Ви можете використовувати посилання на вашого бота в месенджері, щоб запрошувати клієнтів.

Посилання на месенджери можна знайти в розділі «Канали»:

Далі виберіть месенджер, для якого хочете отримати посилання. Кожен підключений месенджер має власне унікальне посилання.

Ви також можете створити сайт, на якому відображатимуться всі посилання на месенджери:

Використовувати сайт або лендінг-сторінку не обов’язково; ви можете просто використовувати proxy-посилання.

Останнє оновлення