Aerostack
Now in Beta — 5 platforms supported

Chatbots reply. This one orchestrates.

The AI chatbot builder
that orchestrates.

The AI chatbot builder for developers who need more than chat. Visual workflows, identity verification, human approval handoffs, and bot-to-bot delegation — live on Discord, Telegram, WhatsApp, Slack, and the web.

Database Support CRM Monitoring Payments GitHub + any MCP tool
💬 5 Platforms 🧠 Any LLM 🔧 MCP-Powered 🔐 Auth Gate 🤝 Human Handoffs 💰 Pay-per-use
// The problem

Building AI bots today is painful.

Write separate integrations for every chat platform

Discord's slash commands ≠ Telegram's bot API ≠ WhatsApp's webhooks

Hard-code every tool call in handler functions

if user says "create ticket" → call Jira API. Repeat × 100.

No conversation memory across sessions

User comes back tomorrow. Bot has amnesia.

Pay for infrastructure you barely use

Idle servers waiting for messages that come once per hour.

// Architecture evolution

Three generations of AI chatbot builders.
Only one can think.

Gen 1 · 2016–2020

Static Flow Bots

Predictable, but braindead.

Every conversation is a pre-defined decision tree. The bot can only follow paths the developer explicitly built. One unexpected question and it falls apart.

  • Every response must be manually authored
  • New use case = new flow = more code
  • Cannot handle anything outside the tree
  • Zero understanding of context or intent
Gen 2 · 2023–2024

RAG + LLM Bots

Can answer, but can't act.

The bot searches a knowledge base and uses an LLM to generate natural-sounding answers. Great for FAQs — but it can only read. It can't create a ticket, query your database, or update a CRM.

  • Read-only — can answer but cannot take action
  • Single data source (vector DB)
  • No multi-tool orchestration
  • Cannot chain decisions across systems
Gen 3 · 2025+

MCP-Orchestrated Agents

Understands. Decides. Acts. Delegates.

The LLM sees every tool in your Aerostack workspace — databases, APIs, SaaS products, internal services — and autonomously decides what to call, in what order. Add identity verification, human approval handoffs, and bot-to-bot delegation. Edge-hosted, not a flow. A real agent.

  • Multi-MCP orchestration — chains actions across any tool stack
  • Human approval handoffs — pause, notify reviewer, resume on approval
  • Bot-to-bot delegation — specialized bots hand off to each other
  • Auth gate — identity verification (OTP / magic link) before sensitive actions
  • Edge-hosted on Cloudflare — sub-50ms cold starts, no origin server

What makes Aerostack bots different from Botpress or Voiceflow.

Multi-MCP tool orchestration across your entire stack. Edge-hosted on Cloudflare with sub-50ms cold starts. Human approval handoffs that pause workflows and notify reviewers via web, email, Telegram, or Discord. Bot-to-bot delegation for specialized agent teams. Identity verification via auth_gate before sensitive actions. A growing marketplace of MCP servers you can plug in instantly.

// Capability ladder

From simple Q&A to autonomous agent —
build at your level.

Every Aerostack bot starts simple and grows. Each rung adds real capability — you add rungs when you need them, not all at once.

01

Freestyle Q&A

LLM Multi-channel

A bot backed by any LLM that answers questions in natural language on any of the 4 channels. Takes 60 seconds to create — connect a channel token and write a system prompt.

02

RAG + memory

enable_rag memory_store Knowledge retrieval

Enable RAG (enable_rag) so the bot searches your knowledge base and answers from your actual documents. Add cross-session memory (memory_store) so the bot remembers users across conversations.

03

Workflow-driven with MCP tools

Visual workflow MCP tool calls 250+ integrations

Replace freeform chat with a visual workflow: call your database, Stripe, Notion, GitHub, or any MCP server mid-conversation. The bot can read and write — not just answer.

04

Confidence router · Auth gate · Vision

confidence_router auth_gate vision_analyze

Add a confidence router to catch low-confidence answers before they go wrong. Add an auth_gate to verify identity (OTP / magic link) before sensitive actions. Add vision_analyze so the bot accepts images — receipts, screenshots, product photos.

05

Subflows · Parallel · WhatsApp Flows

Subflows Parallel branches WhatsApp Flows

Extract reusable subflows for shared logic. Run parallel branches when independent tasks can proceed simultaneously. Trigger WhatsApp Flows to collect structured form data — text inputs, date pickers, dropdowns — natively inside the chat.

06

Multi-agent teams · Human handoff · Proactive

Bot teams Human approval Proactive messages

Compose a manager bot + specialist bots that delegate to each other by keyword, intent, or rule. Pause for human approval before irreversible actions. Schedule outbound messages or trigger them from your backend. A full autonomous agent team.

// Knowledge & perception

RAG, memory & vision — built in.

Three capabilities that separate a useful bot from a toy — all available on every channel, no extra infrastructure.

manage_search
enable_rag

RAG — answers from your docs

Enable RAG per-bot and the conversation engine searches your knowledge base before every reply. The bot cites real content from your documentation, product catalog, or policies instead of hallucinating. Pair with the knowledge_retrieval workflow node for more targeted lookups.

psychology
memory_store

Memory — per-thread & cross-session

Per-thread memory keeps context through a conversation. Cross-session memory (memory_store node) persists facts — user preferences, previous orders, support history — across separate conversations. Useful for personalisation, follow-ups, and repeat users on any of the 4 channels.

image_search
vision_analyze

Vision — bots that read images

Any channel that supports photo uploads (Telegram, WhatsApp, Discord) can pass images to a vision-capable model — GPT-4o, Gemini, or Workers AI. Receipts, screenshots, product photos, and scanned documents become first-class conversation input. The vision_analyze node extracts the result as a variable for downstream workflow steps.

dynamic_form

WhatsApp Flows — native interactive forms

WhatsApp only

WhatsApp Flows let users fill out structured forms — text inputs, email fields, date pickers, and dropdown selects — without leaving the WhatsApp chat. Your bot triggers a Flow mid-conversation, collects the structured payload on submit, and passes it directly into a workflow node or MCP tool call. Ideal for bookings, onboarding, and support ticket creation. Requires Meta Business Verification and is toggled per-bot with whatsapp_flows_enabled.

// Bot teams

Multi-agent bot teams, not one giant bot.

Compose bots with narrow responsibilities into a team. A manager bot delegates to specialists at runtime — the same pattern Botpress and Voiceflow can't match.

hub

Manager + specialists

A manager bot fronts the conversation and routes each query to the specialist bot best suited to handle it — billing, support, scheduling — each with its own tools, prompt, and approval rules.

hub

Routing rules

Route by keyword match, regex match, intent match, or "always". Each rule has a priority, can forward conversation history, and can prepend a custom prompt prefix before the specialist runs.

hub

Delegation log

Every bot-to-bot handoff is logged — caller, specialist, delegated prompt, response, cost, latency, and hop depth. Delegation runs through the delegate_to_bot workflow node, up to 3 hops deep.

// Proactive messaging

Bots that reach out first.

A bot doesn't have to wait to be messaged. Schedule outbound messages or let your backend trigger them via webhook — and track every delivery.

radio

Scheduled messages

Send on a cron schedule, a one-shot future time, or a delay. Schedules are timezone-aware, target a specific user or channel per platform, and can be fired manually, paused, or resumed.

radio

Outbound webhooks

Your backend POSTs to the bot webhook with a shared X-Aerostack-Secret and the bot delivers the message to the right user on the right channel — reminders, follow-ups, alerts. The secret is symmetric and the endpoint is rate-limited.

radio

Delivery log

Every proactive trigger is tracked with status (sent, failed, or skipped), a message preview, cost, and any error. Built on the schedule_message and send_proactive workflow nodes.

// By channel

One bot definition, every channel.

Build an AI customer support bot that verifies identity, looks up order history, answers from your knowledge base, and escalates to a human when needed — then ship the same bot to Discord, Telegram, WhatsApp, and Slack without a separate codebase for each.

Build a Discord AI bot

Build a Discord AI bot that responds to slash commands like /ask and /reset, posts deferred responses inside the 3-second interaction window, and handles button interactions. Requests are verified with Ed25519 signatures from your Application ID, Public Key, and Bot Token, and replies auto-split to stay under the 2,000-character limit.

Build a Telegram AI bot

Build a Telegram AI bot with the webhook registered for you automatically via setWebhook and every update verified with a secret-token HMAC header. It renders Markdown, sends inline keyboards, and routes callback queries from button taps to deterministic workflow branches — all within the 4,096-character message limit.

WhatsApp AI bot

Run a WhatsApp AI bot on the WhatsApp Business API with inbound webhooks verified by HMAC-SHA256. It sends interactive reply buttons (up to 3), list menus (up to 10 rows), and read receipts, using your Phone Number ID, Access Token, and Verify Token. Enable WhatsApp Flows to collect structured data — text inputs, date pickers, dropdowns — natively inside the chat. The same bot definition powers your other channels — no separate codebase.

Slack AI bot

Deploy a Slack AI bot that posts Block Kit-formatted replies in threads and works across mention, DM, and channel modes. Requests are verified with HMAC-SHA256 plus replay protection, using an xoxb- Bot Token and Signing Secret, with messages staying under the 4,000-character limit.

// Why Aerostack

The platform they can't match.

Feature Botpress Voiceflow Aerostack
AI & Tools
Multi-MCP tool orchestration
Multi-LLM routing ~ ~
BYOK (your own API keys)
RAG / knowledge retrieval (enable_rag) ~
Cross-session memory (memory_store)
Vision / image input (vision_analyze)
WhatsApp Flows (native in-chat forms)
Orchestration
Visual workflow builder
Identity verification (auth_gate)
Human approval handoffs
Multi-agent bot teams
Scheduled proactive messages
Platform
Discord + Telegram + WhatsApp + Slack
Persistent conversation memory
Edge-hosted (sub-50ms cold starts)
Full backend (DB + Auth + Storage)
security

Your bots only use the tools you allow. Block database writes, limit API access, prevent destructive actions — all configurable per bot. Learn about MCP Security →

Your tools are already connected.

If you have an Aerostack workspace, you're 60 seconds from a live bot.

Frequently asked questions

What is an AI chatbot builder, and how is Aerostack different from Botpress or Dify? expand_more
An AI chatbot builder lets you create conversational bots without writing a messaging integration from scratch. Aerostack goes further: its bots are not chatbots in the traditional sense but AI agents that orchestrate your services. The platform normalizes inbound messages across WhatsApp, Telegram, Discord, and Slack so you write one bot definition and it runs on every channel, rendering buttons, carousels, media, and forms in the format each channel expects. Where Botpress and Dify treat tool integrations as add-ons, Aerostack bots are powered by the same engine as agentic workflows — auth gates, human-approval handoffs, MCP tool calls, and bot-to-bot delegation are built-in primitives, not plugins. The result is a bot that can verify identity, call your Stripe or Notion workspace mid-conversation, pause for a human decision, and hand off to a specialist bot, all from one visual definition.
Which channels can I build AI bots for with Aerostack? expand_more
Aerostack bots run on WhatsApp (via the WhatsApp Business API), Telegram, Discord, and Slack from a single bot definition. You do not maintain four separate codebases or conversation flows — the platform normalizes inbound messages from every channel into a unified format, then renders outbound responses in the rich format each channel supports: interactive buttons and carousels on WhatsApp, slash-command replies on Discord, threaded messages on Slack. Adding a new channel to an existing bot is a configuration step, not a rebuild. This matters in practice because your users are spread across channels, and a bot that only covers one forces you to choose between reach and maintainability.
How do Aerostack bots call external tools and MCP servers mid-conversation? expand_more
Every bot has access to the full MCP tool workspace you configure for your project. When a user asks a question that needs live data — an order status from your database, a ticket from Stripe, a record from Notion, or a result from your own API — the bot calls the relevant MCP tool mid-conversation, folds the structured result into the LLM context, and replies with a grounded answer rather than a hallucination. Because the workspace composes many MCP servers behind one authenticated URL, a single bot can read from your CRM, write to your database, and post to an internal Slack channel in one turn — without you wiring three separate integrations. The MCP tool call is a first-class node in the workflow, not a webhook bolt-on.
What is a human approval handoff, and when does a bot need one? expand_more
A human approval handoff pauses a running bot conversation and routes a decision to a designated person before any sensitive step executes — issuing a refund, sending a bulk message, writing to a system of record, or escalating a high-value support request. The bot holds its state on the edge and resumes exactly where it left off once the reviewer approves or rejects, with the decision logged. You approve from the Aerostack dashboard or from the OpenClaw mobile app, so a bot can run fully unattended and still never take an irreversible action without a human in the loop. This is the same approval primitive used across workflows and direct agent calls — every surface in the platform shares it.
What is a multi-agent bot team, and how does bot-to-bot delegation work? expand_more
A bot team groups several bots into a manager-and-specialists structure. The manager bot fronts the conversation and routes each query to the specialist best suited to handle it, and bot-to-bot delegation is how that handoff executes at runtime. A general customer-support bot, for example, can detect a billing query and delegate it to your billing bot, which has the right MCP tools, the right tone, and the right approval rules for financial actions, rather than trying to handle everything in one monolithic definition. Routing rules match on keyword, regex, intent, or always, with a priority order, optional conversation-history forwarding, and an optional custom prompt prefix per rule. Delegation runs through the delegate_to_bot workflow node, not a webhook redirect, so the handoff carries conversation context, supports up to 3 hops, and every event is recorded in a delegation log with caller, specialist, cost, latency, and depth. You build bots with narrow, well-tested responsibilities and compose them at scale instead of one bot that does everything and becomes impossible to maintain.
Can Aerostack bots send proactive messages on a schedule or via webhook? expand_more
Yes. A bot does not have to wait to be messaged first. You can schedule outbound messages on a cron schedule, at a one-shot future time, or after a delay, all timezone-aware and targeted to a specific user or channel per platform, with manual fire, pause, and resume controls. You can also trigger messages from your own backend: your system POSTs to the bot webhook with a shared X-Aerostack-Secret and the bot delivers the message to the right user on the right channel, which is useful for reminders, follow-ups, and alerts. The secret is symmetric and the endpoint is rate-limited. Every proactive trigger is recorded in a delivery log with its status of sent, failed, or skipped, a message preview, cost, and any error. Under the hood these are the schedule_message and send_proactive workflow nodes.
Does Aerostack support deterministic button routing and rich message types? expand_more
Yes. Aerostack bots support deterministic button routing, which means a button tap in a WhatsApp or Telegram message triggers a specific, predictable workflow branch rather than being re-interpreted by the LLM each time. This is essential for transactional flows — booking confirmations, yes/no approvals, menu navigation — where you need reliability, not probability. On top of button routing, bots can send carousels, images, forms, and media in whatever format the channel supports. The bot definition uses rendering hints that the platform translates per channel, so you do not hard-code WhatsApp-specific template syntax for every message type.
Where do Aerostack bots run, and what does the free tier include? expand_more
Bots run on Cloudflare Workers at the edge: no servers to provision, no containers to keep warm, and near-zero cold start so a message is processed in milliseconds from the location nearest to your user. Every bot inherits the same edge runtime as Aerostack workflows — persistent conversation state, per-thread memory, and image input are all available without extra infrastructure. The free tier includes 500K AI tokens per month, which covers a meaningful volume of daily conversations at no cost. If you bring your own model API key via BYOK model routing, the platform markup drops to zero, and you pay only your provider directly — useful once a bot is generating real traffic.
Does Aerostack support RAG, memory, and image / vision input for bots? expand_more
Yes — all three are built in, not add-ons. RAG (retrieval-augmented generation) is enabled per-bot with the enable_rag flag: the bot searches your configured knowledge base and grounds its answers in your actual documents instead of hallucinating. Memory works at two levels: per-thread memory keeps context within a single conversation, and cross-session memory (via the memory_store node) lets the bot recall facts about a user across separate conversations — useful for personalisation, support history, and preference tracking. Vision input (vision_analyze) lets the bot accept images from any channel that supports photo uploads — Telegram, WhatsApp, Discord — and pass them to a vision-capable model (GPT-4o, Gemini, or Workers AI) for analysis. Receipts, screenshots, product photos, and documents can all flow into the conversation as first-class input.
What are WhatsApp Flows, and how do Aerostack bots use them? expand_more
WhatsApp Flows are native interactive forms that render inside the WhatsApp chat — text inputs, email fields, date pickers, and dropdown selects — collected without the user ever leaving the app. Aerostack bots can trigger a Flow mid-conversation to gather structured data: booking details, support ticket information, onboarding answers, or any multi-field form. The submitted data is returned to the bot as a structured payload and can be passed directly into a workflow node, an MCP tool call, or a database write. WhatsApp Flows require Meta Business Verification and are toggled per-bot with the whatsapp_flows_enabled flag. They are unavailable on the free sandbox number — you need a registered WhatsApp Business API phone number.
When is building an AI bot the wrong choice? expand_more
When users do not actually need a conversational interface. A bot adds value when the interaction is genuinely open-ended — users ask questions in their own words, the path branches on context, or a human escalation is sometimes needed. If every user interaction follows the same two or three steps and the answers are always the same, a well-designed FAQ page or a deterministic form will serve users faster and more reliably than routing every query through an LLM. Similarly, if you only need to push notifications or send broadcast messages without expecting replies, a direct messaging integration without a bot definition is simpler. Build a bot when the conversation is the product; use something simpler when the conversation is just overhead.