Telegram Bot

Підключіть свого Telegram бота до Fainflow для автоматизації повідомлень, медіа, чатів та взаємодії з користувачами.


Крок 1 — Створіть бота у BotFather

  1. Відкрийте @BotFather у Telegram та почніть діалог.
  2. Надішліть /newbot.
  3. Введіть відображуване ім'я бота (наприклад, Мій Support Bot). Користувачі бачать це ім'я.
  4. Введіть username бота — він має:
    • закінчуватись на bot (регістронезалежно)
    • бути 5–32 символи завдовжки
    • містити лише латиницю, цифри та підкреслення
    • бути унікальним у Telegram
  5. BotFather надішле вам токен бота, наприклад: 123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.

⚠️ Зберігайте токен у таємниці. Будь-хто з токеном може керувати ботом. Не коміть його, не діліться. Якщо токен витік — надішліть /revoke у BotFather, щоб скасувати його та згенерувати новий.

Крок 2 — Налаштуйте бота (опціонально, але рекомендовано)

У BotFather надішліть /mybots → виберіть свого бота:

НалаштуванняЩо робить
Edit Bot → Edit AboutТекст «about» у профілі бота
Edit Bot → Edit DescriptionОпис, який показується до /start
Edit Bot → Edit BotpicАватар
Bot Settings → Group PrivacyDisable, якщо бот має читати всі повідомлення у групах (а не лише команди)
Bot Settings → Allow Groups?Чи можна додавати бота до груп
Edit CommandsСписок команд у меню (наприклад, /start - почати, /help - допомога)

Group Privacy — найпоширеніша пастка: за замовчуванням бот у групах отримує лише команди та відповіді. Якщо ваш flow потребує всі повідомлення — встановіть Disable.

Крок 3 — Підключіть у Fainflow

  1. У Fainflow відкрийте Підключення → натисніть + Нове підключення → виберіть Telegram Bot.
  2. Заповніть форму:
ПолеОпис
Bot TokenТокен з BotFather (Крок 1.5)
NameБудь-яка назва, яку ви хочете бачити у Fainflow (наприклад, Support Bot)
DescriptionКоротке призначення, наприклад: Автоматизація підтримки клієнтів

⚠️ Реальний бот визначається токеном, а не Name. Name — це просто мітка всередині Fainflow. Якщо ви вставите токен від @bot_A, а підключення назвете Мій Trading Bot, підключення все одно слухатиме @bot_A — повідомлення, надіслані до @trading_bot, ніколи не дійдуть до flow. Після збереження картка підключення показує реальний @username, який Fainflow визначив через getMe — переконайтеся, що це саме той бот, з яким ви плануєте спілкуватися.

  1. Натисніть Connect.

Fainflow перевірить токен викликом getMe та збереже username, first_name і capabilities бота. У разі успіху ви побачите Bot connected! з @username бота.

New Connection

Крок 4 — Перевірте підключення

Після збереження відкрийте картку підключення у Connections. Ви побачите:

  • Bot username — клікабельний, відкриває бота у Telegram
  • Bot token — замаскований (видно лише перші 8 символів)
  • Capabilitiescan_join_groups, can_read_all_group_messages, supports_inline_queries

Кнопка Test connection перевіряє, що бот живий і webhook зареєстрований. Якщо webhook відсутній або зламаний — натисніть Re-register webhook.

Крок 5 — Зміна токена / редагування підключення

Ви можете змінити токен бота без видалення підключення — усі прив'язані flows продовжать працювати.

  1. Відкрийте Connections → клікніть на картку підключення.
  2. Поруч із замаскованим Bot Token натисніть Edit.
  3. Заповніть будь-яку комбінацію:
    • New Bot Token — залиште порожнім, щоб залишити поточний. Вставте новий, щоб замінити.
    • Name — відображувана назва у Fainflow.
    • Description — короткий опис.
  4. Натисніть Save.

Якщо ви ввели новий токен, Fainflow повторно перевіряє його через getMe і оновлює bot_id, username, first_name та capabilities бота. Збереження не вдасться, якщо Telegram відхилить токен, тож помилкова вставка не зламає підключення.

💡 Коли змінювати токен? Якщо ви виконали /revoke у BotFather (бо старий токен витік) — згенеруйте новий, вставте сюди й натисніть Save. Не потрібно перестворювати підключення чи перебудовувати flows.


Event: Bot Update

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

Виходи

ВихідТипОпис
updateTypestringmessage, callback_query, edited_message тощо
chatIdstringTelegram ID чату
chatTypestringprivate, group, supergroup, channel
fromIdstringTelegram user ID відправника
fromUsernamestring@username відправника
firstNamestringІм'я відправника
lastNamestringПрізвище відправника
messageIdstringTelegram ID повідомлення
textstringТекстовий вміст повідомлення
datestringUnix-мітка часу
rawjsonПовний необроблений об'єкт оновлення Telegram

Приклад: Ехо-бот

Простий бот, який відповідає тим самим текстом, який отримав.

Event: Bot Update
  ↓
Action: Send Message
  chatId ← chatId (з event)
  text   ← text (з event)

Echo Bot

Bot repeats the message it receives

Telegram Bot

Bot Update

message
userID
date

Telegram Bot

Send Message

chatId
userID
text
message

Приклад: AI Чат-бот

Бот, який відповідає за допомогою OpenAI GPT.

AI Chat Bot

Bot responds using OpenAI GPT

Telegram Bot

Bot Update

message
userID

OpenAI

Send Prompt

model
gpt-4
instructions
You are a helpful assistant
input
message
responseText

Telegram Bot

Send Message

chatId
userID
text
responseText

Доступні дії

ДіяОпис
Send MessageНадіслати текст у чат
Send ReplyВідповісти на конкретне повідомлення
Edit MessageРедагувати текст існуючого повідомлення
Delete MessageВидалити повідомлення
Send Photo / Video / Document / Audio / VoiceНадіслати медіа
Send Media GroupНадіслати кілька медіа одразу
Send Inline KeyboardПовідомлення з inline-кнопками
Send MenuПовідомлення з reply-клавіатурою
Send Chat ActionПоказати індикатор «друкує...»
Answer CallbackВідповісти на натискання inline-кнопки
Set CommandsВстановити список команд бота
Get Chat / Get Chat MemberОтримати інформацію про чат або учасника
Ban Member / Unban MemberМодерувати користувачів
Approve Join / Decline JoinОбробити запит на вступ

Дивіться Дії Telegram Bot для детального опису входів/виходів.


Поради

  • Використовуйте Continue If, щоб обробляти лише певні типи повідомлень (текст, команди, фото).
  • Використовуйте If/Else з text contains /start, щоб вітати нових користувачів.
  • Зберігайте токен бота у Vault, якщо потрібно викликати Telegram API напряму з функції — посилайтеся на нього як {{vault.BOT_TOKEN}}.
  • Тримайте Group Privacy увімкненим, якщо вашому flow не потрібні всі повідомлення — Telegram обмежує ботів, які тягнуть більше даних, ніж їм потрібно.

Усунення неполадок

СимптомПричина / Розв'язання
Flow ніколи не спрацьовує, хоча все налаштовано правильноТокен у підключенні належить іншому боту, не тому, кому ви пишете. Відкрийте картку підключення та подивіться на поле Bot Username — це бот, якого Fainflow слухає (визначив через getMe). Якщо це не той бот — натисніть Edit і вставте правильний токен. Поле Name — лише мітка, важливий лише токен.
Invalid bot token — Telegram rejected itТокен невірний, скопійований з пробілами або відкликаний. Отримайте новий у BotFather.
Бот не реагує на повідомлення у групіУвімкнено Group Privacy. У BotFather: /mybots → Bot Settings → Group Privacy → Disable.
Бот працював і раптом переставWebhook міг бути перезаписаний іншим сервісом або відкликаний. Відкрийте підключення та натисніть Re-register webhook.
409 — bot already connectedЦей бот уже прив'язаний до іншого підключення у вашому обліковому записі. Видаліть старе або використайте іншого бота.
Бот бачить /start, але не звичайні повідомленняТа ж проблема Group Privacy — вимкніть її у BotFather.
Conflict: terminated by other getUpdates request у логах потокуІнший процес уже опитує цього бота. Зазвичай це означає, що той самий токен бота підключений десь іще (інший акаунт Fainflow, self-hosted інстанс або інша інтеграція). Відключіть бота в іншому місці, щоб опитував лише один споживач.