Skip to main content

XM Solution Plugin Configuration

This guide discusses the details and schema of configuration options specific to XM Solution Plugins.

If you would like to join the early access program for XM Solution Plugins, then please let us know by taking this survey.

Not generally available

This feature is in Early Access and is not yet generally available. Functionality, APIs, and documentation may change before general availability.

Prerequisites​

Before continuing with this guide, we recommend you review and complete the XM Solution Deep Dive

What is the config file?​

All plugins have configuration stored in the config.json file. XM Solution plugins have additional configuration in that file. For details about config.json that are not specific to XM Solutions, check out this page.

Options specific to XM Solutions are all inside of the metadata object.

Full list of additional properties​

NameTypeEditableDescriptionExample
accessControlsObjectYesDetermines which permissions a user must have in order to be able to view or create the XM Solution.{}
AUTO_GENERATED_ACCESS_CONTROLSObjectNoThese are access controls that have automatically been detected that users will need in order to properly use the XM Solution."workflows_task"
baseLanguageStringYesThe language the XM Solution plugin was originally created in.“en”
languagesArrayYesAll languages (including the baseLanguage) that the XM Solution plugin is translated into.["en", "es"]
deprecatedbooleanYesIf true, your XM Solution plugin will not be listed in the Catalog. Existing instances will still work properly if it's deprecated.false

Understanding languages​

The baseLanguage field can be edited directly if you're developing an XM Solution in a language other than English.

The languages field is a list of all languages your XM Solution is available in. You should NOT edit this field directly. Instead, use provided commands to make sure you're only adding valid language codes. You can use solution add-lang --list to see the full list of valid languages.

Then, you can use solution add-lang <language codes> to add a language to your plugin. That command will edit the languages field in the config.json file automatically.

You can see the full XM Solution plugin translation guide here

Understanding Access Controls​

The accessControls field specifies required access controls that a user must have enabled on their account to be able to view your XM Solution plugin in addition to having the extension enabled in their account.

You will want to add to the accessControls map if you are aware of permissions in the Qualtrics product that your users must have. If they are not added, then users may experience errors as they try to make your XM Solution.

However, in most cases, you will not need to add anything to accessControls. When you build your XM Solution, AUTO_GENERATED_ACCESS_CONTROLS is populated with permissions that will be required.

Common Access Controls​

If your XM Solution plugin uses another XM Extension, then you will need to add that to accessControls. The entry will look something like this:

{
"accessControls": {
"AccountPermissions": [
"createSurveys"
],
"BX": [],
"CX": [],
"CustomPermissions": [],
"EX": [],
"Extension": [
"EXTENSION_ID_GOES_HERE"
],
"PX": [],
"ProjectPermissions": [],
"QuestionPermissions": [],
"RC": []
},
// ...
}

In the example above, one extra control is added to the Extension provider and all others were left empty.

Advanced guide​

In the Qualtrics product, there are different categories of permissions. The accessControls field has a list for each of these categories, so you can specify as many access controls per category as you'd like.

The Extension category is used to add other Extensions as dependencies of this plugin, and all other providers refer to controls that can usually be found in the Admin UI of the Qualtrics product.

Finding controls​

To find a list of most Qualtrics permissions, log in to your Qualtrics account and navigate to the Admin -> Users section of the Qualtrics product. Click on your user to view your permissions.