Documentation / Quickstart
Launch your first bot in ten minutes
This guide walks through creating a Telegram bot, wiring it up in BotForge, and publishing a live flow.
1. Create a bot with BotFather
Open Telegram, message @BotFather, and run /newbot. Choose a display name and a unique username ending in `bot`. BotFather returns an HTTP API token — copy it, you'll need it next.
/newbot
Alright, a new bot. How are we going to call it?
> Acme Support Bot
Good. Now let's choose a username for your bot.
> acme_support_bot
Done! Use this token to access the HTTP API:
110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw2. Connect the token to BotForge
In the console, go to Bots → New bot, paste the token, and choose a hosting mode. Webhook mode is recommended for production; polling is useful for quick local testing.
POST /v1/bots
{
"name": "Acme Support Bot",
"token": "110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw",
"hostingMode": "webhook",
"timezone": "Europe/Warsaw"
}3. Build your first flow
Open the flow editor and drag a trigger.command node onto the canvas (e.g. /start). Connect it to a msg.text node with a welcome message, then add an msg.inline_keyboard node with quick-reply buttons.
trigger.command(/start)
-> msg.text("Welcome to Acme Support! How can we help?")
-> msg.inline_keyboard(["Talk to sales", "Track an order"])4. Test in the sandbox
Use the built-in simulator to send test messages without touching real Telegram traffic. It renders exactly how your flow will respond, including buttons and media.
Simulator > /start
Bot: Welcome to Acme Support! How can we help?
[ Talk to sales ] [ Track an order ]5. Publish
Click Publish and add a short release note. BotForge validates the flow, snapshots a version, and switches live traffic to it. You can roll back to any previous version at any time.
POST /v1/bots/{botId}/publish
{ "note": "Initial launch: welcome + support routing" }Ready to go deeper?
Explore the API reference or set up outbound webhooks to sync events into your own systems.