Telegram Business
by @aiwithabidi
Telegram bot for business automation — lead capture forms, inline keyboard menus, FAQ matching, appointment booking flows, and payment integration. Use for b...
clawhub install telegram-business📖 About This Skill
name: telegram-business description: Telegram bot for business automation — lead capture forms, inline keyboard menus, FAQ matching, appointment booking flows, and payment integration. Use for building customer-facing Telegram bots, community management, and lead generation. homepage: https://www.agxntsix.ai license: MIT compatibility: Python 3.10+, Telegram Bot Token from @BotFather metadata: {"openclaw": {"emoji": "\ud83e\udd16", "requires": {"env": ["TELEGRAM_BOT_TOKEN"]}, "primaryEnv": "TELEGRAM_BOT_TOKEN", "homepage": "https://www.agxntsix.ai"}}
Telegram Business Bot
Build business automation on Telegram — lead capture forms, appointment booking, FAQ bots, payments, and community management.
Quick Start
export TELEGRAM_BOT_TOKEN="123456:ABC-DEF..."Send a message
python3 {baseDir}/scripts/telegram_business.py send-message "Hello from your business bot!"Send inline keyboard
python3 {baseDir}/scripts/telegram_business.py send-menu "How can I help?" '[{"text":"📅 Book Appointment","callback_data":"book"},{"text":"❓ FAQ","callback_data":"faq"},{"text":"💬 Talk to Sales","callback_data":"sales"}]'Start lead capture
python3 {baseDir}/scripts/telegram_business.py send-lead-form
Bot Setup
1. Create Bot via @BotFather
1. Open Telegram, search for@BotFather
2. Send /newbot
3. Choose name and username (must end in bot)
4. Copy the token → set as TELEGRAM_BOT_TOKEN2. Configure Bot
/setdescription - Business description shown on bot profile
/setabouttext - Short about text
/setuserpic - Bot avatar
/setcommands - Set command menu:
start - Get started
book - Book appointment
faq - Frequently asked questions
contact - Contact us
help - Get help
3. Webhook Setup
# Set webhook (use your server URL)
python3 {baseDir}/scripts/telegram_business.py set-webhook "https://your-domain.com/webhook/telegram"Get webhook info
python3 {baseDir}/scripts/telegram_business.py get-webhookDelete webhook (switch to polling)
python3 {baseDir}/scripts/telegram_business.py delete-webhook
Available Commands
Messaging
# Send text
python3 {baseDir}/scripts/telegram_business.py send-message "Hello!"Send with HTML formatting
python3 {baseDir}/scripts/telegram_business.py send-message "Bold and italic" --htmlSend with Markdown
python3 {baseDir}/scripts/telegram_business.py send-message "Bold and _italic_" --markdownReply to a message
python3 {baseDir}/scripts/telegram_business.py send-message "Got it!" --reply-to
Inline Keyboards
# Simple menu (buttons in rows of 2)
python3 {baseDir}/scripts/telegram_business.py send-menu "Choose an option:" '[
{"text":"Option A","callback_data":"opt_a"},
{"text":"Option B","callback_data":"opt_b"},
{"text":"Option C","callback_data":"opt_c"}
]'URL buttons
python3 {baseDir}/scripts/telegram_business.py send-menu "Visit us:" '[
{"text":"🌐 Website","url":"https://example.com"},
{"text":"📸 Instagram","url":"https://instagram.com/example"}
]'Answer callback query (acknowledge button press)
python3 {baseDir}/scripts/telegram_business.py answer-callback "Processing..."Edit message (update after button press)
python3 {baseDir}/scripts/telegram_business.py edit-message "Updated text!"
Lead Capture
# Send lead capture form (multi-step inline flow)
python3 {baseDir}/scripts/telegram_business.py send-lead-form Process lead data (after collecting via conversation)
python3 {baseDir}/scripts/telegram_business.py process-lead '{"chat_id":123,"name":"John Doe","email":"john@example.com","phone":"+15551234567","interest":"AI automation","source":"telegram"}'
FAQ System
# Match question to FAQ
python3 {baseDir}/scripts/telegram_business.py faq-match "What are your business hours?"Send FAQ menu
python3 {baseDir}/scripts/telegram_business.py send-faq-menu
Media
# Send photo
python3 {baseDir}/scripts/telegram_business.py send-photo "https://example.com/image.jpg" "Caption here"Send document
python3 {baseDir}/scripts/telegram_business.py send-document "/path/to/file.pdf"Send contact card
python3 {baseDir}/scripts/telegram_business.py send-contact "+15551234567" "John" "Doe"
Lead Capture Flow
The bot guides users through a multi-step form:
1. Start → Welcome message with menu buttons 2. "Get Quote" → Asks for name 3. User sends name → Asks for email 4. User sends email → Asks for phone (optional) 5. User sends phone → Asks for service interest (buttons) 6. User selects service → Confirmation + thank you 7. Lead data is output as JSON for CRM integration
Integration with CRM
# Capture lead from Telegram, score it, add to GHL
LEAD='{"name":"John","email":"john@x.com","phone":"+1555...","source":"telegram"}'
SCORE=$(python3 ../lead-gen-pipeline/{baseDir}/scripts/lead_scorer.py "$LEAD")
python3 ../ghl-crm/{baseDir}/scripts/ghl_api.py contacts create "$LEAD"
FAQ Automation
Define your FAQ in the script's FAQ_DATABASE:
FAQ_DATABASE = [
{"q": "What are your hours?", "a": "We're open Mon-Fri 9am-6pm EST.", "keywords": ["hours", "open", "schedule"]},
{"q": "Where are you located?", "a": "123 Main St, New York, NY", "keywords": ["location", "address", "where"]},
{"q": "How much does it cost?", "a": "Plans start at $99/mo. Reply 'pricing' for details.", "keywords": ["cost", "price", "pricing", "how much"]},
]
The FAQ matcher uses keyword matching + fuzzy similarity. For AI-powered matching, pipe through the LLM.
Payment Integration
Telegram supports native payments via Payment Providers (Stripe, etc.):
# Send invoice
python3 {baseDir}/scripts/telegram_business.py send-invoice '{
"title": "Consultation Fee",
"description": "1-hour AI automation consultation",
"payload": "consultation_001",
"provider_token": "STRIPE_TOKEN",
"currency": "USD",
"prices": [{"label": "Consultation", "amount": 9900}]
}'
Note: amount is in smallest currency unit (cents for USD). $99.00 = 9900.
Group Management
# Get chat info
python3 {baseDir}/scripts/telegram_business.py get-chat Get member count
python3 {baseDir}/scripts/telegram_business.py get-member-count Pin a message
python3 {baseDir}/scripts/telegram_business.py pin-message Set chat description
python3 {baseDir}/scripts/telegram_business.py set-description "Welcome to our community!"
Webhook Payload Handling
When using webhooks, incoming updates look like:
Message:
{"update_id": 123, "message": {"chat": {"id": 456}, "from": {"id": 789, "first_name": "John"}, "text": "/start"}}
Callback (button press):
{"update_id": 124, "callback_query": {"id": "abc", "data": "book", "message": {"chat": {"id": 456}}}}
Parse with:
python3 {baseDir}/scripts/telegram_business.py parse-update ''
Credits
Built by M. Abidi | agxntsix.ai YouTube | GitHub Part of the AgxntSix Skill Suite for OpenClaw agents.📅 Need help setting up OpenClaw for your business? Book a free consultation
💡 Examples
export TELEGRAM_BOT_TOKEN="123456:ABC-DEF..."Send a message
python3 {baseDir}/scripts/telegram_business.py send-message "Hello from your business bot!"Send inline keyboard
python3 {baseDir}/scripts/telegram_business.py send-menu "How can I help?" '[{"text":"📅 Book Appointment","callback_data":"book"},{"text":"❓ FAQ","callback_data":"faq"},{"text":"💬 Talk to Sales","callback_data":"sales"}]'Start lead capture
python3 {baseDir}/scripts/telegram_business.py send-lead-form