# Block Types

Blocks are the building units of a chatbot flow. Every block belongs to one of four categories, visible in the block sidebar on the right of the canvas.

[![Chatbot block sidebar showing all four categories](../images/chatbot-block-sidebar.png)](../images/chatbot-block-sidebar.png)

## Bubbles

Bubble blocks send messages from the agent to the user. They render as chat messages in the conversation.

| Block | Description |
| --- | --- |
| [Text](../references/chatbot/bubbles.html#text) | Sends a text message. Supports rich formatting and variable references using `{{variableName}}` syntax. |
| [Image](../references/chatbot/bubbles.html#image) | Sends an image file by URL. |
| [Video](../references/chatbot/bubbles.html#video) | Embeds a video in the conversation. |
| [Embed](../references/chatbot/bubbles.html#embed) | Embeds an iframe or external content. |
| [Audio](../references/chatbot/bubbles.html#audio) | Sends an audio file by URL. |
| [Adaptive Card](../references/chatbot/bubbles.html#adaptive-card) | Sends a structured interactive card using the Adaptive Card schema. Supports form fields that save values into variables. |

## Inputs

Input blocks prompt the user for a response and capture it into a variable.

| Block | Description |
| --- | --- |
| [Text](../references/chatbot/inputs.html#text) | Free-text input field. |
| [Number](../references/chatbot/inputs.html#number) | Numeric input with optional validation. |
| [Email](../references/chatbot/inputs.html#email) | Email address input with format validation. |
| [Website](../references/chatbot/inputs.html#website) | URL input. |
| [Date](../references/chatbot/inputs.html#date) | Date picker. |
| [Phone](../references/chatbot/inputs.html#phone) | Phone number input. |
| [Buttons](../references/chatbot/inputs.html#buttons) | Presents a set of button choices. The selected option is captured as a variable value. |
| [Pic choice](../references/chatbot/inputs.html#picture-choice) | Image-based choice selection. |
| **Payment** | Payment collection input. |
| [Rating](../references/chatbot/inputs.html#rating) | Star or numeric rating input. |
| [File](../references/chatbot/inputs.html#file) | File upload input. |

## Logic

Logic blocks control the flow of the conversation — branching, redirecting, waiting, and manipulating variables.

| Block | Description |
| --- | --- |
| [Condition](../references/chatbot/logic.html#condition) | Branches the flow based on a condition. Evaluates a variable or expression and routes to different groups for true and false outcomes. |
| [Set Variable](../references/chatbot/logic.html#set-variable) | Assigns a value to a variable. The value can be a static string, a formula, or the output of a code expression. |
| [Script](../references/chatbot/logic.html#script) | Executes a JavaScript snippet. Use to transform data, compute values, or call logic that cannot be expressed with other blocks. |
| [Redirect](../references/chatbot/logic.html#redirect) | Redirects the user’s browser to a URL. |
| [Wait](../references/chatbot/logic.html#wait) | Pauses the flow for a specified duration before continuing. |
| [Jump](../references/chatbot/logic.html#jump) | Jumps to a specific group in the current flow without drawing an edge. |
| [AB Test](../references/chatbot/logic.html#ab-test) | Splits traffic between two paths at a configurable ratio for A/B testing. |

## Integrations

Integration blocks connect the chatbot to external services and AI models.

| Block | Description |
| --- | --- |
| [Webhook](../references/chatbot/integrations.html#webhook-http-request) | Makes an HTTP request to an external URL and optionally saves the response into a variable. |
| [Flow Agent](../references/chatbot/integrations.html#flow-agent) | Hands off to an Agentic Flow agent and returns the result into the chatbot flow. |
| [Voice Agent](../references/chatbot/integrations.html#voice-agent) | Triggers a Voice Agent call. |
| **DifyAI** | Calls a GenAI flow (Dify) workflow or chatbot. |
| **QR Code** | Generates a QR code image from a URL or text value. |
