Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Add emoji in email notification and redirect to the survey on click

rish-123
Tera Contributor

Hello Guys ,

 

I need a mail script to refer on embedding emojis in the notification and on click of the emojis it should redirect to the survey in the portal with the value selected . 
I have referred to few community threads but they are using mail:to functionality which I don't require . 

 

Looking forward for your response .

1 ACCEPTED SOLUTION

Siddhesh Gawade
Mega Sage
Mega Sage

Hello @rish-123 ,

 

I was also facing the same issue, but I came-up with solution !!!

 

See the Email notification script below, it this, we using image(Need to upload image first in system UI > Images) and after clicking on that image, it is redirecting to page on portal(You can redirect to any page depending on your requirement).

 

Most important I am fetching Parameter Value as 'answer' at the end of url. So you can use this parameter for further use(For example: you can multiple smiley images with different parameters and depending on parameter value you can update records.)

*** Please modify the script depending on your requirement.

 

 

 

var image = '/smiley_good.png';
    var instance = gs.getProperty("instance_name");
    var link = "https://" + instance + ".service-now.com";    
    var asmt_ass_instance = new GlideRecord('asmt_assessment_instance');
    asmt_ass_instance.get('trigger_id', current.sys_id);
    var survey_ass_id = asmt_ass_instance.sys_id;

    //redirecting to service portal page of Survey
    var s_link = link + '/sp?id=custom_survey&instance_id=' + survey_ass_id + '&answer=' + 3;
    var mailLink = '<a href="' + s_link + '"> <img src="' + image + '"></a>';

    template.print(mailLink);

 

 

 

Kindly mark my answer as Correct and helpful based on the Impact.

Regards,

Siddhesh

View solution in original post

8 REPLIES 8

Hello @rish-123 ,

 

Does this resolved your issue? If yes, please accept my reply as solution and close this thread!!! 

This help a lot!!!! Please let me know......I am expecting to hear back from you 😊

One last question Siddhesh , 

How did you pass the parameter value and where did you right the client script ? 
I referred the article and got an idea but confused on where this needs to be implemented . A screenshot would be helpful. Thanks

Hello @rish-123 ,

See the below piece of a code I am using in the server script of portal page. In this on I am using parameter which passed in Url. (example: answer , instance_id).

 

This kind of url you can build, refering the url you can easily see how to pass the parameter. 

data.acknowledgementInstance = $sp.getParameter("instance_id");
    data.acknowledgementInstanceAnswer = $sp.getParameter("answer");
    data.acknowledgementSubmitted = 'no';
    data.acknowledgementCompleted = 'no';

    var acknowledgementInstance = data.acknowledgementInstance;
    var acknowledgementInstanceAnswer = data.acknowledgementInstanceAnswer;
    var instance = new GlideRecord('sn_compliance_policy_acknowledgement_instance');
    instance.addQuery('sys_id', acknowledgementInstance);
    instance.query();
    if (instance.next()) {
        if (instance.state == 1) {
            if (acknowledgementInstanceAnswer == 0) {
                instance.state = 3;
                instance.update();
            }
            if (acknowledgementInstanceAnswer == 1) {
                instance.state = 2;
                instance.update();
            }

 


Kindly mark the answer ✔️Correct or Helpful ✔️If it addresses your concern !!!

 

Regards,

Siddhesh

 

Thank you siddhesh ,

 

It worked . 

Quick question - Is there a way to set the value in the portal survey when clicking the emoji  from the notification ? Likes it needs to be selected . 

 

Notification :

rish123_1-1702658435148.png

Portal:

 

rish123_0-1702658405306.png