release notes

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.

SurveyJS Grafana integration

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

View on GitHub

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.

SurveyJS: Validation warnings and informational notes

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"
    }]
  }]
}

Open in Plunker

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;
  }
});

Open in Plunker

[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

AI-Powered Survey Design Chat

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 and choicesByUrl contains valueName and titleName (#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>

Your cookie settings

We use cookies to make your browsing experience more convenient and personal. Some cookies are essential, while others help us analyse traffic. Your personal data and cookies may be used for ad personalization. By clicking “Accept All”, you consent to the use of all cookies as described in our Terms of Use and Privacy Statement. You can manage your preferences in “Cookie settings.”

Your renewal subscription expires soon.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.

Your renewal subscription has expired.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.