> For a complete page index, fetch https://docs.synthflow.ai/llms.txt. For full documentation content, fetch https://docs.synthflow.ai/llms-full.txt. # Conversation Node > Learn how to use the Conversation node to collect variables and gather specific information from users during Flow Designer conversations. The **Conversation** node collects variables by gathering specific information from users during conversations. It pauses the flow until the user provides a response, then stores that response in a variable for later use in branching logic, API calls, or personalization. ![](https://storage.googleapis.com/granular-changelog/doc-images/flow_designer_conversation.png) ## Overview The Conversation node: * **Asks questions** to gather specific information from users * **Pauses the flow** until the user provides a valid response * **Stores responses** as variables (e.g., `{user_email}`, `{party_size}`) * **Validates input** to ensure data matches expected formats **Important:** The conversation pauses at a Conversation node until the user provides a valid response. If the user doesn't respond or gives an invalid answer, the agent will ask again or handle it according to your error handling logic. ## How to Configure ### Step 1: Add the Node In Flow Designer, click the Plus icon and select **Conversation** ### Step 2: Add Instructions (Optional) Describe how the agent should behave when collecting variables. This is especially useful when collecting multiple variables in sequence. **Example:** * `"First ask the user for their age, then ask for their gender."` * `"Ask for party size first, then ask for the preferred date and time."` The instructions guide the agent's behavior and help ensure variables are collected in the right order. ### Step 3: Define What to Collect **Variable Name:** * Choose a clear, descriptive name (e.g., `user_email`, `phone_number`, `preferred_date`) * Use lowercase with underscores (snake\_case) for consistency * This is how you'll reference the variable later: `{user_email}` **Variable Type:** * **String**: Free-form text input (name, address, comments) * **Number**: Numeric values only (age, quantity, phone number) * **List**: User selects from predefined options (product category, department) * **Boolean**: Yes/no, true/false responses (opt-in consent, confirm/cancel) **Prompt:** * Write what the agent should say to request this information * Examples: * `"What's your email address?"` * `"How many people will be joining us?"` * `"Which department do you need? Sales, Support, or Billing?"` ### Step 4: (Optional) Add Validation Configure validation rules to ensure data is in the correct format: * **Email validation**: Ensures input follows email format * **Phone validation**: Ensures input is a valid phone number * **Range validation**: For numbers (e.g., "Age must be between 18 and 100") * **Required vs Optional**: Choose whether the user must provide a value ## Conversation Node vs Message Node This is a common point of confusion. Here's the difference: | Conversation Node | Message Node | | ------------------------------------------------------ | --------------------------------------------- | | You need information from the user | You're delivering information or instructions | | The conversation should pause until you get a response | You don't need a response from the user | | You want to store the user's response for later use | You want to move to the next node immediately | **Example - Conversation Node:** ```mermaid flowchart TD A["Conversation Node
What's your email address?"] --> B["Variable stored: {user_email}"] B --> C["Continue to next node"] ``` **Example - Message Node:** ```mermaid flowchart TD A["Message Node
Thanks! I've recorded {user_email}."] --> B["Immediately continues
No pause"] ``` ## Using Collected Variables Once collected, variables can be referenced throughout your flow: * **In Message Nodes**: Personalize messages (e.g., `"Thanks, {user_name}! I've scheduled your appointment for {appointment_date}."`) * **In Branch Nodes**: Make decisions based on collected data (e.g., `{budget} > 10000`) * **In Custom Actions**: Pass variables to external APIs * **In Multi-Agent System**: Variables collected in the main flow are accessible to sub-agents For more details on how variables work and how to view them, see [Variables](/variables). ## FAQ #### Do I need a Conversation node for every question I ask? No. Only use Conversation nodes when you need to **store** the response for later use. For simple confirmations or conversational flow, you can handle responses in other ways (e.g., Branch nodes that detect intent). #### Can I collect multiple variables in one Conversation node? Yes! A Conversation node can collect multiple variables during the same conversation. Configure each variable you want to collect within the node settings. #### What happens if the user says 'I don't know'? The AI will detect that the user doesn't have the information. You should handle this with a Branch node to check if the variable was collected, and provide a fallback path if not. #### Can variables be passed between different agents? Yes. Variables collected in the main agent are accessible to sub-agents (Multi-Agent System). The sub-agent can also update variables that the main agent will see when control returns. See [Variables](/variables#collected-variables) for more details. > Gather and store information from users