n8nen.nl logo n8nen.nl

Telegram Bot API instellen in n8n

In deze gids maak je een Telegram bot met BotFather, voeg je het API‑token toe aan n8n Credentials en verifieer je een webhook om updates te ontvangen. We behandelen berichten versturen, commands en inline keyboards.

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

Screenshots

Veelgestelde vragen

Webhook of polling?
Webhook is efficiënter en near‑real‑time; polling is eenvoudiger voor lokale dev zonder publieke URL.
Hoe maak ik inline keyboards?
Stel `reply_markup.inline_keyboard` in met knoppen (text + callback_data/URL). Verwerk `callback_query` events in je flow.
Hoe beveilig ik mijn bot?
Gebruik Credentials, valideer chat/user IDs, beperk permissies, en log zonder tokens. Voeg rate‑limits en retries toe.
Kan een bot meerdere webhooks hebben?
Nee, Telegram staat slechts 1 webhook URL per bot toe. Als je meerdere N8N workflows hebt, moet je een centrale webhook maken die berichten doorstuurt naar andere workflows.
Hoe test ik mijn bot lokaal?
Gebruik ngrok of localtunnel voor een tijdelijke HTTPS URL, of gebruik polling mode tijdens development. Voor productie is een eigen domein met SSL certificaat aanbevolen.
Wat zijn de kosten van een Telegram bot?
Telegram bots zijn volledig gratis! Geen API kosten, geen message limits. Je betaalt alleen voor je hosting (N8N server) en eventueel een domein met SSL certificaat.
Kan mijn bot in groepschats werken?
Ja, maar privacy mode moet uit staan via BotFather. De bot ontvangt dan alle berichten, niet alleen commands. Bot moet ook groep admin zijn voor volledige functionaliteit.
Hoe voorkom ik spam via mijn bot?
Implementeer rate limiting per user, gebruik captcha voor nieuwe gebruikers, blokkeer verdachte patronen, en monitor gebruik. Telegram heeft ook ingebouwde anti-spam maatregelen.
Wat is het verschil tussen getUpdates en webhooks?
getUpdates is polling (bot vraagt updates op), webhooks zijn push (Telegram stuurt updates). Webhooks zijn sneller en efficiënter maar vereisen HTTPS. Je kunt niet beide tegelijk gebruiken.
Hoe lang blijven berichten beschikbaar?
Telegram bewaart ontvangen updates 24 uur. Media files (photos, documents) hebben een download link die ongeveer 1 uur geldig blijft. Sla belangrijke data direct op.
Kan ik scheduled messages versturen?
Telegram API ondersteunt geen native scheduling. Gebruik N8N's Schedule node om berichten op specifieke tijden te versturen. Let op timezones!
Wat zijn de file size limits?
Bots kunnen files tot 50MB versturen en tot 20MB ontvangen. Voor photos is het 10MB (compressed) of 50MB (als document). Videos max 50MB.
Hoe maak ik een payment bot?
Vraag Payments API aan bij @BotFather, koppel een payment provider (Stripe etc), en gebruik de sendInvoice method. Test eerst met Stripe test mode. Niet alle landen worden ondersteund.