How to embed a dynamic link in the email notification via mail script

nameisnani
Mega Sage

Hi Team ,

 

Need help with the mail script to redirect the user to the survey link . 

 

https://<instance-name>.service-now.com/esc?id=take_survey&type_id=d241f419471b21100a2e3e58c26d4338

 

The link should be dynamic .

 

(function runMailScript( /* GlideRecord */ current, /* TemplatePrinter */ template,
    /* Optional EmailOutbound */
    email, /* Optional GlideRecord */ email_action,
    /* Optional GlideRecord */
    event) {


    gs.log("current " + current.number, 'sys');

    var surv = new GlideRecord('asmt_assessment_instance');
    surv.addNotNullQuery('trigger_id');
    surv.addQuery('trigger_id', current.sys_id);
    surv.query();
    surv.next();
    gs.log("Incident from survey " + surv.number, 'sys');

    var params = current.number + "," + surv.number;
    var subject = "survey:" + surv.number + " " + " " + "incident:" + current.number + " ";
    //var mail = gs.getProperty("instance_name") + "@service-now.com";
    //var mail = "testgpt0070@gmail.com";
    email.setSubject(subject);
    template.print('<br/>In order to improve the quality of our service, we invite you to evaluate the overall processing of your file by clicking on one of the following emoticons:<br/><br/>');

    template.print('<img src="verymad.png" width="51" height="52"/></a>');

    template.print('<img src="mad.png" width="50" height="53"/></a>');

    template.print('<img src="neutral.png" width="49" height="53"/></a>');

    template.print('<img src="happy.png" width="50" height="53"/></a>');

    template.print('<img src="veryhappy.png" width="50" height="53"/></a>')

 

 

Thanks in Advance 

 

@Chuck Tomasi 

1 ACCEPTED SOLUTION

My Bad,

Please try below.

The URL generated was not correct.

(function runMailScript( /* GlideRecord */ current, /* TemplatePrinter */ template,
    /* Optional EmailOutbound */
    email, /* Optional GlideRecord */ email_action,
    /* Optional GlideRecord */
    event) {


    gs.log("current " + current.number, 'sys');

    var surv = new GlideRecord('asmt_assessment_instance');
    surv.addNotNullQuery('trigger_id');
    surv.addQuery('trigger_id', current.sys_id);
    surv.query();
    surv.next();
    gs.log("Incident from survey " + surv.number, 'sys');

    var params = current.number + "," + surv.number;
    var subject = "survey:" + surv.number + " " + " " + "incident:" + current.number + " ";
    //var mail = gs.getProperty("instance_name") + "@service-now.com";
    //var mail = "testgpt0070@gmail.com";
    email.setSubject(subject);
    template.print('<br/>In order to improve the quality of our service, we invite you to evaluate the overall processing of your file by clicking on one of the following emoticons:<br/><br/>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/esc?id=take_survey&type_id=' + surv.sys_id + '"><img src="verymad.png" width="51" height="52"/></a>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/esc?id=take_survey&type_id=' + surv.sys_id + '"><img src="mad.png" width="50" height="53"/></a>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/esc?id=take_survey&type_id=' + surv.sys_id + '"><img src="neutral.png" width="49" height="53"/></a>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/esc?id=take_survey&type_id=' + surv.sys_id + '"><img src="happy.png" width="50" height="53"/></a>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/esc?id=take_survey&type_id=' + surv.sys_id + '"><img src="veryhappy.png" width="50" height="53"/></a>')
Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

View solution in original post

15 REPLIES 15

Hi @Anil Lande 

 

I have created a Test user and assigned still same issue 

 

SunilKumarPadh_0-1690196547141.png

 

 

If you are testing incident survey then create one incident and set caller as 'System Administrator'.

Resolve that incident by impersonating itil user

Close that incident by 'System Admin'

Then test the link.

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

@Anil Lande 

 

This is my survey 

SunilKumarPadh_0-1690197634617.png

 

Trigger condition 

SunilKumarPadh_1-1690197673504.png

 

nearly i have resolved 5 incidents only 2 survey instance got created .

SunilKumarPadh_2-1690197712851.png

 

Hi,

please check both surveys are not assigned to system admin.

You are testing links with system admin, test the link by impersonating the assigned_to user. 

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

Hi,

Is your issue resolved with the provided steps in previous comments?

 

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande