# Node Reference (Reference: https://docs.iqra.bot/build/script/nodes)
The Script Builder provides a comprehensive suite of nodes to handle conversation flow, business logic, and integrations.
Nodes are organized by category in the **Sidebar Palette**.
***
Conversation [#conversation]
The core interaction loop between the human and the AI.
User Query [#user-query]
Defines an **Intent** or specific phrase the user might say.
* **Usage:** Connect this after a Start Node or AI Response.
* **Matching:** The LLM uses semantic matching. If you type "I want to buy," it will also match "I'm looking to purchase."
* **Multi-Language:** You must define the query text for every enabled language.
AI Response [#ai-response]
Defines what the Agent speaks.
* **Content:** The text to be synthesized by TTS. Supports **[Templating](/build/script/templating)** (e.g., `Hello {{ name }}`).
* **Interruption:** You can toggle whether the user is allowed to interrupt this specific phrase.
* **Multi-Language:** Requires translated text.
Keep Listening [#keep-listening]
Forces the agent to keep the microphone open without speaking.
* **Use Case:** When you expect the user to continue talking after a brief pause, or when you want to simulate "Active Listening" silence.
***
Action Flow [#action-flow]
Deterministic logic containers. These nodes allow you to build strict business rules.
Action Flows are powerful sub-routines. Read the full **[Action Flows Guide](/build/script/action-flows)** to learn how to group nodes and enforce strict logic.
* **Action Flow Group:** The container for the sub-routine.
* **Condition:** If/Else logic branching (e.g., `If Balance > 0`).
* **Wait:** Pauses execution for a set duration.
* **Run Code:** Execute a JavaScript sandbox to manipulate variables.
* **Go To Action:** Jump to another step within the Flow.
* **Return:** Exit the Flow and return control to the main graph.
***
Logic [#logic]
State management and flow control.
Set Variable [#set-variable-]
Updates the value of a **[Script Variable](/build/script/variables)**.
* **Operation:** Set, Increment, Decrement.
* **Value:** Can be static (e.g., `true`) or dynamic (e.g., `{{ tool.result }}`).
Get Numerical Input [#get-numerical-input]
Requests specific keypad input (DTMF) from the user.
* **Settings:** Max digits, Timeout, Terminator (`#`).
* **Encryption:** If enabled, the value is **Redacted** from logs and the AI context. Useful for collecting IDs securely.
Transfer To Agent / Human [#transfer-to-agent--human]
* **To Agent:** Handoff the call to another AI Persona (e.g., Transfer from "Sales Bot" to "Support Bot").
* **To Human:** SIP/PSTN forwarding to a live call center or phone number.
Change Language [#change-language]
Switches the entire agent configuration mid-call.
* **Effect:** Swaps STT/TTS providers and the prompt context to the selected language immediately.
Send Event [#send-event-]
Sends a JSON payload to the client via WebSocket.
* **Use Case:** Updating the UI on a website or app (e.g., `navigate_to_checkout`) during a **[Web Campaign](/build/campaigns/web)**.
Webhook [#webhook-]
Fires a "Fire-and-Forget" HTTP request to an external URL. Unlike Custom Tools, this does not wait for a response or return data to the AI.
Add Script [#add-script]
Injects the logic of *another* script into the current conversation context (e.g., injecting a global "FAQ Script" into a "Sales Script").
Schedule Call [#schedule-call-]
Triggers an outbound call to be placed at a future time.
End Conversation [#end-conversation]
Terminates the connection.
* **Mode:** Speak a final message (Goodbye) or hang up immediately.
***
Telephony [#telephony]
Network-level controls.
Press Keypad [#press-keypad]
Simulates the agent pressing keys (e.g., dialing an extension `123#`).
***
Integrations [#integrations]
Connecting to the outside world.
FlowApps (Plugins) [#flowapps-plugins]
Pre-built, rich integrations for services like **Cal.com** plugin.
* **Dynamic UI:** These nodes render dropdowns and forms specific to the app.
* **Latency Masking:** Configure `Speaking Before Execution` to fill dead air while the API loads.
See how to use plugins in the **[FlowApps Guide](/build/script/flowapps)**.
Custom Tool [#custom-tool-]
Executes a raw HTTP webhook defined in the **[Tools Module](/build/tools)**.
* **Use Case:** Connecting to your own internal API or a service that doesn't have a FlowApp yet.
Retrieve Knowledgebase [#retrieve-knowledgebase-]
Forces a manual **[RAG](/build/knowledge/rag)** lookup.
* **Result:** The retrieved document chunks are injected into the context for the next AI response.
Send SMS [#send-sms]
Triggers a text message to the caller via your connected telephony provider.