Benodigdheden
• Telegram account + BotFather
• n8n met publieke URL (of tunnel) voor webhooks
• Beveiligde opslag voor je bot token (n8n Credentials)
Stap 1 – Bot aanmaken met BotFather
Start chat met BotFather → /newbot → kies naam en @gebruikersnaam. Noteer het API‑token.
Stap 2 – Token opslaan in n8n
Maak een nieuw Credential aan (bijv. TelegramBotToken) en plak je token. Gebruik nooit plaintext in nodes.
Stap 3 – Webhook of polling
Webhook: configureer een n8n Webhook node en stel `setWebhook` in via HTTP Request. Alternatief: periodiek `getUpdates` (polling).
Stap 4 – Updates verwerken
Parse het JSON event (message, callback_query). Filter op chat/user en voer acties uit (routering, validatie).
Stap 5 – Berichten versturen
Gebruik `sendMessage` met Markdown/HTML, of stuur media (`sendPhoto`, `sendDocument`). Gebruik inline keyboards voor interactie.
Stap 6 – Commands en menu
Definieer bot commands via BotFather of API. Bouw een eenvoudige command‑router in n8n (switch op `message.text`).
Security & betrouwbaarheid
Valideer chat IDs, throttle requests, log errors en implementeer retries/back‑off bij 429/5xx. Mask sensitievelingen in logs.
Veelgemaakte fouten
• 401: ongeldig token
• 400: ongeldige payload/parse_mode
• Webhook niet bereikbaar (SSL/URL)
🤖 BotFather Configuratie Details
Complete bot setup:
1) Open Telegram → zoek @BotFather
2) /newbot → kies display naam
3) Username moet eindigen op 'bot' (bijv. MijnBedrijf_bot)
4) Ontvang API token (bewaar veilig!)
Extra bot commands:
• /setdescription - Bot beschrijving
• /setabouttext - Over deze bot
• /setuserpic - Bot profielfoto
• /setcommands - Command menu
• /setprivacy - Privacy mode (belangrijk voor groepen!)
⚡ Webhook vs Polling Vergelijking
Webhook (aanbevolen voor productie):
✅ Real-time berichten ontvangen
✅ Geen resources verspilling
✅ Schaalbaar tot duizenden users
❌ Vereist HTTPS + publiek domein
❌ Slechts 1 webhook per bot
Polling (voor development):
✅ Werkt achter firewall/NAT
✅ Geen SSL certificaat nodig
✅ Makkelijk lokaal testen
❌ Vertraagde berichten (1-30 sec)
❌ Continue API calls (inefficiënt)
🔐 Bot Token Security
Beveiligingstips:
• NOOIT token in code committen
• Gebruik N8N Credentials Manager
• Roteer tokens regelmatig via BotFather
• Monitor bot gebruik via @BotFather
Token compromised?
1) Onmiddellijk /revoke bij BotFather
2) Genereer nieuw token
3) Update alle N8N workflows
4) Check logs voor misbruik
💬 Message Types & Formatting
Ondersteunde berichttypen:
• Text: Plain, Markdown, HTML
• Media: Photo (10MB), Video (50MB), Audio, Document
• Location: GPS coördinaten
• Contact: Telefoonnummer delen
• Sticker/GIF: Animated content
Markdown formatting:*bold* → bold_italic_ → italic`code` → inline code[link](url) → hyperlink
🎯 Inline Keyboards Bouwen
Button types:
• Callback button: Triggert callback_query
• URL button: Opent externe link
• Switch inline: Start inline query
• Pay button: Telegram Payments
N8N implementatie:{
"reply_markup": {
"inline_keyboard": [[
{"text": "✅ Ja", "callback_data": "yes"},
{"text": "❌ Nee", "callback_data": "no"}
]]
}
}
Process callbacks met Switch node op callback_data!
📋 Command Menu Setup
Bot commands configureren:
1) BotFather: /setcommands
2) Format: command - beschrijving
Voorbeeld commands:start - Begin gesprek met bot
help - Toon hulp informatie
status - Check systeem status
subscribe - Aanmelden voor updates
settings - Bot instellingen
cancel - Stop huidige actie
N8N routing:
Gebruik Switch node op message.text voor command routing!
👥 Groepschat Functionaliteit
Bot in groepen gebruiken:
1) Privacy mode uitschakelen via BotFather
2) Bot moet admin zijn voor alle berichten
3) Filter op chat.type: private/group/supergroup
Groep-specifieke features:
• Mention detection (@botname)
• Admin commands (kick/ban/mute)
• Polls en quizzes
• Pinned messages
• Member management
⚠️ Let op GDPR bij groepsdata opslag!
🔄 State Management
Conversatie state bijhouden:
• Gebruik Redis/Database voor user sessions
• Store: chat_id, current_step, temp_data
• TTL instellen voor cleanup
N8N implementatie:
1) Set node: Store user state
2) Database node: Persist data
3) Switch node: Route based on state
4) Cleanup: Schedule node voor expiry
Perfect voor multi-step formulieren en wizards!
📊 Analytics & Monitoring
Bot metrics tracken:
• Active users (DAU/MAU)
• Message frequency
• Command usage stats
• Response times
• Error rates
N8N monitoring setup:
1) Log alle interactions naar database
2) Grafana dashboard voor visualisatie
3) Alert bij errors via email/Slack
4) Weekly reports genereren
💰 Telegram Payments
Payment bot setup:
1) Contact @BotFather voor Payments API
2) Koppel payment provider (Stripe/PayPal)
3) Test mode beschikbaar
Supported providers:
• Stripe (wereldwijd)
• Smart Glocal (Europa)
• Razorpay (India)
• PayMaster (Rusland)
N8N workflow:
Invoice → Payment button → Process payment → Confirm delivery
🚀 Performance Optimalisatie
Bot snelheid verbeteren:
• Cache frequent data (Redis)
• Async processing voor zware taken
• Queue systeem voor bulk messages
• CDN voor media files
Rate limits:
• 30 messages/second per chat
• 1 message/second voor groepen
• Bulk messages: max 100 per request
Implement exponential backoff bij 429 errors!
🛠️ Advanced Bot Features
Geavanceerde functionaliteit:
📍 Inline mode:
• @botname query in elke chat
• Real-time search results
• Article/photo/video results
📍 Web App:
• Mini webapp in Telegram
• JavaScript SDK beschikbaar
• Full UI customization
📍 Scheduled messages:
• Cron node voor timing
• Timezone handling
• Reminder systeem
🔧 Debugging & Testing
Test strategieën:
• Test groep aanmaken
• Multiple test accounts
• Telegram Test Server (aparte environment)
• ngrok voor lokale webhook testing
Debug tools:
• @RawDataBot - zie JSON van messages
• Telegram Bot API Postman Collection
• N8N execution logs
• Webhook.site voor request inspection
📚 Nuttige Resources
Officiële documentatie:
• Telegram Bot API
• Bot Code Examples
• N8N Webhook Guide
Community:
• @BotDevelopment (Telegram groep)
• r/TelegramBots (Reddit)
• Stack Overflow #telegram-bot
Bot directories:
• @BotoStore
• @BotList