Survey stuff (smiles, increase response rate, etc)

vant
Tera Expert

Greetings Community,

I have a recent requirement to make surveys more friendly and appealing to increase response rates, and by this, one example is to add pictures (i.e. smiley faces) and possibly embed surveys in emails to send the response to ServiceNow, or have multiple picture links in emails that would pre-answer at least one question in ServiceNow, anything that would make answering any part of a survey as easy as possible.

This is what I found researching so far, feel free to correct me.

1. Embedding surveys in emails won't work to send data to ServiceNow, due to restrictions of the Outlook server of 2010+, Outlook client security prompts.

2. The Tilton smiley face update on Share won't translate onto the new Eureka upgraded survey platform because UI macros are not supported, though it continues to work on the legacy survey.

Question:

1. Has anyone successfully done a survey notification that looks like an Amazon feedback survey or a Square credit card charge or Uber survey with smiley faces that might pre-answer at least one question on the survey, or anything close to that sort? Is it even possible within ServiceNow?

2. Or if no answer for #1, has anyone found a clever way to increase user's response rate to the surveys by making them click on the survey link, instead of offering them a chance at winning something?

Thanks!

44 REPLIES 44

Hi,


please visit this link to answer my query


Survey through email


Hello Sam,


        Can you provide the full code and not in a screenshot?


here you go:



var scale = document.getElementById('overall_grade').value;


var labels = document.getElementsByTagName('LABEL');


for (var i = 0; i < labels.length; i++) {  


if (labels[i].innerHTML.trim() == 'Tell us how we did') {


    if(scale == 1){


      var selectedRadio = labels[i].htmlFor + "-0";    


    }


    else


    {


      var selectedRadio = labels[i].htmlFor + "-" + (scale-1) + ".0";    


    }


   


    var elem = document.getElementById(selectedRadio);    


    if (elem)


    {


      elem.checked = true;


      elem.click();


    }


}


}



I'm a little confused.   It looks like there is 31 more lines of code above what you put here.   Was this added to another already existing client script?


yes. those are the existing client script for the addLoadEvent function. This is the code for the entire function. I don't think I added this function in:



addLoadEvent(function() {
var ids = {};
var inputs = $$(".questionSetWidget");
for (var i = 0; i < inputs.length; i++)
  ids[inputs[i].getAttribute('name')] = true;


for ( var id in ids) {
  var sysId = id.split(':')[1];
  if (sysId != 'null' && id.indexOf('sys_original') < 0) {
    var status;
    var mandatory;
    var allowNA;
    var nameElement = new NameMapEntry(sysId, id);


    g_form.addNameMapEntry(nameElement);
    status = gel('status.' + id);
    if (status == null) {
      if (window.console)
        console.log("Problem locating element 'status." + id + "'");
    } else {
      mandatory = status.getAttribute('oclass');
      mandatory = mandatory != '' ? true : false;
      allowNA = status.getAttribute('allow_na');
      allowNA = allowNA == 'true' ? true : false;      
      var glideUIElement = new GlideUIElement('variable', id, 'string', mandatory, 'null');
      glideUIElement.allowNA = allowNA;
      g_form.addGlideUIElement(glideUIElement);
    }
  }
}
var scale = document.getElementById('overall_grade').value;
var labels = document.getElementsByTagName('LABEL');
      for (var i = 0; i < labels.length; i++) {  
              if (labels[i].innerHTML.trim() == 'Tell us how we did') {
    if(scale == 1){
      var selectedRadio = labels[i].htmlFor + "-0";    
    }
    else
    {
      var selectedRadio = labels[i].htmlFor + "-" + (scale-1) + ".0";    
    }
                      var elem = document.getElementById(selectedRadio);    
                      if (elem)
    {
                              elem.checked = true;
      elem.click();
    }
              }
      }
});