DentaDeck Бета
На цій сторінці

Telegram-бот

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

[!IMPORTANT] Підключення, токен і реквізити Telegram-бота налаштовують лише на комп’ютері. У мобільному застосунку можна працювати з візитами й пацієнтами, але змінити підключення бота не можна.

Можливості

  • Зв’язування Telegram-чату з карткою пацієнта за номером телефону.
  • Підтримка сімейного чату: один Telegram-акаунт може бути пов’язаний із кількома пацієнтами.
  • Створення картки пацієнта, якщо в клініці ще немає такого номера.
  • Повідомлення про створення, перенесення, зміну часу та скасування візиту.
  • Перегляд усіх майбутніх візитів зі статусом Заплановано, Підтверджено або Не додзвонились.
  • Перехід до Telegram адміністратора для запису на прийом.
  • Нагадування за день до візиту з діями Підтвердити✅, Відмінити❌ та Інше✍️.
  • Передавання запитання пацієнта до закритої групи адміністраторів.
  • Онлайн-оплата через перевірений платіжний акаунт DentaDeck там, де довільні рахунки дозволені; для української передоплати без акта потрібна окрема фіскальна політика.
  • Оплата за реквізитами ФОП через QR-код НБУ навіть без підключеного онлайн-еквайрингу.
  • Окремі налаштування бота, адреси клініки, часу нагадування та оплати.

Як це зробити

1. Створіть бота через BotFather

  1. Відкрийте офіційного @BotFather. Telegram також має офіційну інструкцію зі створення бота.
  2. Надішліть команду /newbot.
  3. Вкажіть зрозумілу назву клініки, яку бачитимуть пацієнти.
  4. Вкажіть унікальне ім’я користувача латиницею. Воно має закінчуватися на bot, наприклад clinic_name_bot. Перевірте написання: це ім’я ви надалі надсилатимете пацієнтам.
  5. Збережіть отриманий токен у менеджері паролів.
  6. За бажанням додайте логотип, опис і команду /start через /mybots у BotFather.

Токен дає повний контроль над ботом. Не надсилайте його в чат, листування з підтримкою чи спільний документ. Якщо токен став відомий стороннім, створіть новий через /token у BotFather і замініть його в DentaDeck.

Для першої перевірки використовуйте окремого тестового бота. Робочого бота підключайте лише після успішного тесту.

2. Підключіть бота до DentaDeck

  1. Відкрийте Налаштування → Telegram.
  2. Вставте токен у поле Токен бота, заповніть дані клініки й натисніть Підключити. ID групи зараз не потрібен.
  3. Переконайтеся, що з’явився стан Підключено та @username саме вашого бота.

3. Прив’яжіть групу адміністраторів

  1. Створіть закриту Telegram-групу, наприклад Клініка — адміністратори, і додайте до неї відповідальних працівників та вашого бота.
  2. На сторінці Telegram у DentaDeck натисніть Прив’язати групу. DentaDeck покаже команду з одноразовим кодом, наприклад /start@clinic_name_bot 4F9K2Q.
  3. Надішліть цю команду в групі. Бот підтвердить: «✅ Групу підключено як чат адміністраторів клініки», а на сторінці стан групи одразу зміниться на підключений.
  4. Код одноразовий і діє близько 15 хвилин. Якщо він прострочився — натисніть Прив’язати групу ще раз.

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

4. Перевірте підключення

  1. Переконайтеся, що в Налаштування → Telegram показано стан Підключено та правильний @username.
  2. За потреби перевірте webhook через офіційний метод getWebhookInfo:
read -s TOKEN
curl -sS "https://api.telegram.org/bot${TOKEN}/getWebhookInfo"; echo
unset TOKEN

Поле url має містити адресу https://dentadeck.com/api/v1/telegram/.../webhook. Поле last_error_message має бути відсутнім, а pending_update_count зазвичай дорівнює 0.

  1. Відкрийте особистий чат із ботом і надішліть /start.
  2. Переконайтеся, що бот вітається та показує кнопку Поділитись номером телефону📱.
  3. Натисніть цю кнопку й надішліть власний контакт. Пересилання чужого контакту не працює.
  4. Перевірте три кнопки меню:

    • Записатися на прийом👩‍⚕️🦷 відповідає: Напишіть @clinic_admin, щоб записатися на прийом.
    • Запланований візит🕘🦷 показує всі майбутні візити пов’язаних пацієнтів або У вас немає запланованого візиту🤷‍♀️.
    • Оплата💳 просить обрати пацієнта, якщо до чату пов’язано кілька членів сім’ї, а потім просить суму.

Натискання іншої кнопки меню перериває попереднє введення суми та виконує нову дію.

5. Перевірте повідомлення про візит

  1. Створіть тестового пацієнта з номером телефону вашого Telegram-акаунта або використайте вже пов’язану тестову картку.
  2. У Розкладі створіть для нього майбутній візит. У чат має надійти повідомлення про новий запис.
  3. Змініть дату або час. Переконайтеся, що бот повідомив про зміну.
  4. Натисніть Запланований візит🕘🦷. Бот має показати актуальний візит, лікаря, час і адресу.
  5. Скасуйте тестовий візит. У чат має надійти повідомлення про скасування.
  6. Для повної перевірки створіть візит на завтра й дочекайтеся налаштованого часу нагадування. Перевірте Підтвердити✅, Відмінити❌ та Інше✍️ на окремих тестових візитах.

6. Перевірте чат адміністраторів

Надішліть безпечне тестове повідомлення від імені бота. Підставте свій ID групи:

read -s TOKEN
STAFF_CHAT_ID="-1001234567890"
curl -sS -X POST "https://api.telegram.org/bot${TOKEN}/sendMessage" \
  --data-urlencode "chat_id=${STAFF_CHAT_ID}" \
  --data-urlencode "text=✅ Тест: Telegram-бот DentaDeck підключено"; echo
unset TOKEN STAFF_CHAT_ID

Відповідь "ok":true і повідомлення в групі означають, що ID та доступ бота правильні. Після цього перевірте робочий сценарій: у нагадуванні пацієнта натисніть Інше✍️ і надішліть коротке тестове запитання — воно має з’явитися в групі адміністраторів.

7. Підключіть пацієнта

  1. Надішліть пацієнту точне посилання, наприклад https://t.me/clinic_name_bot.
  2. Попросіть відкрити бота, надіслати /start і натиснути Поділитись номером телефону📱.
  3. Бот зв’яже чат з усіма картками, у яких збігається номер. Так один із батьків може отримувати повідомлення за кількох дітей.
  4. Якщо картки з таким номером немає, бот запропонує вказати прізвище, ім’я, дату народження та стать, а потім підтвердити створення картки.
  5. Після успішного зв’язування попросіть пацієнта натиснути Запланований візит🕘🦷.

Налаштування

Усі налаштування зібрано на сторінці Налаштування → Telegram.

  • Токен бота — секретний токен від BotFather. Після підключення залишайте поле порожнім, щоб не змінювати збережений токен.
  • ID чату адміністраторів — повний числовий ID закритої групи разом із мінусом.
  • Telegram адміністратора — контакт із @, на який бот спрямовує пацієнта для запису.
  • Назва клініки, Адреса клініки та Посилання на мапу — дані в повідомленнях про візит.
  • Час нагадування — час надсилання нагадування про завтрашній візит.
  • Час без відповіді — після цього часу візит без відповіді отримує статус Не додзвонились, а адміністратори отримують повідомлення.

Оплата налаштовується окремо

Картка Оплата в Telegram зберігається окремо від підключення бота — зміна реквізитів або резервного посилання Monobank не перепідключає бота. Там, де довільні рахунки дозволені, бот автоматично створює онлайн-посилання, лише якщо до DentaDeck підключено одного продавця з точним маршрутом продавець · пРРО · безготівкова каса. Для Monobank DentaDeck додатково звіряє ЄДРПОУ або РНОКПП мерчанта, отриманий від банку, з продавцем Checkbox. Якщо продавців кілька, створіть оплату з картки пацієнта й явно оберіть потрібного ФОП або ТОВ. Реквізити ФОП (Одержувач, IBAN, ІПН) потрібні для окремого резервного QR за правилами НБУ.

Змініть налаштування підключеного бота

Картка підключення показує стан, @username, ID групи, назву клініки та час нагадувань. Розгорніть Редагувати налаштування, змініть потрібні поля й натисніть Зберегти. Адреса, посилання на мапу, контакти й час повідомлень оновляться без перепідключення бота; залиште токен порожнім, якщо не замінюєте його.

Використовуйте Відключити від DentaDeck, якщо DentaDeck більше не має приймати повідомлення цього бота. Це видаляє webhook DentaDeck, але не видаляє самого бота, його профіль або історію чатів у Telegram. Необоротне видалення через /deletebot у BotFather — окрема дія, описана в офіційній довідці Telegram.

Налаштуйте оплату за IBAN

Для банківського QR-коду заповніть:

  • Одержувач — точне найменування ФОП або юридичної особи.
  • IBAN — український рахунок, що починається з UA.
  • ІПН — податковий номер одержувача.
  • Резервне посилання Monobank — необов’язкове запасне посилання.

Після введення суми бот формує QR-код і кнопку оплати за реквізитами. Для цього не потрібен платіжний акаунт Monobank. Це QR для переказу на IBAN за правилами НБУ: сума, одержувач і призначення вже заповнені.

Щоб прибрати застарілі реквізити, у картці Оплата в Telegram позначте Видалити збережені реквізити ФОП і натисніть Зберегти.

Переказ за IBAN не з’являється у фінансах DentaDeck автоматично. Після зарахування перевірте виписку банку й внесіть оплату пацієнта вручну.

Додайте онлайн-оплату

Щоб разом із банківським QR показувати кнопку Сплатити онлайн💳 там, де довільні рахунки дозволені, відкрийте Каси → Налаштування кас і завершіть картку Посилання та динамічний QR. DentaDeck покаже доступний для країни клініки сервіс. Деталі перевірки без оплати та поля кожного сервісу описані на сторінці Онлайн-оплати, посилання та QR.

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

[!IMPORTANT] Якщо підключено кількох продавців, бот не вгадує, кому має належати платіж. Створіть онлайн-оплату у фінансах пацієнта та оберіть продавця явно. Бот і надалі може показати резервний QR за IBAN, якщо реквізити заповнені.

В українській клініці довільна сума без акта є передоплатою. Поки для неї немає окремо погодженого продавця, пРРО та правила фіскалізації, бот не створює онлайн-посилання Monobank: він надсилає банківський QR за IBAN, якщо реквізити заповнені, або повідомляє, що оплата недоступна. Не підміняйте передоплату випадковою послугою з прайсу.

Там, де онлайн-рахунок доступний, успішна оплата через підключений платіжний акаунт автоматично з’являється у фінансах вибраного пацієнта. Для перевірки налаштування не створюйте фіктивний платіж: на сторінці провайдера є окрема дія Перевірити й зберегти.

Права доступу

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

Поради

Якщо не вдається отримати ID групи

Основний спосіб — кнопка Прив’язати групу (крок 3). Наведений нижче ручний спосіб через getUpdates потрібен лише як запасний, якщо бот не може написати в групу.

  • "result":[] означає, що бот ще не отримав нової події. Знову запустіть очікування та надішліть у групі /start@точне_ім’я_бота.
  • Перевірте username методом getMe. Одна переставлена літера дає команду іншому або неіснуючому боту.
  • Переконайтеся, що бот доданий до групи. ID групи має від’ємне значення; у супергрупи він зазвичай починається з -100.
  • Помилка 409 Conflict після підключення до DentaDeck є нормальною: Telegram не дозволяє getUpdates, доки встановлений webhook. Не видаляйте робочий webhook лише для повторного читання ID.

Якщо бот не відповідає

  • Перевірте стан Підключено та правильний @username у DentaDeck.
  • Перевірте getWebhookInfo. Порожній url означає, що webhook не встановлений; last_error_message підказує останню помилку доставки.
  • Надішліть /start в особистому чаті, а не в групі адміністраторів.
  • Якщо не приходять повідомлення про візит, повторно поділіться власним номером і перевірте, що цей номер є в картці пацієнта.
  • Якщо в повідомленні порожня адреса, заповніть Адреса клініки та Посилання на мапу.

Переведіть чинного робочого бота

Один Telegram-бот може мати лише один webhook. Дотримуйтеся такого порядку:

  1. Зупиніть старий сервіс бота та вимкніть його автоматичний запуск.
  2. Переконайтеся, що старий сервіс більше не встановлює або не видаляє webhook.
  3. Підключіть робочий токен у DentaDeck.
  4. Перевірте getWebhookInfo, /start, зв’язування номера, повідомлення про візит і групу адміністраторів.
  5. Для повернення до старого сервісу спочатку натисніть Відключити від DentaDeck. Ця дія використовує офіційний метод deleteWebhook. Лише після цього запускайте старий сервіс.

Якщо Telegram-чати пацієнтів не переносилися зі старої системи, надішліть пацієнтам посилання на бота й попросіть знову поділитися номером телефону.

Розведіть два пальці, щоб збільшити; перетягніть, щоб пересунути.