SurveyJS v2.3.8
Released: September 23, 2025
SurveyJS v2.3.8 introduces an integration example with Grafana, adds support for validation warnings and informational notes alongside errors, enables dynamic control over which elements can be added in Survey Creator, and provides a new Dashboard option to lock visualizer types.
Grafana Integration Example
Grafana is an open-source platform for monitoring and visualizing metrics. We have created a GitHub repository with an example showing how to integrate SurveyJS with Grafana, calculate statistics from user responses, and visualize them.

The example includes the following parts:
- SurveyJS for survey data models
- Node.js + MongoDB backend for storing surveys and user responses, computing statistics, and handling Grafana queries
- NLP service for sentiment and text analysis
- Redis caching for faster performance
- Grafana plugin for visualizing survey data in real time
Validation Warnings and Informational Notes
SurveyJS now supports validation warnings and informational notes in addition to errors. Warnings highlight potential issues, and informational notes provide guidance, but neither blocks respondents from continuing the survey.

To display a warning or informational note, define a validator with the notificationType
property set to "warning"
or "info"
. For best results, enable immediate validation by setting checkErrorsMode
to "onValueChanged"
:
{
"checkErrorsMode": "onValueChanged",
"elements": [{
"type": "comment",
"name": "feedback",
"title": "Please leave your feedback",
"validators": [{
"type": "text",
"minLength": 10,
"text": "Your feedback is very short. Consider adding more details.",
"notificationType": "warning"
}]
}, {
"type": "text",
"name": "email",
"title": "Email address",
"validators": [{
"type": "expression",
"expression": "false", // Always fails
"text": "We'll get in touch with you using this email.",
"notificationType": "info"
}]
}]
}
If multiple notification types are eligible to be displayed for a question, only the strongest type is shown. Warnings appear only after all errors are resolved, and notes appear only when there are no errors or warnings.
[Survey Creator] Dynamically Restrict Which Elements Can Be Added
Survey Creator v2.3.8 introduces the onAllowAddElement
event. This event is raised before adding an element to a survey and allows you to cancel the addition.
For example, the following code disallows users to add more than three Dynamic Panels to a survey:
// ...
// Omitted: `SurveyCreatorModel` creation
// ...
creator.onAllowAddElement.add((_, options) => {
if (options.name === "paneldynamic") {
// Retrieve all visible questions, including design-time and nested
const questions = creator.survey.getAllQuestions(true, true, true);
questions.filter(q => q.getType() === "paneldynamic");
options.allow = questions.length < 3;
}
});
[Dashboard] Disallow Changing Visualizer Types in the UI
SurveyJS Dashboard introduces the allowChangeVisualizerType
property. Set it to false
to hide the UI controls for switching visualizer types:
import { VisualizationPanel } from "survey-analytics";
const surveyQuestions = { /* Survey questions */ };
const surveyResults = [ /* Survey responses */ ];
const vizPanelOptions = {
allowChangeVisualizerType: false
};
const vizPanel = new VisualizationPanel(surveyQuestions, surveyResults, vizPanelOptions);
New Demo
Bug Fixes and Minor Enhancements
Form Library
- Expressions: No API to access comments for individual choice options in a Checkboxes question (#10378)
- Multi-Select Dropdown (Tag Box) doesn't load choice display values when
allowCustomChoices
is enabled andchoicesByUrl
containsvalueName
andtitleName
(#10351) - Dropdown in read-only mode: Selected option’s display value is not updated when loaded lazily via
onGetChoiceDisplayValue
(#10370) - Composite question type: Extra numbering symbol appears on the design surface in Survey Creator (#10389)
- Single-Select Matrix: Hidden rows are validated when
eachRowRequired
is enabled (#10395) - Numeric Single-Line Input: Step validation fails for certain decimal values (#10393)
- Cannot insert spaces into the Other input field when
textUpdateMode
is"onTyping"
(#10402) - Specialized question type built on Dynamic Panel: Panels disappear when entering field values (#10403)
Survey Creator
- Theme tab: Basic/Advanced header toggle stops working after theme reset (#7156)
showSidebar: true
has no effect on initial render on smaller screens (#7153)
Dashboard
- Composite question type panel ignores the
defaultQuestionTitle
property (#627)
How to Update SurveyJS Libraries in Your Application
Angular
npm i survey-core@v2.3.8 survey-angular-ui@v2.3.8 --save
npm i survey-creator-core@v2.3.8 survey-creator-angular@v2.3.8 --save
npm i survey-analytics@v2.3.8 --save
npm i survey-pdf@v2.3.8 --save
React
npm i survey-core@v2.3.8 survey-react-ui@v2.3.8 --save
npm i survey-creator-core@v2.3.8 survey-creator-react@v2.3.8 --save
npm i survey-analytics@v2.3.8 --save
npm i survey-pdf@v2.3.8 --save
Vue.js
npm i survey-core@v2.3.8 survey-vue3-ui@v2.3.8 --save
npm i survey-creator-core@v2.3.8 survey-creator-vue@2.3.8 --save
npm i survey-analytics@2.3.8 --save
npm i survey-pdf@2.3.8 --save
HTML/CSS/JavaScript
<link href="https://unpkg.com/survey-core@2.3.8/survey-core.min.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/survey-core@2.3.8/survey.core.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/survey-js-ui@2.3.8/survey-js-ui.min.js"></script>
<script src="https://unpkg.com/survey-core@2.3.8/themes/index.min.js"></script>
<script src="https://unpkg.com/survey-creator-core@2.3.8/themes/index.min.js"></script>
<link href="https://unpkg.com/survey-creator-core@2.3.8/survey-creator-core.min.css" type="text/css" rel="stylesheet">
<script src="https://unpkg.com/survey-creator-core@2.3.8/survey-creator-core.min.js"></script>
<script src="https://unpkg.com/survey-creator-js@2.3.8/survey-creator-js.min.js"></script>
<link href="https://unpkg.com/survey-analytics@2.3.8/survey.analytics.min.css" rel="stylesheet">
<script src="https://unpkg.com/survey-analytics@2.3.8/survey.analytics.min.js"></script>
<script src="https://unpkg.com/survey-pdf@2.3.8/survey.pdf.min.js"></script>
<script src="https://unpkg.com/survey-pdf@2.3.8/pdf-form-filler.min.js"></script>