Typebot Self-Hosted: No-Code Chatbot Builder
What this article covers
- What Typebot is: an open-source chatbot builder with drag-and-drop conversation flows.
- Docker setup (Typebot requires two services: Builder and Viewer).
- Building chat flows: blocks, conditions, variables, and jumps.
- Connecting Ollama for AI responses in your no-code flow.
- Website embedding and comparison to custom-built bots.
Introduction
Typebot is the best open-source alternative to Landbot or Tidio: a visual chatbot builder where you construct conversation flows by dragging and dropping text blocks, buttons, inputs, conditions, and integrations. No code needed to define your flow logic.
For AI self-hosters, the real appeal is this: Typebot can execute HTTP requests, letting you call Ollama directly from your flow and build a fully local, no-code AI chatbot for your website.
Common use cases
- Website support bot: FAQ content plus an AI fallback for open-ended questions, all without writing code.
- Lead qualification: flows that ask budget and timeline questions, AI scores responses, and routes hot leads to your CRM.
- Onboarding assistant: guide new users through setup steps in a conversational format.
- Feedback collection: structured surveys delivered as chat dialogs.
- Internal FAQ bot: answer employee questions using RAG over your knowledge base.
Installation: Docker
Typebot needs two services: the Builder (the flow editor) and the Viewer (the public bot runtime), plus PostgreSQL and optionally MinIO for file storage:
services:
typebot-builder:
image: baptistearno/typebot-builder:latest
ports: ["127.0.0.1:3000:3000"]
environment:
- DATABASE_URL=postgresql://typebot:geheim@db:5432/typebot
- NEXTAUTH_URL=https://builder.deine-domain.de
- NEXT_PUBLIC_VIEWER_URL=https://bot.deine-domain.de
- ENCRYPTION_SECRET=zufaellig-32-chars
- SMTP_HOST=smtp.dein-server.de
- SMTP_PORT=587
- SMTP_USERNAME=bot@deine-domain.de
- SMTP_PASSWORD=...
- NEXT_PUBLIC_SMTP_FROM=bot@deine-domain.de
- S3_ENDPOINT=minio
- S3_BUCKET=typebot
- S3_ACCESS_KEY=minioadmin
- S3_SECRET_KEY=minio-geheim
depends_on: [db]
restart: always
typebot-viewer:
image: baptistearno/typebot-viewer:latest
ports: ["127.0.0.1:3001:3000"]
environment:
- DATABASE_URL=postgresql://typebot:geheim@db:5432/typebot
- NEXT_PUBLIC_VIEWER_URL=https://bot.deine-domain.de
- ENCRYPTION_SECRET=zufaellig-32-chars
depends_on: [db]
restart: always
db:
image: postgres:16
environment:
POSTGRES_USER: typebot
POSTGRES_PASSWORD: geheim
POSTGRES_DB: typebot
volumes: [pg_data:/var/lib/postgresql/data]
restart: always
volumes:
pg_data:
Building flows: the building blocks
- Bubbles: text, images, videos, anything your bot displays.
- Inputs: text fields, email, buttons, file uploads, numbers; what users enter.
- Logic: conditionals (if/else), variable assignment, jumps, A/B tests.
- Integrations: HTTP requests, Google Sheets, OpenAI blocks (which you can point to Ollama), webhooks.
Ollama in your flow: AI without code
Typebot includes an HTTP Request block that lets you call Ollama:
Block: HTTP Request
Method: POST
URL: http://ollama:11434/api/chat
Body:
{
"model": "llama3.1:8b",
"messages": [
{"role": "system", "content": "Du bist ein freundlicher FAQ-Bot. Kurze Antworten."},
{"role": "user", "content": "{{user_input}}"}
],
"stream": false
}
→ Store response in variable {{ki_antwort}} (message.content)
Then add a text bubble block with {{ki_antwort}} and you have a working AI chatbot with zero code.
Using Typebot’s OpenAI block with Ollama
Typebot has a native OpenAI block. Since Ollama is compatible with OpenAI’s API, simply configure the base URL as http://ollama:11434/v1 instead of api.openai.com and select a local model. It works out of the box.
Website embedding
The Viewer generates a snippet you paste into your site:
<script type="module">
import Typebot from 'https://bot.deine-domain.de/js/web.js'
Typebot.initBubble({
typebot: "mein-faq-bot",
apiHost: "https://bot.deine-domain.de",
});
</script>
Options include a bubble (chat icon in the corner), popup, standard embed (inline in your content), or full-page mode.
Advanced patterns
RAG in your no-code flow
User input → HTTP block: generate embedding (Ollama /api/embeddings)
→ HTTP block: search Qdrant with that embedding
→ HTTP block: call Ollama chat with top results in system prompt
→ answer bubble
All Typebot blocks, no custom code, but a real RAG pipeline.
Lead scoring
Buttons for budget and timeline → variables → condition: score > threshold → HTTP block posts lead to Twenty CRM or n8n webhook.
Fallback to human
Condition “AI uncertain” → hand off to Chatwoot for a human agent or send an email notification.
Security
- Separate URLs: host the Builder (admin only) and Viewer (public) on different domains. Never expose the Builder publicly.
- HTTPS: your Viewer must use TLS (required for website embedding).
- SMTP: needed for login magic links; use your own mail server.
- Rate limiting: the Viewer is public, so implement abuse protection.
Typebot vs. custom-built bots
| Aspect | Typebot | Custom-built |
|---|---|---|
| Effort | drag-and-drop, no code | full control, more development |
| AI integration | HTTP block or OpenAI block → Ollama | direct API calls |
| Flexibility | limited by flow logic | unlimited |
| Best for | website FAQ, lead qualification, no-code | complex agents, custom logic |
Further reading
- IRC-Coding.de: in-depth programming tutorials on HTTP APIs and flow design.
- Chatwoot: hand off to human agents.
- Ollama API: HTTP interface reference.
- Web Chatbot: programmed alternative.
- Docker: deployment basics.
Key takeaways:
- Typebot is an open-source chatbot builder with drag-and-drop flows and no code required.
- Use the HTTP Request block or OpenAI block (pointed at your Ollama instance) to add AI to your flow.
- Two services required: Builder (admin) and Viewer (public).
- Killer use case: website FAQ bot powered by local AI, zero lines of code.
- For complex agent logic, custom code is more powerful; Typebot is your no-code entry point.
FAQ
Can Typebot handle AI responses?
Why two services?
How do I get the bot on my website?
Typebot or build it myself?
Where are chat messages stored?
Is it free?
Sources and further reading
- Typebot: GitHub repository.
- Typebot Docs: official documentation.
- IRC-Coding.de: programming tutorials.


