Docs/Using Plugins/Build Your Questionnaire

Build Your Questionnaire

The questionnaire is the core of the Chat Form. It defines what the AI will ask, in what order, what answers are acceptable, and when certain questions should appear.

Navigate to Actions → Plugins in the agent sidebar, open or create a Chat Form plugin, and go to the Questions section.


Starting from a Template

Instead of building from scratch, you can start from a predefined template. Available templates:

TemplateBest for
BlankBuilding a custom form from scratch.
Product FeedbackCollecting user feedback on a product or feature.
Service FeedbackGathering satisfaction ratings after a service interaction.
Event RegistrationRegistering attendees with contact and preference details.
Book AppointmentScheduling information with date and time fields.
Market ResearchStructured surveys with multiple-choice and rating questions.
Generate by AIDescribe the form in plain text and let the AI generate the full question set.

Selecting a template pre-fills the question list. You can edit, reorder, or remove any question after loading it.


Adding and Editing Questions

Each question has the following fields:

FieldDescription
Question TextThe prompt the AI presents to the user. Write it as a natural question.
Field NameThe internal key used in submissions. Alphanumeric and underscores only, max 20 characters, must be unique across the form.
Report Column TitleThe column header used when viewing or exporting submissions.
Data TypeThe expected format of the answer. See the table below.
MandatoryWhether the user must answer this question before the form can be submitted.
Validation RulesFree-text instructions the AI follows when validating the answer.
OrderThe sequence in which questions are asked. Lower numbers appear first.

Question Data Types

TypeDescription
textAny free-form text answer.
numberNumeric values. The AI parses written numbers (e.g., "five hundred" → 500).
dateA calendar date. The AI converts natural language dates to ISO 8601 format.
yes_noA binary yes or no answer.
phone_numberAn international phone number in +[country code][number] format.
website_linkA URL. The AI validates it starts with http:// or https://.
emailAn email address.
user_emailSame as email, but the value is also associated with the submitting user's identity for notification purposes.
ratingA numeric rating, typically 1–5 or 1–10. Define the scale in the question text or validation rules.
multiple_choiceOne selection from a predefined list. Requires populating Valid Values.
multiple_selectionOne or more selections from a predefined list. Requires populating Valid Values.
file_uploadOne or more file URLs. Enable Allow Multiple to accept more than one file. Files are attached by the user during the conversation and stored automatically.

Validation Rules

The Validation Rules field accepts a plain-text instruction the AI uses to decide whether an answer is acceptable. You can use this to enforce constraints that the data type alone does not cover.

Examples:

  • Must be a date in the future.
  • Must be between 1 and 100.
  • Must not contain special characters.
  • Must be one of: Jakarta, Surabaya, Bandung.

If the user's answer fails validation, the AI explains the error and asks for a corrected answer before moving on.


Conditional Logic

Conditional logic hides a question unless a specific condition is met based on an earlier answer. This prevents irrelevant questions from appearing in the conversation.

To add a condition to a question:

  1. Open the question editor and expand the Condition section.
  2. Select the Depends on field — the earlier question this condition evaluates.
  3. Choose an Operator.
  4. Enter the Value to compare against.

Available Operators

OperatorUse when
equals / not_equalsThe answer matches or does not match an exact value.
contains / not_containsThe answer includes or excludes a specific substring.
starts_with / ends_withThe answer begins or ends with a specific string.
is_empty / is_not_emptyThe field was left blank or has any value.
greater_than / less_thanNumeric or date comparison.
greater_than_or_equal / less_than_or_equalInclusive numeric or date comparison.
in_rangeThe value falls between two numbers or dates.
before / afterDate comparison — the answer is before or after a given date.
betweenThe date falls within a specified range.
is_one_of / is_not_one_ofThe answer is or is not one of a list of values.
contains_any / not_contains_anyThe answer contains at least one of, or none of, a list.
contains_allThe answer contains every value in a list.

Combining Multiple Conditions

You can attach sub-conditions to build compound logic:

  • AND — All sub-conditions must be true for the question to appear.
  • OR — At least one sub-condition must be true.

Sub-conditions can themselves have further nested sub-conditions for complex branching.


Question Order

Drag questions to reorder them. The Order value updates automatically. Conditional logic is always evaluated based on answers to questions that appear earlier in the sequence — a condition that references a later question will never trigger.