Surveys
This module lets non-technical admins build guided, multi-page surveys with configurable questions, controls, conditional visibility, frequency limits, and reporting metadata — all without writing code.
Quick start: build your first survey
- In the admin, go to Configuration → Features and enable:
CloudSolutions.Surveys- Optional:
CloudSolutions.Surveys.TypingTest - Optional:
CloudSolutions.Surveys.DesktopSimulator
- Go to Content → New → Survey.
- Enter the survey title and optional description.
- Add one or more Pages.
- Inside each page, add one or more Questions.
- Inside each question, add one or more Controls (input types such as List, Text, Numeric, Typing Test, Desktop Simulator).
- Configure control metadata (required, hints, limits, formatting, report colors, and optional Survey Control Group assignment).
- Add visibility rules if needed (show/hide logic).
- Configure frequency limits and anonymous settings on the survey.
- Publish and run a test interview.
Survey structure explained
| Term | What it means | Example |
|---|---|---|
| Survey | The full questionnaire | "Customer Onboarding Survey" |
| Page | A step/screen in the survey flow | "Profile Information" |
| Question | A question block on a page | "How satisfied are you?" |
| Control | The actual answer input inside a question | Dropdown, text box, number, typing test |
Think of it as: Survey → Pages → Questions → Controls.
Pages
Each Page is a separate screen that the respondent navigates through. Pages have:
- Title — displayed as the page heading.
- Description — optional rich-text context shown above the questions.
- Can Go Back — a toggle (via Survey Page Info) that controls whether the respondent can navigate backward from that page. Disable this on pages you do not want revisited.
- Visibility — conditional rules that show or hide the entire page based on prior answers (see Visibility / Conditional Logic below).
Questions
Each Question sits inside a page and groups one or more controls. Questions have:
- Title — the question text shown to the respondent.
- Description — optional rich-text shown below the title (supports HTML and Liquid shortcodes).
- Visibility — conditional rules at the question level, evaluated independently of page-level visibility.
Controls
Controls are the actual answer inputs inside a question. Each control has:
- Title — optional; useful when a question has multiple controls so each has an explicit label.
- Metadata — configuration specific to the control type (required, hint, limits, format, colors, group).
- Visibility — conditional rules at the control level, evaluated independently of page and question visibility.
Control types
| Control | What respondents do | Key metadata options |
|---|---|---|
| Predefined List | Select one or many preset options | Options list with labels, weights, colors; dropdown or radio display; min/max selections; Liquid value override |
| Text Value | Type free text | Single-line, multi-line, or email editor; min/max character length |
| Numeric Value | Enter a number | Min value, max value, decimal format (none, 1–4 decimals, currency) |
| Typing Test | Complete a timed typing passage | Speed and accuracy capture |
| Desktop Simulator | Interact with a simulated desktop | Outcome and score capture (requires Desktop Simulator module) |
Survey visibility (conditional logic)
Survey visibility lets you show or hide pages, questions, or controls based on prior answers — without any code.
Where to configure it
A Visibility section appears on:
- The Survey Page editor
- The Survey Question editor
- Each Control metadata editor (Predefined List, Text Value, Numeric Value, Typing Test, Desktop Simulator)
Visibility rules are evaluated independently at each level. A control can be hidden even if its parent question is visible, and a question can be hidden even if its parent page is visible.
How to configure visibility (step-by-step)
- Open the page, question, or control you want to make conditional.
- Find the Visibility section.
- Choose an Action:
- Always visible — no conditions applied (default).
- Conditionally show — only show this item when the rules pass.
- Conditionally hide — hide this item when the rules pass.
- Click Add rule group for each OR branch you need.
- Inside a group, click Add rule for each AND condition.
- For each rule, set:
- Source control — the control whose answer you want to check (entered as Source Control Id).
- Operator —
Is,IsNot,Contains,StartsWith,EndsWith,GreaterThan,LessThan,Empty,NotEmpty. - Value(s) — the expected answer (skip for
Empty/NotEmpty).
- Save and test with realistic answer paths.
Rule logic: AND inside a group, OR across groups
- Rules inside one group are all evaluated together (AND logic).
- Multiple groups are combined with OR logic — the item shows/hides if any group's rules all pass.
Example — show a question only for Sales OR Engineering:
| Group | Rule |
|---|---|
| Group 1 | Role Is Sales |
| Group 2 | Role Is Engineering |
Result: visible when either Sales or Engineering is selected.
How runtime visibility works
When a respondent progresses through the survey:
- The visibility engine evaluates all rules against the answers given so far.
- Hidden pages are skipped in navigation — the Back button also skips hidden pages.
- When an item becomes hidden, its values are cleared so hidden answers do not affect later rules or reports.
- Hidden required fields do not block form submission.
Demo scenario to practice with
New Hire Readiness Check
- Ask for role (
Sales,Support,Engineering).- Ask if they are remote (
Yes/No).- Show Home Office Setup questions only when Remote is
Yes.- Show Territory Readiness only when Role is
Sales.- Show Advanced Product Quiz only when Role is
SupportorEngineering.
Interview frequency limits
The Survey Restriction settings let you cap how many times a single user can complete a survey per day or per week, and control what times of day interviews are permitted.
Daily limit
Enable Daily Limit and set Max Daily Allowed to restrict how many completed interviews a user may submit within a single calendar day. If the limit is reached, the user sees a message and cannot start a new interview until the next day.
Weekly limit
Enable Weekly Limit and set Max Weekly Allowed to restrict how many completed interviews a user may submit within the current week. The week start day is determined by the site's configured day-of-week setting.
Daily time restrictions
Enable Daily Restriction to control when interviews may be taken on each day of the week. For each day you can set:
| Option | Behaviour |
|---|---|
| Allow All | No time restriction on this day |
| Prevent All | Interviews are blocked for the entire day |
| Limit Time | Set a From and To window — interviews are only allowed within that window |
These restrictions apply per respondent. If a user attempts to start an interview outside the allowed window they see a clear error message.
Anonymous surveys
By default, interviews are tied to the logged-in user. Enabling Allow Anonymous on the survey removes the user association so responses are stored without identifying who submitted them.
When to use it:
- Public-facing surveys where no login is required.
- Internal surveys where you want honest feedback without attributing answers to individuals.
How to enable it:
- Open the survey in the admin editor.
- Find the Anonymous Survey section.
- Check Allow Anonymous.
- Save and publish.
Note: Anonymous interviews still record the completion timestamp but do not record a user ID. Reports will show the entry without a name in the "Completed By" column.
Survey Control Groups
Survey Control Groups let you organize controls into named buckets and automatically add summary columns (total, average, or a custom Liquid formula) to reports.
What a Survey Control Group does
- Groups related controls together under a shared heading in the report.
- Adds optional summary columns after the group's individual control columns:
- Total — sums all numeric values in the group for that row.
- Average — averages all numeric values in the group for that row.
- Liquid — runs a custom Liquid formula against the row's inputs and outputs the result.
- Lets you customize column titles for total, average, and Liquid columns.
- Supports a Sort Order field to control where the group appears relative to other groups in the report.
Setting up a Survey Control Group
- Go to Content → New → Survey Control Group (or find it in the content list).
- Give it a descriptive title (for example, "Communication Skills").
- Configure the group options:
- Check Show Total and/or fill in Total Column Title if you want a sum column.
- Check Show Average and/or fill in Average Column Title if you want an average column.
- Check Show Liquid, enter a Liquid Column Title, and write a Liquid expression if you want a custom computed column.
- Publish the group.
- Open each control that should belong to this group.
- In the control's metadata, find Survey Control Group Selector and choose your group.
- Save and publish the control.
Liquid expressions in a control group
The Liquid expression in a group has access to an Inputs array — each element is a content item representing a control's captured answer. This lets you write cross-control formulas.
Example — combine two numeric controls:
{{ Inputs | where: "ContentItemId", "abc123" | first | property: "NumericValueSurveyControlPart.Value" | plus: Inputs | where: "ContentItemId", "def456" | first | property: "NumericValueSurveyControlPart.Value" }}
Keep Liquid expressions short and test them with real sample data before publishing.
Control colors and Liquid overrides
Per-option colors (Predefined List)
Every option in a Predefined List control can have its own background color and font color. When a respondent selects that option, the matching color is applied to the corresponding report cell — both in the on-screen report view and in the Excel export.
Where to set colors:
- Open the Predefined List control in the admin editor.
- In the Options section, find the option you want to color.
- Set Background Color (hex color, e.g.
#FF0000) and/or Font Color. - Save.
How colors flow into reports:
- The report reads the selected option's color and applies it directly to the Excel cell.
- Background color sets the cell fill.
- Font color sets the cell text color.
- If a respondent's selection has no color configured, the cell uses the default report styling.
Use colors consistently across options so reports are easy to scan. For example, use green for "Excellent", amber for "Acceptable", and red for "Poor".
Option weights (Predefined List)
Each option can also have a Weight — a numeric value used in sum and average calculations for control groups. Weights let you score a qualitative list (e.g., "Poor" = 1, "Acceptable" = 3, "Excellent" = 5) so control group totals and averages are meaningful.
Liquid value override (Predefined List)
The Override report value option on a Predefined List control lets you replace the raw selected value with a computed Liquid expression in the report. This is useful when you want the report to show a score or formula result instead of the option label.
How to enable it:
- Open the Predefined List control metadata.
- Check Override report value.
- Enter a Liquid template in the text area.
Available Liquid variables:
| Variable | Description |
|---|---|
total | Sum of the weights of all selected options |
average | Average of the weights of all selected options |
Example:
{% if total >= 4 %}Excellent{% elsif total >= 2 %}Good{% else %}Needs Improvement{% endif %}
When an override template is active, the override result appears in the report cell and in the control group's sum/average columns instead of the raw option label.
Validation: If the Liquid template is invalid, the admin editor shows an error and prevents saving. Always test templates with representative data.
Numeric Value formatting
Numeric controls support several display formats that apply when the value is shown in a report:
| Format option | Example output |
|---|---|
| No decimals | 42 |
| 1 decimal | 42.0 |
| 2 decimals | 42.00 |
| 3 decimals | 42.000 |
| 4 decimals | 42.0000 |
| Currency | $42.00 |
The format is set in the control's metadata editor. Choosing "Currency" automatically sets a two-decimal scale.
Best-practice checklist
- Start with a simple draft — few pages, few questions — and expand from there.
- Use clear question titles and hints so respondents know exactly what to enter.
- Add required validation only where truly necessary; too many required fields increase abandonment.
- Configure frequency limits early so test interviews do not use up daily or weekly quotas.
- Set option weights before assigning colors — both belong to the same option configuration.
- Add visibility rules gradually and test every path before publishing.
- Keep Liquid expressions and value overrides minimal; complex expressions are harder to debug.
- Re-test after changing page order, deleting questions, or renaming controls referenced by visibility rules.
Optional related features
- Surveys Teams (
CloudSolutions.Surveys.Teams) — team-aware interview and report behavior. - Surveys Charts (
CloudSolutions.Surveys.Charts) — chart-based reporting surfaces. - Survey Typing Test (
CloudSolutions.Surveys.TypingTest) — typing speed and accuracy controls. - Surveys Desktop Simulator — simulator-based control input and scoring.