Перше повідомлення в особисті: підключення бота до Telegram Business
Людина, яка клікнула рекламу і написала одразу менеджеру, досі була невидимою. Трекер знає тих, хто натиснув /start у бота, а той, хто бота обійшов, не лишав рядка ніде. Telegram Business це змінює: бот, підключений до особистого акаунта менеджера, отримує повідомлення тих чатів, які йому віддали, і перше вхідне повідомлення від нової людини стає подією first_dm, прив'язаною до кліку. Цей гайд - увесь обмін цілком: що зобов'язаний зробити менеджер, що бот отримує, у що це обходиться і чого все одно не дає.
Що робить менеджер у своєму Telegram
Підключення відбувається поза Leadgram, на боці менеджера: Налаштування → Telegram Business → Чат-боти, додати вашого бота і обрати чати, які він обслуговує. Зробити це за менеджера ззовні не можна.
Перевірити ззовні теж не можна. Про підключення ми дізнаємося тільки з апдейту, який Telegram надсилає боту в момент підключення, тож доки апдейт не прийшов, картка Перше повідомлення в особисті на сторінці Боти каже, що бот не підключений до жодного акаунта, - і це чесно про все, що нам відомо.
Другий крок наш і лежить на тій самій картці: Режим збору у кожного бота заведений у положенні Вимкнено, і доки він там стоїть, подій по цьому боту не пишеться. Зробити треба обидва кроки. Пропустите будь-який - лічильник лишиться на нулі, і жодна сторона не повідомить про помилку.
Ретроспективи немає. Повідомлення, надіслані до підключення, Telegram не віддає, тож перший день збору починається з нуля, а не дозаповнює минулий тиждень.
Telegram Premium для цього не потрібен
Підключення бізнес-бота не потребує Telegram Premium - Telegram документує підключених ботів як доступних і користувачам без Premium. Premium потрібен менеджеру для решти business-функцій: робочі години, швидкі відповіді, привітання, business chat links. Віддати боту чати до їх числа не входить.
Тож якщо менеджер підключитися не може, Premium - не перше, куди варто дивитися. Перше - наступний розділ.
Один бізнес-бот на акаунт і Business Mode
До одного акаунта Telegram можна підключити лише одного бізнес-бота. Якщо у менеджера вже підключений інший - CRM, автовідповідач, асистент, - нашого він у списку або не побачить, або дістане відмову при підключенні; спершу треба відключити попереднього. Найчастіше в це впираються агенції, з очевидної причини: у них найімовірніше вже працює бот на цьому акаунті.
Друга вимога лежить не на акаунті, а на боті. Business Mode має бути увімкнений у нього в @BotFather, і доки він вимкнений, бота просто немає у списку чат-ботів Telegram Business, скільки б менеджер його там не шукав. Цю ознаку ми читаємо у Telegram при додаванні бота, тож картка називає такий випадок, коли знає відповідь, - і мовчить, а не вгадує, коли не питала.
Що бот отримує і що ми обробляємо
Це те, що клієнт зобов'язаний прочитати до підключення бота. Той самий абзац друкує картка підключення, слово в слово:
Підключивши бота до свого акаунта Telegram Business, ви даєте йому доступ до повідомлень у тих чатах, які обрали самі: бот отримує кожне повідомлення з цих чатів, поки підключення увімкнене. Обробляємо тільки перше вхідне повідомлення від нової людини і беремо з нього мітку кліку; решта відкидається одразу після перевірки. Текст повідомлень ми не зберігаємо і нікуди не передаємо: у звіті лишається ідентифікатор відправника і час. Ви можете відключити бота будь-якої миті в налаштуваннях Telegram, і потік припиниться негайно.
Приймання і обробка - різні слова, і це навмисно. Підписки «тільки перше повідомлення» у Telegram немає: підключеному боту приходить кожне повідомлення обраних клієнтом чатів, а «перше» визначається на нашому боці, нами, на кожному повідомленні, що прийшло. Хто обіцяє, що бот читає тільки перше, описує те, чого Telegram не пропонує.
Чи може бот відповідати - окремий перемикач у налаштуваннях самого менеджера, і на приймання він не впливає. Як він виставлений у підключеного акаунта, написано на картці.
Посилання-чернетка
Атрибуції потрібно щось у самому повідомленні. Цільовим URL кампанії стає посилання-чернетка Telegram:
https://t.me/<manager_username>?text=lg-{click_id}
{click_id} підставляється на редиректі; людина потрапляє в чат із уже набраним lg-cm4x8... у полі введення і надсилає його першим повідомленням. Ця мітка - єдиний прямий доказ зв'язку особистого повідомлення з кліком, а Доставка конверсій показує, яка частка перших повідомлень приїхала з нею.
Умов до неї три:
- Менеджеру потрібен публічний @username. Чернетка відкривається лише за ним. Без юзернейма посилання зібрати немає з чого, і картка каже про це прямо, а не друкує неробоче.
- Кирилицю в тексті чернетки треба процент-кодувати самостійно. Редирект збирає адресу з рядка як він написаний, навмисно без повторної серіалізації, щоб не ламати чужі макроси. Не-ASCII у query їде рівно в тому вигляді, у якому ви його набрали.
- Людина може стерти чернетку до відправлення. Тоді мітки немає, і особисте повідомлення падає на здогад за тим, що ще відомо про цей акаунт Telegram. Частина особистих лишається без атрибуції назавжди. Це форма Telegram, а не дефект, який колись полагодять.
Що це змінює в рахунку
first_dm - платний тип події, і він приносить клас списань, якого до ввімкнення не було.
- Людина, що приїхала одразу в особисті, - новий платний підписник. Той, за кого ви вже платили (він колись натиснув
/startу бота), закривається як безкоштовний: акаунт Telegram зіставляється один раз на робочий простір і без строку давності. А той, хто писав тільки менеджеру, не тарифікувався ніколи - з простої причини: трекер його не бачив. Тепер бачить, і списання йде як за будь-яку першу платну подію. - Особисте повідомлення, надіслане без Telegram-id, безкоштовним не стає само собою. З підключеного бота ідентифікатор відправника є завжди, тож це стосується лише подій, які ви надсилаєте самі через API. Залежно від того, як налаштоване списання за слабкою ідентичністю, така подія або закривається безкоштовною, або тарифікується за слабкою драбиною - кука, пристрій чи клік. Який із двох режимів увімкнено для вашого робочого простору, скаже підтримка.
Пуші на first_dm
first_dm уміє запускати пуш і лишається тригером - але прочитайте, що потрібно доставці, перш ніж будувати на ньому ланцюжок. Пуш доставляється через підписників бота, за парою (бот, чат). У людини, яка писала тільки менеджеру, такого рядка немає: вашого бота вона не відкривала. Пуш, озброєний на її first_dm, озброїться і не піде.
Тобто тригер корисний для тих, хто зробив і те і те - написав менеджеру і колись запустив бота, - і інертний рівно для тієї аудиторії, заради якої фіча й заведена. Про помилку ніхто не повідомить, бо нічого не зламалося: адреси для відправлення просто немає. Решта правил доставки - у гайді Пуші.
MTProto: наша позиція
Другий спосіб побачити перше повідомлення в особистих - користувацька сесія, MTProto, той самий протокол, якою говорять самі застосунки Telegram. Користувацьких сесій ми не тримаємо і тримати не будемо. Це позиція, а не пункт беклогу.
Користувацька сесія - це номер телефону клієнта, код входу і пароль другого фактора, що лежать на нашому сервері. Вкрадена сесія - повне захоплення особистого акаунта, а не втрата токена бота: листування, контакти, усі інші чати, все цілком. У продукту є вибудувана посадка для токенів ботів - шифрування при зберіганні, відбиток і обмеження аллоулистом методів Telegram, - і немає нічого схожого для сесій: ні сховища, ні аллоулиста методів, ні моделі відкликання. Плюс Telegram може заблокувати сам акаунт клієнта за автоматизацію.
Діра, яка від цього лишається, реальна і названа вище: людину, що стерла чернетку і ніколи не торкалася вашого бота, до кліку прив'язати нічим. Ми віддамо перевагу чесно показати цю частку на сторінці Доставка конверсій, ніж тримати особистий акаунт клієнта у себе на диску.