> ## Documentation Index
> Fetch the complete documentation index at: https://support.humanizing.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Elements Reference: All Plural Flow Building Blocks

> A complete reference of every element available in Plural's no-code visual flow builder for Pepper, NAO, Temi robots and virtual Avatars.

Elements are the individual building blocks you connect on the Plural canvas to create interactive flows for your humanoid robots (Pepper, NAO, Temi) and virtual Avatars. Each element performs a discrete action — speaking a line, presenting a menu, calling an API, branching on a condition, and so on. You wire elements together by dragging the blue output circle from one element onto an empty canvas area or onto the input of another element.

<Note>
  To add any element, right-click on an empty area of your canvas and select the element from the context menu. You can also drag the blue output circle from an existing element and release it on a blank area — the same context menu will appear.
</Note>

## Interaction & Display Elements

<CardGroup cols={2}>
  <Card title="Robot Says" href="/en/elements/robot-says" icon="comment">
    Make your robot or Avatar speak text aloud. Add multiple speech variations for a more natural, human-like interaction.
  </Card>

  <Card title="Menu Designer" href="/en/elements/menu-designer" icon="table-list">
    Display a fully customizable button menu. Users can tap a button or trigger one by voice. Supports background images, icons, speech, and per-button conditions.
  </Card>

  <Card title="Question Designer" href="/en/elements/question-designer" icon="circle-question">
    Present a multi-button question screen with voice recognition. Save the user's answer to a variable for use later in the flow.
  </Card>

  <Card title="Rating Designer" href="/en/elements/overview" icon="star">
    Collect star (or custom-icon) ratings from users. Configure per-grade speech reactions and a thank-you message.
  </Card>

  <Card title="Media Designer" href="/en/elements/media-designer" icon="image">
    Display rich content screens with text, background images or videos, overlays, and QR codes. Optionally hide the Avatar for full-screen media.
  </Card>

  <Card title="Save User Input" href="/en/elements/overview" icon="keyboard">
    Render a text-input field that accepts typed or voice-entered responses. Supports Text, Phone, Email, Number, Time, Date, Dropdown, and Canvas (signature) input types.
  </Card>

  <Card title="Show Website" href="/en/elements/overview" icon="globe">
    Embed an external HTTPS website inside your flow. Choose from Fullscreen, Fullscreen with Avatar, Half-size, Quarter-size, or Square-size layouts.
  </Card>
</CardGroup>

## Logic & Routing Elements

<CardGroup cols={2}>
  <Card title="Condition" href="/en/elements/condition" icon="code-branch">
    Branch the flow based on variable comparisons (equals, greater than, less than, etc.). Works with both system variables and custom variables.
  </Card>

  <Card title="Time of Day" href="/en/elements/overview" icon="clock">
    Route the flow based on the current time on the robot or browser. Default condition checks whether it is before midday.
  </Card>

  <Card title="Age Detection" href="/en/elements/overview" icon="person">
    Branch the flow based on the estimated age of the person detected in front of the robot or Avatar camera.
  </Card>

  <Card title="Gender Detection" href="/en/elements/overview" icon="venus-mars">
    Branch the flow based on detected gender (Male, Female, No Match). Detected gender is also saved automatically to `#ATTRI/Gender`.
  </Card>

  <Card title="Output Randomizer" href="/en/elements/overview" icon="shuffle">
    Randomly select which output path the flow follows next. Add or remove paths in the sidebar.
  </Card>

  <Card title="Back to Flow Start" href="/en/elements/overview" icon="rotate-left">
    Jump back to the very beginning of the flow from any point.
  </Card>

  <Card title="Go-to-Destination" href="/en/elements/overview" icon="arrow-right">
    Jump to any named destination element elsewhere in your flow without drawing a direct connection arrow.
  </Card>

  <Card title="Pause Flow" href="/en/elements/overview" icon="pause">
    Insert a timed pause (in seconds) between two elements.
  </Card>
</CardGroup>

## Variable & Data Elements

<CardGroup cols={2}>
  <Card title="Set User Attributes & Variables" href="/en/elements/overview" icon="pen-to-square">
    Create or update a custom variable and assign it a value. Use `#ATTRI/variableName` to reference the variable anywhere in the flow.
  </Card>

  <Card title="Reset User Attributes & Variables" href="/en/elements/overview" icon="eraser">
    Clear one or all custom variables. Note: system variables cannot be reset.
  </Card>

  <Card title="Database" href="/en/elements/overview" icon="database">
    Read from or write to a Plural-managed database within your flow.
  </Card>

  <Card title="QR Code Reader" href="/en/elements/overview" icon="qrcode">
    Scan a JSON-encoded QR code and map its fields to flow variables via transformation rules.
  </Card>
</CardGroup>

## AI & Knowledge Elements

<CardGroup cols={2}>
  <Card title="Knowledge Base" href="/en/elements/knowledge-base-element" icon="brain">
    Connect a Plural Knowledge Base (PDF data sources) and let your Avatar answer natural-language questions using GPT. Choose Standard (GPT-3.5) or Premium (GPT-4o) models.
  </Card>

  <Card title="Custom API Request" href="/en/elements/custom-api-request" icon="plug">
    Call any external HTTPS REST API (GET, POST, PUT, PATCH, DELETE). Map JSON response values to variables and use them throughout your flow.
  </Card>

  <Card title="Custom Script" href="/en/elements/custom-script" icon="code">
    Write and run custom JavaScript logic. Use `getVariable()` and `setVariable()` to read and write flow variables.
  </Card>

  <Card title="Custom Plugin" href="/en/elements/overview" icon="puzzle-piece">
    Embed an interactive HTTPS website and establish two-way communication with Plural using the postMessage plugin API.
  </Card>
</CardGroup>

## Communication & Messaging Elements

<CardGroup cols={2}>
  <Card title="Send SMS" href="/en/elements/send-sms" icon="message-sms">
    Send a text message to a predefined phone number, powered by Twilio. Costs 75 GOs per message (up to 160 characters).
  </Card>

  <Card title="IoT Trigger" href="/en/elements/iot-trigger" icon="tower-broadcast">
    Pause the flow and wait for an inbound HTTP request from an external system before proceeding. Includes a Live URL, Test URL, and Auth Token.
  </Card>

  <Card title="Robot-to-Robot Chat" href="/en/elements/overview" icon="comments">
    Enable two devices running the same project to have a back-and-forth spoken conversation with each other.
  </Card>

  <Card title="Robot-to-Robot Command" href="/en/elements/overview" icon="arrow-right-arrow-left">
    Trigger an element in another frame from the current frame. Used to orchestrate multi-device flows and Plural Automation frames.
  </Card>
</CardGroup>

## Robot-Specific Elements

<CardGroup cols={2}>
  <Card title="Drive to Location" href="/en/elements/overview" icon="location-dot">
    **Temi only.** Send Temi to one of its saved navigation locations. Optionally display media and play speech while it navigates.
  </Card>

  <Card title="Change Language" href="/en/elements/overview" icon="language">
    **Avatar only.** Switch the entire flow to a different language at runtime. Requires additional languages to be added to the project first.
  </Card>
</CardGroup>

## Automation & Server-Side Elements

<CardGroup cols={2}>
  <Card title="Plural Automation" href="/en/elements/plural-automation" icon="server">
    A dedicated server-side frame that runs independently of the Avatar frame. Use it to offload heavy logic, Knowledge Base queries, and API chains from the front-end flow.
  </Card>
</CardGroup>

## System Variables

Plural automatically provides a set of read-only system variables you can reference in conditions, speech, and API calls without defining them yourself. Common examples include `Time`, `WeekdayNumber`, `LanguageISO2`, and `Gender`. See the [System Attributes reference](/en/elements/overview) for the full list.

<Tip>
  Use `#ATTRI/variableName` anywhere you need to insert a variable value — in robot speech, API URLs, button labels, or website parameters.
</Tip>
