In our old ticket system we have a lot of reply templates that contain placeholders, e.g. something like this:
Hello,
I've set up a test license for you. It's valid until DATE.
The login details for the installation are:
Host name: HOSTNAME
Update password: PASSWORD
The agent should then go ahead and replace these placeholders with proper values before sending the reply. This can unfortunately lead to awkward incidents when the agent accidentally misses one of these placeholders and leaves it as-is in his reply
Zammad already has a major advantage here because we can use smart variables in text modules, but of course that doesn’t really help with placeholders like these, where the proper value has to be input by the agent. I believe that a feature for this purpose might be useful to other people, so here is how I imagine it could work:
-
In the text module source code, you can specify placeholders with a special syntax, e.g.
#[DATE]
,#[HOSTNAME]
,#[PASSSWORD]
. The text between the braces is arbitrary (ie. the admin chooses them), maybe limited to strings matching the regex\w+
. Nesting placeholders or smart variables is especially not allowed.
Not sure how similar the syntax should be to the smart variable syntax#{}
, maybe#[]
is too similar? -
When an agent uses the text module in his reply, the placeholders are visibly highlighted, e.g.:
-
The agent can then either click on the placeholders manually navigate with the keyboard to them and then insert the text. Maybe some hotkey, like Tab to jump to the next placeholder?
-
Not sure how possible this is, but it would be nice if it’s not too easy to accidentally delete the placeholder. E.g. clicking it should not immediately remove it to make room for the agent to type, but instead it should only vanish when the agent actually has typed something there. On the other hand, it should be possible to remove placeholders e.g. by selecting the complete text that contains the placeholder and pressing DEL, because the agent of course needs to be able to delete the whole text inserted by the text module in case he’s actually chosen the wrong text module.
-
When all placeholders have been filled with text, the agent can send the reply. When the agent clicks on reply without having filled all the placeholders, Zammad should show a warning (similarly to forgotten attachments), and the agent can either abort and fill the missing placeholders, or he can confirm that he really wants to send the mail without having filled all placeholders.