Skip to main content
Use a user activity node to define interactive steps in your agentic workflow where users provide or receive information in one of two ways:
  • In a multi-turn conversation, where the user provides or receives one piece of data at a time
  • Through a form, which prompts the user for several pieces of data in a single conversational turn
Note:User activity nodes support multi-language configurations. Define target languages in your agentic workflow code and manage translations through CSV export and import. For complete details, see Multi-language support.
To add a user activity node to your agentic workflow, start by creating a userflow() object.

Multi-turn conversations user activity

To collect or deliver one piece of data at a time, call field() on the userflow() object. This method accepts the following input parameters:
string
required
Unique identifier for the node.
UserFieldKind
required
Type of user activity. Supported types: Text, Date, DateTime, Time, Number, File, Boolean, Object, Choice.
string
Display name for the node.
string
Description of the node.
string
required
Indicates whether the node is for input or output.
any
Default value for the node.
UserFieldOption
List of predefined options with their labels and values.
bool
Indicates whether the node accepts multiple values.
any
Minimum value or constraint.
any
Maximum value or constraint.
DataMap
Define input mappings using a structured collection of Assignment objects.
dictionary
Dictionary for additional metadata or configuration.
Here is an example that shows how to use field():
Python

Forms user activity

To prompt for multiple pieces of data in a single turn, instantiate the form() object to create a form node. This method accepts the following input parameters:
string
required
The internal name of the form.
string
The display name shown on the form.
string
Instructions text for the form.
string
The label for the submit button. Defaults to Submit if not set.
string
The label for the cancel button. If set to None, hides the button.

Forms fields

After instantiating the form object, add fields to it. Each field type requires its own configuration. Supported field types include:
Creates a text input field. Configure it as a single-line input or a multi-line text area.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
bool
Whether the field uses a single line. If False, creates a multi-line text area. Defaults to True.
string
Placeholder text for the field.
string
Help text for the field.
any
Default value for the field, passed as DataMap.
string
Regular expression pattern for input validation.
string
Custom error message for failed regex validation. Defaults to: “Input does not match the required pattern”.
Creates a boolean input field. Render it as a checkbox or radio buttons.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
bool
Whether to display as a single checkbox. If False, displays as radio buttons. Defaults to True.
any
Default value for the field, passed as input_map.
string
Label for the true option. Defaults to True.
string
Label for the false option. Defaults to False.
Creates a date range input field with start and end date pickers.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
string
Label for the start date field.
string
Label for the end date field.
any
Default value for the start date, passed as DataMap.
any
Default value for the end date, passed as DataMap.
any
DataMap that sets the minimum date constraint and maps to self.input.min_date.
any
DataMap that sets the maximum date constraint and maps to self.input.max_date.
Creates a date input field.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
any
Default value for the field, passed as DataMap.
any
Minimum date value for the allowed range.
any
Maximum date value for the allowed range.
bool
Whether the field supports selecting more than one date. Defaults to False.
Creates a datetime or time input field.
string
required
Internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
any
Default value for the field, provided through a DataMap.
any
Minimum allowed datetime or time value.
any
Maximum allowed datetime or time value.
UserFieldKind
Type of field, either DateTime or Time. Defaults to DateTime.
Creates a datetime or time range input field with start and end pickers.
string
required
Internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
string
Label for the start value.
string
Label for the end value.
any
Default start value, provided through a DataMap.
any
Default end value, provided through a DataMap.
any
Minimum allowed value for the range.
any
Maximum allowed value for the range.
Creates a number input field.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
bool
Whether the field accepts only integers. If False, accepts decimal numbers. Defaults to True.
string
Help text for the field.
any
Default value for the field, passed as DataMap.
any
Minimum allowed value, passed as DataMap.
any
Maximum allowed value, passed as DataMap.
Creates a file upload field.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
string
Instructions for the file upload.
bool
Whether the field is required. Defaults to False.
bool
Whether multiple files can be uploaded. Defaults to False.
int
Maximum file size in MB. Defaults to 10.
List[string]
List of supported file extensions, for example pdf and docx.
Any
Minimum number of files. Valid only when allow_multiple_files=True.
Any
Maximum number of files. Valid only when allow_multiple_files=True.
Creates a message output field to display static text.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
string
The message text to display.
Creates a field output to display dynamic values.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
any
The value to display, passed as DataMap.
Creates a list output field to display tabular data.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
any
The list of items to display, passed in a DataMap.
dict[string, str]
Mapping of source property names to table column labels. Only those columns appear if present.
Creates a list input field to display tabular data.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
bool
Whether the user can add rows.
bool
Whether the user can delete rows.
any
The list of items to display, passed in a DataMap.
dict[string, str]
Mapping of source property names to table column labels. Only those columns appear if present.
Creates a file download field.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
any
The file to download, passed as DataMap.
Creates a single-choice input field. Display options as a dropdown or as radio buttons.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
any
The list of available choices, passed as DataMap.
bool
Whether to display options as a dropdown. If False, display as radio buttons. Defaults to True.
string
Column name used for display text in dropdown.
string
Placeholder text for the dropdown.
any
Default selected value, passed as DataMap.
dict[string, str]
Mapping of source property names to display labels for complex choice objects.
Creates a multi-choice input field. Display options as a multi-select dropdown or as checkboxes.Parameters:
string
required
The internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
any
The list of available choices, passed as DataMap.
bool
Whether the field shows as a dropdown. If False, the field shows as checkboxes. Defaults to True.
string
Column name for the display text in a dropdown.
string
Placeholder text for the dropdown.
any
Default selected values, provided as a DataMap.
dict[string, str]
Mapping of source property names to display labels for complex choice objects.
any
Minimum number of items the user must select.
any
Maximum number of items the user can select.
Creates a user selection field in the form.Parameters:
string
required
Internal name of the field.
string
Display label for the field.
bool
Whether the field is required. Defaults to False.
bool
Whether the user can select more than one person. Defaults to False.
any
Minimum number of users to select. Applies only when multiple_users=True. Accepts an integer or a DataMap for dynamic configuration through expressions.
any
Maximum number of users to select. Applies only when multiple_users=True. Accepts an integer or a DataMap for dynamic configuration through expressions.
Here is an example that shows how to use form():
Python

Dynamic form input

Form fields can change based on user actions. You define the dependencies between the user’s interactions and your tools to control dynamic behavior in the form. This includes progressive selection, showing or hiding widgets, and updating widget labels. Use the following methods to configure dynamic forms:
Adds a visibility behaviour that shows or hides fields based on conditions.
string
required
Unique identifier for this behaviour.
string
required
Field that triggers evaluation of visibility rules when its value changes.
list[dict]
required
List of visibility rules. Each rule specifies a condition and an impacted_field that changes visibility.
string
Display name for this behaviour.
Adds a label-changing behaviour that updates field labels based on conditions.
string
required
Unique identifier for this behaviour.
string
required
Field that triggers label evaluation when its value changes.
list[dict]
required
List of label rules. Each rule includes a condition and an impacted_field whose label changes.
string
Display name for this behaviour.
Adds a value-source behaviour that populates a field using results from a tool. Supports a simplified API or a manual API.
string
required
Unique identifier for this behaviour.
string
required
Field that triggers execution of the tool when its value changes.
string
required
Field that receives values returned by the tool.

Simplified API parameters

string
Name of the tool to call, for example get_states_or_provinces.
string
UUID of the tool.
dict[string, string]
Mapping of tool parameters to field expressions. For example country maps to parent.field.country.
any
Client instance that enables automatic retrieval of the tool schema.

Manual API parameters

string
Tool identifier in name colon UUID format.
dict
Schema that describes the expected inputs for the tool.
dict
Mapping of input parameters to values or expressions used by the tool.

Common optional parameters

string
Display name for this behaviour.
Here is an example that shows how to configure dynamic forms:
Python