Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

UI macro to redirect to teams chat window

Tapish Sharma1
Kilo Sage

Hi Folks,

I have a requirement to add a teams link besides a User reference field ('Responsible Leader'). I have written a UI macro but it is not working - Below is the script  (Also open to go with any other approach if possible)

**My script and field both are in Customer service Scope

UI Macro 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<a><img src ="1batch.png" width = "25%" height = "25%" onClick = "userWindow('$(ref)')" tabindex="0" ></img></a>

<script>
function userWindow(reference){
var refVal = reference.split('.');
var fieldName = refVal[1];
var emailId;

var sysId= g_form.getValue(fieldName);
var user = new GlideRecord('sys_user);
if(user.get(sys_id)){

emailId = user.email.toString();
}

if(emailId){
open('sip:'+emailId, '_top');

}
else{
g_form.addErrorMessage('User Does not have email in servicenow');

}
}
</script>
</j:jelly>

1 ACCEPTED SOLUTION

Hi,

try this and share the alerts

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
	<g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" />
	<j:set var="jvar_n" value="show_incidents_${jvar_guid}:${ref}"/>

	<a id="${jvar_n}"
	   onclick="userWindow('${ref}');"
	   name="${jvar_n}"
	   onmouseout="lockPopup(event)"
	   tabindex="0"
	   >
		<img border="0" src="1batch.png" width="28" height="28" title="${gs.getMessage('Open Teams chat')}" />
	</a>

	<script>
		function userWindow(reference){
		var refVal = reference.split('.');
		var fieldName = refVal[1];
		var emailId;
		alert('fieldName->' + fieldName);
		var sysId= g_form.getValue(fieldName);
		alert('sysId->' + sysId);
		var user = new GlideRecord('sys_user'); // quote was missing
		if(user.get(sysId)){ // variable name corrected
		emailId = user.email.toString();
		}

		if(emailId){
		open('sip:'+emailId, '_top');
		}
		else{
		g_form.addErrorMessage('User Does not have email in servicenow');
		}
		}
	</script>
</j:jelly>

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

14 REPLIES 14

Glad to help.

Please mark response helpful as well.

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Ankur Bawiskar 

I have added the UI macro in field attributes , it is showing in the form, any idea how can we make it visible also on portal . Same field is visible on portal as well but the attribute is not showing.

UI macros won't work on portal.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Any way to replicate this functionality in portal ?

 

Hi,

Not very sure

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader