Bot Blocks Overview
Blocks are the building pieces of a bot's conversation. You drag them from the sidebar into groups on the canvas and connect the groups to shape the conversation flow.
The bot editor gives you 51 blocks in 6 categories:
| Category | Blocks | What they do |
|---|---|---|
| Bubbles | 5 | Show content to the user (text, media) |
| Inputs | 12 | Ask the user for information |
| Logic | 9 | Make decisions and control the flow |
| Integrations | 15 | Call AI models, APIs, and external services |
| Database | 9 | Read and write data, search knowledge bases |
| AI & ML | 1 | Run machine-learning tasks |
Every block that talks to an outside service needs a credential β your saved connection to that service. See Credentials & Integrations for how to add one.
Bubbles β 5 blocks
Bubbles display content in the chat. They don't wait for the user.
| Block | What it shows | Key options |
|---|---|---|
| Text | A rich-text message | Formatting, variables inside the text |
| Image | An image | Optional click-through link |
| Video | A video | Direct URL, YouTube, Vimeo, or TikTok; size and autoplay |
| Embed | Any website in an iframe | Height; can wait for an event from the page |
| Audio | An audio clip | Autoplay |
Inputs β 12 blocks
Inputs pause the conversation and wait for the user's answer. Every input can save the answer in a variable.
| Block | What it collects | Key options |
|---|---|---|
| Text | Free text | Long-answer mode, voice note recording, file attachments |
| Number | A number | Min, max, step |
| An email address | Validation with retry message | |
| Website | A URL | Validation with retry message |
| Date | A date or date range | Time picker, min/max, format |
| Phone | A phone number | Default country code, validation |
| Buttons | A choice from buttons | Multiple choice, dynamic items from a variable, search, per-item display conditions; each button can branch the flow |
| Pic choice | A choice from image cards | Same as Buttons, with images and descriptions |
| Payment | A card payment (Stripe) | Amount, currency, extra customer fields β needs a Stripe credential |
| Rating | A rating | Icons or numbers, scale length, custom icon, one-click submit |
| File | File upload(s) | Multiple files, size limit, allowed types, required/skippable |
| Location | The user's location | Permission question text, browser details |
Logic β 9 blocks
Logic blocks run invisibly β they steer the conversation and manage data.
| Block | What it does |
|---|---|
| Set variable | Puts a value in a variable β custom expressions (or code), dates (Now, Today, Tomorrowβ¦), IDs, transcript, list operations (Append, Pop, Shift, Map item) |
| Condition | Branches the flow with If/Else rules (AND/OR, many comparison operators) |
| Redirect | Sends the visitor to a URL (same tab or new tab) |
| Script | Runs custom JavaScript |
| Bot | Jumps into another bot (or a specific group of it) |
| Wait | Pauses for N seconds (optionally pauses the flow entirely) |
| Jump | Jumps to another group or block in this bot |
| AB Test | Splits traffic between two paths by percentage |
| Webhook | Pauses and waits for an incoming webhook call, then maps the payload into variables |
Integrations β 15 blocks
| Block | What it does | Credential |
|---|---|---|
| HTTP request | Calls any API (all HTTP methods) and maps the response into variables | β |
| Sends an email over your SMTP account | SMTP | |
| Analytics | Sends a Google Analytics event | β (tracking ID) |
| Execute Workflow | Runs one of your Indite workflows from inside the bot and returns its result | β |
| OpenAI | Chat completion, text-to-speech, transcription | OpenAI key |
| Claude | Chat message, generate variables | Anthropic key |
| Mistral | Chat completion, generate variables | Mistral key |
| Groq | Fast chat completion | Groq key |
| OpenRouter | Chat completion via 100+ models | OpenRouter key |
| LLM | Agent with your own custom tools | key in block |
| ElevenLabs | Converts text to natural speech | ElevenLabs key |
| Cal.com | Embeds a booking widget in the chat | β |
| ChatNode | Sends a message to a ChatNode bot | ChatNode key |
| QR code | Generates a QR code image | β |
| Segment | Sends analytics events (Identify, Track, Page, Alias) | Segment write key |
Database β 9 blocks
| Block | Actions | Credential |
|---|---|---|
| Sheets | Get data, Insert a row, Update a row | Google sign-in |
| Vector Store | Semantic search over your Vectors knowledge base | β |
| Airtable | List, read, append, update, delete records | Airtable token |
| NocoDB | Search, create, update records | Base URL + token |
| MongoDB | Create table, search, create, update, delete records | Connection URL |
| Postgres | Create table, get, create, update, delete records | Connection URL |
| MySQL | Create table, get, create, update, delete records | Connection URL |
| Firebase | Get, create, update, delete records | Service Account JSON |
| Pinecone Store | Vector search in your own Pinecone index | Pinecone key |
AI & ML β 1 block
| Block | Actions | Credential |
|---|---|---|
| Hugging Face | Classify text, Text to Image | Hugging Face token |
Working with blocks
- Drag a block from the sidebar onto the canvas β it lands inside a group.
- Click the block to open its settings.
- Connect groups by dragging from a block's edge to the next group.
- Test with the Test button (top-right) at any time.
You can reorder the sidebar's categories by dragging their headers β handy if you use one category a lot.