You are correct that when linking a System Variable to an external source, QIE will use the entire response as the variable contents. In order for QIE to use just a part of a response, you would need to update that variable from either a Mapping Node in your channel, or a Scheduled Script that runs periodically.
One option that may work for you is to call your app store API from a Scheduled Script where you can have some code to pull the specific items out of the response and store just those items. Scheduled Scripts are accessed by clicking on the Source node of your channel, and then the Scheduled Scripts tab.
The Credentials type System Variable is read-only, as you found, and cannot be updated either from an external source, or from a channel/scheduled script. You can use a String type System Variable, but be aware that your credentials will be stored in plain text.
Perhaps a better option is to use a Script Variable (click on the Source node in your channel, then go to the Script Variable tab). Script Variables can be set to a scope setting of Channel, meaning they persist even when no messages are traversing the channel. You would set the Script Variable within a Scheduled Script, and you would have two Script Variables (one for the user ID, one for the password). You cannot view the Script Variables within the GUI, which offers a bit more security than a String type System Variable.
To access a Script Variable within your channel, you simply use it like a locally defined variable. Whereas with a locally defined variable you need to initialize it within the mapping node (i.e. var localVariable;), Script Variables are already defined, and since you're populating them with a Scheduled Script, you simply would use them in your code as a normal variable.
Feel free to contact us at support@qvera.com if you have any questions or need help using a Script Variable, or anything else pertaining to QIE.
