Telegram-бот для інтеграції з KeyCRM та сповіщення про замовлення.
- ✅ Сповіщення про нові замовлення з KeyCRM
- ✅ Сповіщення про зміну статусів замовлень
- ✅ Сповіщення про нових клієнтів
- ✅ Перегляд останніх замовлень (/orders)
- ✅ Перегляд клієнтів (/clients)
- ✅ Статистика продажів (/stats)
- ✅ Webhook інтеграція з KeyCRM
git clone https://github.com/YOUR_USERNAME/sys-plus-bot.git
cd sys-plus-botpip install -r requirements.txtСтворіть файл .env на основі .env.example:
cp .env.example .envВідредагуйте .env та заповніть своїми даними:
TELEGRAM_BOT_TOKEN=8261578455:AAHP9G7DnwWVhNa-H3FLr5ZmMRfh367Df7A
KEYCRM_API_KEY=NGZmYzg4YjY2MTE0OGRkNTBmYWM1NmFjZjE5YWI3MDEwMzc4YmNjZA
KEYCRM_BASE_URL=https://keycrm.app/api/v2
TELEGRAM_ADMIN_IDS=ВАШ_TELEGRAM_ID
RENDER_EXTERNAL_URL=http://localhost:5000
PORT=5000Важливо: Отримайте свій Telegram ID через бота @userinfobot
python app.pyБот запуститься на http://localhost:5000
Відкрийте Telegram і знайдіть бота @Sysplus_bot, надішліть /start
| Команда | Опис |
|---|---|
/start |
Привітання та початок роботи |
/orders |
Показати останні замовлення (5 шт) |
/clients |
Показати останніх клієнтів (5 шт) |
/stats |
Показати статистику продажів |
/help |
Показати довідку по командах |
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ KeyCRM │ ──────> │ Flask App │ ──────> │ Telegram │
│ Webhook │ │ (Render) │ │ Bot │
└─────────────┘ └──────────────┘ └─────────────┘
│
▼
┌──────────────┐
│ Aiogram │
│ Dispatcher │
└──────────────┘
- Flask — веб-сервер для обробки webhook'ів
- Aiogram — асинхронна бібліотека для Telegram Bot API
- KeyCRMClient — клієнт для взаємодії з KeyCRM API
- Render.com — хостинг для безсерверного запуску
telegram_bot_keycrm/
├── app.py # Головний додаток Flask + bot handlers
├── keycrm_client.py # Клієнт для KeyCRM API
├── requirements.txt # Python залежності
├── render.yaml # Конфігурація для Render
├── .env.example # Приклад змінних оточення
├── .gitignore # Git ignore правила
├── README.md # Цей файл
└── README_RENDER_UA.md # Детальна інструкція з деплою
Детальна інструкція українською: README_RENDER_UA.md
- Завантажте код на GitHub
- Створіть Web Service на Render.com
- Підключіть GitHub репозиторій
- Додайте змінні оточення
- Отримайте URL сервісу
- Налаштуйте webhook в KeyCRM
- Користувач надсилає команду боту
- Telegram відправляє update на
/webhook/telegram - Flask передає update в Aiogram Dispatcher
- Відповідний handler обробляє команду
- Бот надсилає відповідь користувачеві
- Створюється замовлення/клієнт в KeyCRM
- KeyCRM відправляє webhook на
/webhook/keycrm - Flask обробляє подію та формує повідомлення
- Бот надсилає сповіщення всім адмінам
pip install -r requirements.txt# Windows
set FLASK_ENV=development
set FLASK_DEBUG=1
python app.py
# Linux/Mac
export FLASK_ENV=development
export FLASK_DEBUG=1
python app.pycurl -X POST http://localhost:5000/webhook/telegram \
-H "Content-Type: application/json" \
-d '{"update_id": 12345, "message": {"text": "/start", "chat": {"id": 123456}}}'curl -X POST http://localhost:5000/webhook/keycrm \
-H "Content-Type: application/json" \
-d '{"event": "order.created", "payload": {"id": 1, "total": 1000, "status": "new"}}'- ❌ НЕ зберігайте
.envу Git - ✅ Використовуйте змінні оточення на Render
- ✅ Додайте
.envу.gitignore
Тільки адміністратори з TELEGRAM_ADMIN_IDS отримують сповіщення.
Dashboard → Ваш сервіс → Logs
curl https://your-app.onrender.com/healthВідповідь:
{"status": "ok", "service": "sys_plus_bot"}- Перевірте логи на Render
- Переконайтеся, що webhook правильно налаштовано
- Перевірте змінні оточення
- Перевірте API ключ
- Переконайтеся, що KeyCRM доступний
- Перевірте права доступу API
- Переконайтеся, що URL доступний ззовні
- Перевірте firewall налаштування
- Використовуйте ngrok для локального тестування
Render автоматично деплоїть при кожному push в GitHub:
git add .
git commit -m "Fix: bug description"
git push origin mainЧерез 1-2 хвилини оновлення буде на продакшені.
- Telegram Bot API
- Aiogram Documentation
- Flask Documentation
- Render Documentation
- KeyCRM API Documentation
- Fork репозиторій
- Створіть feature branch (
git checkout -b feature/amazing-feature) - Commit зміни (
git commit -m 'Add amazing feature') - Push до branch (
git push origin feature/amazing-feature) - Відкрийте Pull Request
Цей проект створено для внутрішнього використання Sys+.
Sys+ Team
- Додати підтримку кількох мов (UA/EN)
- Інтеграція з Google Sheets
- Розширена аналітика
- Кнопки та inline меню
- Розсилка повідомлень
- Нагадування про замовлення
🚀 Успіхів у розробці!