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. .. image:: ../images/chatbot-block-sidebar.png :alt: Chatbot block sidebar showing all four categories :align: center :width: 100% | Bubbles ------- Bubble blocks send messages from the agent to the user. They render as chat messages in the conversation. .. list-table:: :widths: 20 80 :header-rows: 1 * - Block - Description * - :ref:`Text ` - Sends a text message. Supports rich formatting and variable references using ``{{variableName}}`` syntax. * - :ref:`Image ` - Sends an image file by URL. * - :ref:`Video ` - Embeds a video in the conversation. * - :ref:`Embed ` - Embeds an iframe or external content. * - :ref:`Audio ` - Sends an audio file by URL. * - :ref:`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. .. list-table:: :widths: 20 80 :header-rows: 1 * - Block - Description * - :ref:`Text ` - Free-text input field. * - :ref:`Number ` - Numeric input with optional validation. * - :ref:`Email ` - Email address input with format validation. * - :ref:`Website ` - URL input. * - :ref:`Date ` - Date picker. * - :ref:`Phone ` - Phone number input. * - :ref:`Buttons ` - Presents a set of button choices. The selected option is captured as a variable value. * - :ref:`Pic choice ` - Image-based choice selection. * - **Payment** - Payment collection input. * - :ref:`Rating ` - Star or numeric rating input. * - :ref:`File ` - File upload input. Logic ----- Logic blocks control the flow of the conversation — branching, redirecting, waiting, and manipulating variables. .. list-table:: :widths: 20 80 :header-rows: 1 * - Block - Description * - :ref:`Condition ` - Branches the flow based on a condition. Evaluates a variable or expression and routes to different groups for true and false outcomes. * - :ref:`Set Variable ` - Assigns a value to a variable. The value can be a static string, a formula, or the output of a code expression. * - :ref:`Script ` - Executes a JavaScript snippet. Use to transform data, compute values, or call logic that cannot be expressed with other blocks. * - :ref:`Redirect ` - Redirects the user's browser to a URL. * - :ref:`Wait ` - Pauses the flow for a specified duration before continuing. * - :ref:`Jump ` - Jumps to a specific group in the current flow without drawing an edge. * - :ref:`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. .. list-table:: :widths: 20 80 :header-rows: 1 * - Block - Description * - :ref:`Webhook ` - Makes an HTTP request to an external URL and optionally saves the response into a variable. * - :ref:`Flow Agent ` - Hands off to an Agentic Flow agent and returns the result into the chatbot flow. * - :ref:`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.