This directory contains survey configurations that are published to user-feedback.xml for consumption by Devolutions products (RDM, DVLS, Hub).
Surveys are Markdown files in this directory. Product Marketing (or a developer) edits them in git; the Astro build publishes /api/user-feedback.xml.
/api/user-feedback.xml from enabled surveys (astro:build:done, and the same generator in astro:dev)Files should be named descriptively to indicate their purpose:
{product}-{platform}-{language}.mdrdm-windows-feedback-english.mdrdm-linux-feedback.mddvls-windows-admin-survey-french.md| Field | Description | Format | Example |
|---|---|---|---|
surveyId |
Unique identifier (GUID) | UUID | 781bce4c-c31e-4514-b08a-ab70638136d4 |
surveyUrl |
Survey URL | URL | https://example.com/survey |
message |
Message shown to user | Text | Share your RDM experience |
platform |
Target platform | Select | Windows, Mac, Linux, All |
minVersion |
Minimal product version | A.B.C.D |
2025.3.14.0 or 0.0.0.0 for all |
endDate |
Survey end date | YYYY-MM-DD |
2026-09-30 |
type |
Feedback type | Select | Survey (only option for now) |
| Field | Description | Default | Options |
|---|---|---|---|
datasource |
Datasource type | All |
All, SQLServer, DVLS, Cloud, Hub, HubBusiness, HubPersonal (latter three kept for legacy app compatibility) |
language |
Survey language | All |
All, English, French, German, Other |
license |
License type | All |
All, Free, Licensed |
product |
Target product | All |
All, RDM, DVLS, Cloud, Hub, HubBusiness, HubPersonal (latter three kept for legacy app compatibility) |
userType |
User type | All |
All, Admin |
| Field | Description | Default |
|---|---|---|
_enabled |
Whether survey is active | true |
_draft |
Draft status (won't be published) | false |
⚠️ CRITICAL: The surveyId must be identical for all language variants of the same survey.
For example, if you have a survey in English, French, and German targeting the same audience:
rdm-windows-feedback-english.md → surveyId: 781bce4c-c31e-4514-b08a-ab70638136d4rdm-windows-feedback-french.md → surveyId: 781bce4c-c31e-4514-b08a-ab70638136d4 (same!)rdm-windows-feedback-german.md → surveyId: 781bce4c-c31e-4514-b08a-ab70638136d4 (same!)This allows the application to track that a user has already seen the survey, regardless of which language version they saw.
Not all product versions support all fields:
Data, ID, Message, Platform, MinVersion, EndDate, Type)Datasource, Language, License, Product, UserType)The build system will include all fields in the XML, but older application versions will simply ignore fields they don't understand.
Optional fields may be left empty if you want to target:
.md file in apps/website-devolutions/content/surveys/.md file in this directory/api/user-feedback.xmlTo stop showing a survey without deleting it:
.md file_enabled to falseThe survey will be excluded from the next XML generation.
.md fileNote: Deleted surveys are permanently removed. Consider disabling instead if you might want to reuse it later.
When creating surveys in multiple languages:
surveyId for all language variants
language field appropriately
English, French, German, or Othermessage field
surveyUrl the same OR use language-specific survey links
English version (rdm-windows-feedback-english.md):
surveyId: '781bce4c-c31e-4514-b08a-ab70638136d4'
surveyUrl: 'https://example.com/survey?lang=en'
message: 'Share your RDM experience'
language: 'English'
platform: 'Windows'
minVersion: '2025.3.14.0'
endDate: '2026-09-30'
# ... other fields
French version (rdm-windows-feedback-french.md):
surveyId: '781bce4c-c31e-4514-b08a-ab70638136d4' # SAME ID!
surveyUrl: 'https://example.com/survey?lang=fr'
message: 'Partagez votre expérience RDM'
language: 'French'
platform: 'Windows'
minVersion: '2025.3.14.0'
endDate: '2026-09-30'
# ... other fields
pnpm run build:website-astrodist/api/user-feedback.xml in a text editorpnpm --filter @devolutions/website run devhttp://localhost:8080/api/user-feedback.xmlProduct teams can test surveys by:
minVersion requirementThe generated XML follows this structure:
<?xml version="1.0" encoding="UTF-8"?>
<UserFeedback>
<FeedbackEntities>
<FeedbackEntity>
<Data><![CDATA[survey URL here]]></Data>
<Datasource>All</Datasource>
<EndDate>2026-09-30</EndDate>
<ID>unique-guid-here</ID>
<Language>English</Language>
<License>All</License>
<Message>Survey message here</Message>
<MinVersion>2025.3.14.0</MinVersion>
<Platform>Windows</Platform>
<Product>RDM</Product>
<Type>Survey</Type>
<UserType>All</UserType>
</FeedbackEntity>
<!-- More surveys... -->
</FeedbackEntities>
</UserFeedback>
Check:
_enabled set to true?_draft set to false?Check:
language field set correctly?Check:
minVersion?platform field?endDate passed?Check:
surveyId values?
This tool replaces the previous manual process where surveys were added via Pull Request to user-feedback-dynamic.njk (renamed to user-feedback-dynamic.liquid as part of the Nunjucks → Liquid migration, see WEB-3202).
Old Process:
user-feedback-dynamic.njk<FeedbackEntity> blocksNew Process:
/api/user-feedback.xmlFor questions or issues:
user-feedback.xmlpublic/api-temp/user-feedback.xmlLast Updated: November 12, 2025
Maintained By: Web Development Team