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

nameisnani
Giga 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>')

View solution in original post

15 REPLIES 15

hi @Anil Lande 

 

After updating script , not working ðŸ˜‘

 

(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') + '/' + current.getTableName() + '/' + current.sys_id + '"><img src="verymad.png" width="51" height="52"/></a>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/' + current.getTableName() + '/' + current.sys_id + '"><img src="mad.png" width="50" height="53"/></a>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/' + current.getTableName() + '/' + current.sys_id + '"><img src="neutral.png" width="49" height="53"/></a>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/' + current.getTableName() + '/' + current.sys_id + '"><img src="happy.png" width="50" height="53"/></a>');

    template.print('<a href="' + gs.getProperty('glide.servlet.uri') + '/' + current.getTableName() + '/' + current.sys_id + '"><img src="veryhappy.png" width="50" height="53"/></a>')

 

SunilKumarPadh_0-1690190000532.png

 

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>')

Hi @Anil Lande 

 

Thanks once again , I have updated my script as per the above .

 

I don't know why it is like this can u please here . 

 

SunilKumarPadh_0-1690190915591.png

 

Hi,

The incident survey you are trying to attempt is not was assigned to system admin.

Open the survey that is assigned to logged in user.

 

Is it working with correct user now?