Link email notifications to portal

Christine24
Giga Expert

I am working on notifications for our end users and wanted to start having them point to the portal. I did some researching and found this post: https://community.servicenow.com/community?id=community_question&sys_id=79d187a9db98dbc01dcaf3231f961933

However I am seeing two problems with this and wasn't sure how to fix them:
1. I wanted to use it for two different portals - we have an internal portal and a client facing portal. How do I make sure it works for the appropriate link?

2. When I put the script into my instance I got the error: Email script render error: email script [ service_portal_link ] does not exist

 

Any ideas on how this one?

21 REPLIES 21

Thanks Asif!

We do have a redirect for a portals but when I was testing it, it looks like it still goes to the same portal regardless of who is logged in.

Not sure if this is helpful but here is what I started to do to the email script:

if(recipient_user.email.toString().indexOf('INTERNAL EMAIL ADDRESS')){
	
	(function runMailScript(/* GlideRecord */ current, /* TemplatePrinter */ template,
	
	/* Optional EmailOutbound */ email, /* Optional GlideRecord */ email_action,
	
	/* Optional GlideRecord */ event) {
		
		var url = '<a href="' + gs.getProperty('glide.servlet.uri') + 'sp?id=ticket&table=' + current.sys_class_name + '&sys_id=' + current.sys_id + '">${number}</a>';
			
			template.print(url);
			
		})(current, template, email, email_action, event);
	}
	
	else {	(function runMailScript(/* GlideRecord */ current, /* TemplatePrinter */ template,
		
		/* Optional EmailOutbound */ email, /* Optional GlideRecord */ email_action,
		
		/* Optional GlideRecord */ event) {
			
			var url = '<a href="' + gs.getProperty('glide.servlet.uri') + 't?id=ticket&table=' + current.sys_class_name + '&sys_id=' + current.sys_id + '">${number}</a>';
				
				template.print(url);
				
			})(current, template, email, email_action, event);
		}

Hi,

use this:

 

              

               (function runMailScript(/* GlideRecord */ current, /* TemplatePrinter */ template,

                              /* Optional EmailOutbound */ email, /* Optional GlideRecord */ email_action,

                              /* Optional GlideRecord */ event) {

if(recipient_user.email.toString().indexOf('INTERNAL EMAIL ADDRESS')){

                                                            var url = '<a href="' + gs.getProperty('glide.servlet.uri') + 'sp?id=ticket&table=' + current.sys_class_name + '&sys_id=' + current.sys_id + '">${number}</a>';

                              template.print(url);

}else{

var url = '<a href="' + gs.getProperty('glide.servlet.uri') + 't?id=ticket&table=' + current.sys_class_name + '&sys_id=' + current.sys_id + '">${number}</a>';

                              template.print(url);

}

})(current, template, email, email_action, event);

                             

 

Thanks,
Ashutosh

I tried this and it is not showing the number now; almost like it's no longer referencing the script.

Hi,

Can you show the script?

Thanks,
Ashutosh