Parameters
Parameters allow you to store and reference data throughout your bot's conversational flows, enabling personalized and dynamic interactions with users.
What are Parameters?
Parameters are key-value pairs that store information during a conversation. They act as variables that can hold user responses, system data, or any other information you need to reference throughout your bot's flow.
Setting Parameters
Using the Parameter Step
Parameters are set using the Parameter Step within story nodes. When you add a Parameter Step to a node, you define:
- Key: The name of the parameter (e.g.,
user_name
,email
,preference
) - Value: The data to store (can be static text, user input, or dynamic values)
Example:
Parameter Step:
├── Key: user_name
└── Value: John Doe
Parameter Namespaces
Session Namespace
All parameters you set via the Parameter Step are stored under the session namespace. These parameters:
- Persist throughout the user's conversation session
- Are isolated per user (each user has their own parameters)
- Can be referenced in any part of your bot's flows
System Namespace
Botnex provides built-in parameters through the system namespace that are automatically updated:
system.last_utterance
- Contains the exact text of whatever the user last input
- Updates every time the user sends a message
system.last_intent
- Contains the name of the last intent that was successfully matched
- Updates whenever an intent is recognized from user input
Referencing Parameters
To reference parameters in your messages and content, use string interpolation with double curly braces:
{{ session.parameter_name }}
{{ system.parameter_name }}
Basic Examples
Personalizing messages:
Hello {{ session.user_name }}, welcome back!
Using system parameters:
You said: "{{ system.last_utterance }}"
I detected that you want to {{ system.last_intent }}.
Combining parameters:
Hi {{ session.user_name }}, you mentioned "{{ system.last_utterance }}" and I understood you want to {{ system.last_intent }}.
Common Use Cases
User Profile Management
Registration Flow:
├── Collect name → session.user_name
├── Collect email → session.email
└── Welcome message: "Hello {{ session.user_name }}!"
Multi-Step Forms
Booking Flow:
├── Select service → session.service_type
├── Choose date → session.appointment_date
└── Confirmation: "Your {{ session.service_type }} is booked for {{ session.appointment_date }}"
Conversation Context
Support Flow:
├── Store issue → session.issue_type
├── Response: "I'll help you with {{ session.issue_type }}"
└── Follow-up: "Is your {{ session.issue_type }} issue resolved?"
Managing Parameters
Clearing Parameters
To clear a parameter, set its value to empty in a Parameter Step:
Parameter Step:
├── Key: user_name
└── Value: [empty/blank]
Parameter Validation
Check if a parameter exists before using it:
{% if session.user_name %}
Hello {{ session.user_name }}!
{% else %}
Hello there!
{% endif %}
Best Practices
Naming Conventions
- Use descriptive names:
user_email
instead ofemail
- Follow consistent patterns:
user_name
,user_email
,user_phone
- Use snake_case:
appointment_date
instead ofappointmentDate
Data Management
- Initialize parameters with default values when needed
- Clear parameters when no longer needed
- Use meaningful parameter names for team collaboration
Security
- Don't store sensitive data like passwords
- Validate user input before storing
- Only store what you need for the conversation
Troubleshooting
Common Issues
Parameter not found:
- Ensure the Parameter Step executes before referencing the parameter
- Check that the parameter key matches exactly
- Verify you're using the correct namespace (
session.
orsystem.
)
Incorrect syntax:
<!-- Wrong -->
{{ user_name }}
<!-- Correct -->
{{ session.user_name }}
By using parameters effectively, you can create personalized, context-aware conversations that adapt to user needs and maintain information throughout your bot's flows.