🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

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...

TERMINAL
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_TOKEN

2. 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-webhook

Delete 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" --html

Send with Markdown

python3 {baseDir}/scripts/telegram_business.py send-message "Bold and _italic_" --markdown

Reply 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