TABLE OF CONTENTS
- Details Fields
- Custom Form Fields
- Special Controls
- Further Support
Details Fields
Details fields come from the primary record that the survey is targeting. e.g FirstName, LastName from a User Migration Survey. There are a couple of items of note when working with the Details Fields:
- Read / Write - All fields from the details can be shown to the user to allow them to see and edit the data. However, 'Process / Sub Process' can not currently be edited by a user.
- Labels - The label above a field comes from the name it has in the main UI. This label can be overridden by putting the new label in the 'Special Control Text' box. e.g. 'SAM Account' in the client UI might be too technical for users and overridden to 'Windows Login' on the Survey.
Custom Form Fields
Custom Forms allow the creation of any data type such as dropdown lists, check boxes, data pickers etc to collect information pertinent to the Project. Custom Forms are setup in the Admin section here. This information can be accessed in a survey under the Display Fields Section.
To display a custom form field add a new field:
Special Control: Text (Parsed)
Special Control Text for an application survey with field Id 123: [Applications-CustomForm-123]
Special Controls
Layout Controls
A number of layout controls are available to customise the look of a Survey. They do not save any data back to the survey.
- Header
- Adds a bold line of text
- Text (Parsed)
- Text is put through the keyword parser
- Line
- Adds a horizontal line
- Spacer
- Adds a horizontal blank space
Special Control - Info
The 'Info' control primarily used to display a block of text to the user. The text is read from the 'Special Control Text'. The text is also passed through the Keyword parsing engine giving it the ability to populate keywords such as [UM-FirstName], support markdown formatting, and raw Html.
Markdown / HTML Support
The info control automatically passes all text though the markdown parser, to disable markdown add #markdown-off# to the end of the text.
Keywords
See this article for full instructions on how to use ManagementStudio Keywords.
Images:
Images can be added to the page using raw HTML, Markdown, or project resource keywords.
Ex 1. Markdown image with Resource Id

Ex 2. Markdown image with Resource Name

Ex 3. Html image with Resource Id
<img src="[Project-Url-Resource-7]" alt="Windows 10 Project Logo">
Ex 4. Html image with Resource Name
<img src="[Project-Url-Resource-Win-10-Logo.png]" alt="Windows 10 Project Logo">
Ex 5. Html image with Resource Name
<img src="http://server/site/Win-10-Logo.png" alt="Windows 10 Project Logo">
Arguments (Args)
Arguments provide a way to further customise some of the special controls on the survey. Multiple args can be chained together but must be separated by a semi-colon. Some Args support a list off values, these must be separated by a comma. All spaces are ignored i.e. "ShowAs : Path ;" is the same as "ShowAs:Path;". Args can span several lines but still require a semi-colon to terminate.
Format:
An Arg has a name followed by a colon, then a value and terminated by a semi-colon.
Format: [name] : [value] ;
Example 1: ShowAs : Path;
Example 2: ShowAs:Path;OnChange:Move;CanSelectNone:Yes;
Exmaple 3: Columns:AppVendor, AppVersion, AppName;
Note: The semi-colon is always required even if there are new lines between args.
Blueprint Dropdowns
Shown as Dropdown, 'Special Text' shows as the label of the dropdown.
Available Args
Default Args:
ShowAs: Path; OnChange: Move; CanSelectNone: Yes;
- FolderId:
- [Number] = The FolderId in Blueprint tree to start displaying from.
- Note: if no Folder Id is provided then the whole Blueprint tree will be shown in the dropdown.
- CanSelectNone:
- 'Yes': Adds a "Select None" option
- 'No': Does not add a "Select None" option
- Note: If a User is not a member of any of the Blueprints available list then the 'Select None' option will be selected by default regardless of the 'CanSelectNone' arg being set to No.
- ShowAs:
- 'Path': Folder1\Folder2\Blueprint
- 'Name': Blueprint
- OnChange:
- 'Move': If a new Blueprint has been selected then the user is removed from all other Blueprints shown in the dropdown and added to the newly selected Blueprint.
- 'Add': If a new Blueprint has been selected then the user will be added to the new Blueprint. The Blueprints they are currently a member of will not be changed.
Example Args
FolderId: 5; ShowAs: Name; OnChange: Add; CanSelectNone: Yes;
FolderId 10; ShowAs: Path; OnChange: Move; CanSelectNone: Yes;
Datamining Report
Inject a datamining report into a Survey Page. The Id from the Survey, i.e. AppId, MigrationId, DeviceId, etc will be used as the data source of the report.
The allows reports such as User-App Readiness to be added to a User's Survey.
- ReportId
- The Id of the Datamining Report to inject
- e.g. ReportId: 7;
- ReportName
- The name of the Datamining Report to inject
- e.g. ReportName: User Self-Schedule Report;
- Columns
- Optional. A list of Columns from the Datamining Report to display
- e.g. Columns: Expression_ScheduleUser, Expression_FullName, UserMigrations_DeployUnitSlotStart;
- TableStyle
- Optional. html style to inject into style tag of html table
- e.g. table-sm;
- More Info
ReportName: User Self-Schedule Report;
Columns: Expression_ScheduleUser, Expression_FullName, UserMigrations_DeployUnitSlotStart, Expression_Locked;
Notes List
Add a list of Notes from the Application, User, Device, etc. By default notes on an item are 'private'. This means those notes will not show on the Survey.
- MaxHeight
- The number of pixels in height before a scroll bar is shown
- Default is 300 which shows approximately two notes.
- Setting the value to -1 will remove the scroll bar altogether.
- e.g. MaxHeight : 300;
- ShowPrivateNotes
- Setting to true will force Public and Priave notes to show on the Survey
- e.g. ShowPrivateNotes : True;
MaxHeight: 500;
ShowPrivateNotes: True;
Blueprint List
Adds a list of Blueprints for an Application, User, Device, etc to the Survey.
- ShowAs
- Toggles between the full Blueprint Path / Blueprint Name
- e.g. ShowAs : Name;
ShowAs: Name;
Link Tables
Displays a table of links, e.g. List of Apps for User, List of Devices to User. The special text field will display as the header text above the table of links. The table will be sorted alphabetically by the left column first and each column to the right thereafter.
'Keep' Checkbox
When displaying the list of e.g. Apps for a User or Devices for a User a checkbox titled 'Keep' is displayed next to the listed item. This allows users to untick that item and have it removed from their profile.
e.g. A User can unselect all the Applications they do not use.
To Hide this check box add the arg ' AllowRemove: No; '
Custom Button
A Custom button is available to hook into and will be displayed next to the listed items. This allows custom functionality such as allowing a user to select a specific device and have that flagged as their main device for migration.
To use this custom button provide a 'CustomButtonScriptId : XX' where XX is the Id of the PowerShell Script to call. The script will be provided the Id of the active User, App, Device etc in the $ScriptArgs.Items and the Id of the selected item in the $ScriptArgs.AltItems
Available Args
Default Args:
Columns:AppVendor, AppVersion, AppName;
AllowRemove: Yes;
CascadeRemove: Yes;
CustomButtonScriptId: 99;
CustomButtonLabel: My Button Label;
CustomButtonStyle: btn-secondary btn-sm;
- Columns:
- List of columns to show in the links table. Uses internal default if none specified.
- AppVendor, AppVersion, AppName
- Default: AppVendor, AppVersion, AppName (or equivalent for the item)
- List of columns to show in the links table. Uses internal default if none specified.
- AllowRemove:
- Shows a checkbox beside the link that allows a user to 'Reject' the link
- 'Yes': Shows the remove checkbox
- 'No': 'Does not show the remove checkbox.
- Default: 'Yes'
- CascadeRemove:
- Rejects all links for this item. e.g. If rejecting 'Adobe Reader 7', it will reject all links 'Adobe Reader 7' if present on more than one device. However, if a user rejects a device it would reject all apps linked to that device.
- 'Yes': Will cascade the reject action.
- 'No': Does not cascade the reject action.
- Default: 'Yes', however, it is recommended to change this to 'No' for Device Surveys.
- SortBy
- Sorts the list by a column, e.g.
- "SortBy: AppVendor, AppName, AppVersion;"
- Note: The columns that are being used in the Sort must be in either the selected Columns list or the Filter list.
- Sorts the list by a column, e.g.
- Style
- Override the default bootstrap style applied to the table
- Default: 'table-sm table-bordered'
- e.g. Stripped rows: Sty;e: table-striped
- More Style Examples: https://getbootstrap.com/docs/4.0/content/tables/
- Filter:
- Filters the table of items shown on the survey.
- All the field names found on the 'Grid Config' page of the item's admin tab can be used
- Use the 'Internal Name' value
- e.g. AppVendor, ProcessStatus
- Use the 'Internal Name' value
- Supports
- And
- Or
- =
- <>
- 'Like' with '%' as wildcards
- 'IN (1, 2, 3)' e.g. ProcessId IN (7, 3, 6)
- Grouping by brackets
Pro Tip: Adding a scroll bar to the Link Table
Add the below CSS to the Survey and replace the 'XXX' with the FieldId of the Link Table
#survey-group-id-XXX {
max-height: 300px;
overflow: auto;
display:inline-block;
}
Custom Button Example
Create a custom button for a User's Device list that when selected will write the Hostname of the selected Device to a Custom Field. A use case would be asking the User for the main device that they need to migrate. Please refer to this article for more information on creating a Custom button in a survey.
- Create the PowerShell Script
- Add the Custom Button to the Link-Devices
PowerShell Script
Link-Devices configured to show Custom Button
Output on Survey
Filter Examples:
Is in Process A, B or C
Filter: Process = '1. Identified' OR Process = '2. Discovery' OR Process = '3. Packaging';
Is in Process A or B and not Package Type C
Filter: (Process = '1. Identified' OR Process = '2. Discovery') AND PackageType <> 'MSI';
Is from Vendor A and in Process B
Filter: AppVendor like '%Adobe%' AND Process = '2. Discovery';
Has Flag A set or in Process B
Filter: CustomFlag1 = true OR Process = '2. Discovery';
ProcessId is in a specific list of Process Ids
Filter: ProcessId IN (7, 3, 6);
More Examples:
Columns: AppVendor, AppName, AppVersion;
Filter: ProcessId IN (7, 3, 6);
SortBy: AppVersion
Add [Module] Links
Available special controls:
- Add Application Links
- Add User Migration Links
- Add Device Links
- Add Mailbox Links
- Add Bespoke Links
Add an option to a survey where the module can be searched (eg. for an application name) and added as a link.
This control is very useful for a user survey where an existing application is not linked to a user, but there's a requirement to offer the user the option to search for, and link new applications to their User Migration record.
It's suggested that this option is used in below the Links Table field so that any newly added items are displayed in the Links Table as they are added. This also gives the user the option of removing that item if they made is mistake in adding it.
Setup:
Resulting survey:
Script Button
Adds a button to the form that can call a PowerShell Script and then reload the page after the script is finished executing. This allows for custom functions such as calculating a value based on some previous questions or looking up a user in AD and retrieving some information on them.
Use the 'Special Control Text' to set the label of the button shown on the Survey.
Note
- When as script button is clicked, all data on the survey is saved, the script is run and the page reloaded.
- Events such as survey passed/failed or sending emails do not fire.
- Script buttons do not trigger field validation when clicked
Available Args
- ScriptId:
- Script Id to execute. The script will be passed the Instance Id of the active page.
- Args1 , Args2, Args3:
- Values are passed into the called script in the EventArgs1,2,3 fields
- Style:
- Sets the button style, default is "btn btn-primary"
- eg: Style: btn btn-warning btn-block;
Show / Hide
Allows Fields on the Survey to be hidden until a checkbox has been ticked. This is used to simplify the look of complex forms. E.g. Hide a group of accessibility questions can be hidden until a user ticks a box marked 'Accessibility Requirements'.
The Show / Hide control must be paired with a checkbox or Dropdown field of a custom form.
The checkbox/Dropdown is used to trigger the show/hide event. This is the only line that requires the "Show\Hide" Special Control assigning for the show hide group.
The Field Ids to hide\show are the Survey IDs in the survey designer, they are NOT CustomField Id's from the custom form screens.
Available Args
- FieldIds:
- List of Field Ids of controls to hide on the form.
- E.g. 10, 11, 12
- List of Field Ids of controls to hide on the form.
- [dd-Value]:ids
- The value from the dropdown trigger on
- The list of ids to show
Checkbox Examples:
List the field ids to show if this check box is ticked. If it is not ticked then these field Ids will be hidden.
FieldIds: 29, 27, 26, 25, 24, 30, 28;
Dropdown or Radio Button Examples:
List each item in the dropdown on a new line with Ids of fields to show if that item is selected. Note all other fields will be hidden. Terminate each line with a ';'
North: 1, 2, 3;
South: 4, 5, 6;
East: 7, 8, 9;
West: 10, 11, 12;
If Dropdowns or Radio Buttons are to defined it may be necessary to also user FieldIds: as before a Dropdown or Radio Button is selected all fields will be turned on.
In the example above the following may also need to be added.
FieldIds: 1,2,3,4,5,6,7,8,9,10,11,12;
Attachments Uploader
Allows files to be attached to the Survey. These can be used to gather additional requirements such as screenshots.
Control Switches Support:
Required | Read Only | Change Triggers Fail | Visible | On New Line | |
---|---|---|---|---|---|
Textboxes | Yes | Yes | Yes | Yes | Yes |
Dropdowns | No | Yes | Yes | Yes | Yes |
Radio Buttons | Yes | Yes | Yes | Yes | Yes |
Listboxes | Yes | Yes | Yes | Yes | Yes |
Checkbox | No | Yes | Yes | Yes | Yes |
Checkbox List | No | Yes | Yes | Yes | Yes |
Blueprints | No | Yes | Yes | Yes | Yes |
Links | No | Yes | Yes | Yes | Yes |
Show / Hide | No | No | No | Yes | Yes |
Tweaks and Options
Checkboxes
By default, the text label of a checkbox is moved to the right of the checkbox rather than above it like most other controls. This can leave a gap above the checkbox that can look out of place. Text can be added to the 'Special Control Text' field of the checkbox and this text will appear above the checkbox to fill in the gap.
Further Support
If you require further support, please visit ManagementStudio's Service Desk to search the knowledge base or create a new support ticket.