BotHippo Docs Go to Dashboard

BotHippo Documentation

Welcome to the official BotHippo documentation. Here you'll find everything you need to become a Telegram automation expert. 🚀

BotHippo is a powerful platform designed to give you a web-based interface for your Telegram bots. You can manage live conversations with your clients, broadcast messages, and build complex automations—all without writing a single line of code.

Connecting Your Bot

Before you can use BotHippo, you need a Telegram bot. You can create one in just a few minutes.

  1. Talk to BotFather. Open Telegram and search for the official @BotFather bot.
  2. Create a New Bot. Send the /newbot command to BotFather and follow the on-screen instructions. He will ask for a name and a username for your bot.
  3. Get Your Token. Once your bot is created, BotFather will give you a unique token. It will look something like this: 1234567890:ABC-DEF1234ghIkl-zyx57W2v1u123456789.
  4. Add the Bot to BotHippo. Go to your BotHippo Dashboard, paste this token into the "Add Bot" input field, and click the "Add Bot" button.

That's it! Your bot is now connected and will appear in your "Your Bots" list.

The Dashboard

The dashboard is your main hub. Here you can see your account status, manage your subscription, and control all your connected bots.

Bot Settings

For each bot in your list, you have several options:

  • Activate/Pause: Start or stop your bot from responding to messages.
  • Welcome Msg: Set a custom message that is automatically sent to a user the first time they start a conversation with your bot.
  • Bot Mode: Choose between two modes:
    • Live Chat: All messages from users are sent directly to your Chat Panel for you to reply to manually.
    • Automation: The bot is controlled by a flow you create in the Flow Builder.
  • Automation Flow: If you select Automation mode, you must choose which of your saved flows this bot should use.

The Chat Panel

The Chat Panel is your command center for live conversations, providing an experience similar to WhatsApp Web. Access it by clicking the "Go to Chat Panel" button on your dashboard.

Key Features

  • Bot Selection: The left-most sidebar lists all your active bots. Select a bot to view its conversations.
  • Conversation List: See all the users who have messaged your selected bot. Unread messages are marked with a "New" badge.
  • Live Chat: Click on a conversation to see the full chat history. You can reply with text, images, videos, and documents.
  • Broadcasting: Click the icon to open the broadcast modal. From here, you can send a message (text or a file with a caption) to every single user who has ever interacted with your selected bot.

The Flow Builder

The Flow Builder is where you bring your bot to life. Think of a flow as a recipe or a flowchart that tells your bot exactly how to behave. It's a visual canvas where you connect different action "nodes" to create automated conversations.

Managing Your Flows

In the left sidebar of the Flow Builder, you can:

  • Create a New Flow: Give your new flow a name and click "Create New".
  • Import/Export: Share flows with others or back them up by exporting them as a .json file. You can import flows that you or others have saved.
  • Save Flow: After making changes on the canvas, always click the "Save Flow" button in the top header.

Nodes: The Building Blocks

Nodes are the individual steps in your flow. You can add them using the buttons at the bottom of the canvas and connect them using the "Next Step" dropdowns.

Trigger Node

This is the starting point of every flow. The flow begins when a user sends the /start command or their very first message to your bot. You cannot delete this node.

Message Node

The simplest node. It sends a text message to the user. You can use variables in the message text (more on that below).

Ask for Input Node

This node sends a message to the user and then waits for them to reply. The user's reply is then saved into a custom variable that you can use later in the flow.

  • Save reply to variable: Give your variable a name, like user_email or order_number. Avoid spaces or special characters.

Buttons Node

This node sends a message along with clickable buttons, guiding the user's choices. Each button can lead to a different node, allowing you to create branches in your flow.

  • Manual Buttons: You define the label and destination for each button yourself.
  • Dynamic Buttons: You can populate buttons dynamically from an array of data, for example, from an API call that returns a list of products.

API Request Node

This is the most powerful node. It allows your bot to communicate with external servers and APIs to fetch or send data.

  • HTTP Method: Choose GET (to retrieve data) or POST (to send data).
  • Request URL: The API endpoint you want to contact. You can use variables here, e.g., https://api.example.com/products/{{product_id}}.
  • Headers & Body: Add any required authentication tokens or data here in JSON format.

The entire response from the API is saved to a special variable called api_response. The flow can then branch based on whether the API call was a success or a failure.

Using Variables

Variables are the memory of your bot. They allow you to personalize conversations and use data dynamically. To use a variable, simply wrap its name in double curly braces, like this: {{variable_name}}.

Predefined System Variables

BotHippo automatically provides some information about the Telegram user who is talking to your bot.

Variable Description
{{user.id}} The user's unique Telegram ID.
{{user.first_name}} The user's first name.
{{user.last_name}} The user's last name (if they have one).
{{user.username}} The user's Telegram @username (if they have one).

Custom Variables

You create custom variables using the Ask for Input Node. If you set that node to save the reply to a variable named user_city, you can then use {{user_city}} in any subsequent message node.

API Response Variables

After using an API Request Node, the entire response is stored in api_response. You can access data within this response using dot notation.

Example: Imagine your API returns the following JSON data, which is now stored in api_response:

{
  "status": 200,
  "data": {
    "orderId": "XYZ-123",
    "customer": {
      "name": "John Doe",
      "is_premium": true
    },
    "items": [
      { "product": "Laptop", "price": 1200 },
      { "product": "Mouse", "price": 25 }
    ]
  }
}

Here is how you would access different parts of that data in a message node:

  • To get the order ID: {{api_response.data.orderId}} will become "XYZ-123".
  • To get the customer's name: {{api_response.data.customer.name}} will become "John Doe".
  • To get the first product's name: {{api_response.data.items[0].product}} will become "Laptop".