I think Rpapaux probably provided the answer I think your after, but wanted to be sure. The first time I read through the post I took it a different way.
i noticed you can use a variable in the configuration template. But this variable is fixed for all switches you apply the template on.
If you place a variable like ${interface 1 desc} in the template, then it will always be "interface 20 desc" everytime you deploy the template, but you can obviously populate it with any value you want.
If you deploy the template to 20 switches it will give you the option to either use the same value for all switches in the deployment task, or to step through each switch so you can provide a different value. On top of that a more recent feature gives you the ability to export a parameter file for the deployment, then import it with the values (or you can just import as long as you follow the required format of the csv). Either way you can provide a different value for the variable on each of the 20 switches.
I'd try the system variable Rpapaux mentioned though. If the sysname is what you're after as the int desc. then that would be less effort than filling in the value for 20 switches.
PL