How to create custom CTI business rule and call using sysparm_cti_ruleSummary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 1) Create a new business rule : a)application:global b) table:global c) and client_callable =true 2) In the script create a custom function . For example : cti_custom , with the below sample code ------------------------- function cti_custom() {var url = null;var name = sysparm_caller_name;eid = sysparm_caller_id;var phone = sysparm_caller_phone;var taskID = sysparm_task_id;var fQuery = sysparm_query;if (fQuery == null)fQuery = '';var view = sysparm_view;if (view == null || view == '')view = "itil"; var userID = null;if (eid != null && eid != '') {userID = UserGetSysId("employee_number",eid);}if (userID == null && name != null && name != '') {userID = UserGetSysId("name", name); }if (userID == null && phone != null && phone != '') {userID = UserGetSysId("phone", phone);}if (userID != null) {var gr = new GlideRecord("incident");gr.addQuery("active", "true");gr.addQuery("caller_id", userID);gr.setWorkflow(false);gr.query();if (gr.next())// url = "sys_user.do?sys_id=" + userID + "&sysparm_view=" + view;url=null;} else {if (taskID != null && taskID != '') {url = "task.do?sys_id=" + taskID + "&sysparm_view=" + view; }}if (userID != null) {if (fQuery.length > 0)fQuery += "^";fQuery += "caller_id=" + userID;}if (url == null) {url = "incident.do?sys_id=-1";if (fQuery != null)url += "&sysparm_query=" + fQuery;}answer = url;return url;} function UserGetSysId(field, value) {var user = new GlideRecord("sys_user");user.addQuery(field, value);user.query();if (user.next())return user.sys_id;elsereturn null;} -------------------------------------- 3) Test and make sure that the new function can be invoked with sysparm_cti_rule (sysparm_cti_rule=name where 'name' is the name of a function to be invoked for CTI processing rather than using the default script) https://<instance_name>.service-now.com/cti.do?sysparm_cti_rule=cti_custom&sysparm_caller_name=Abel%20Tuter Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All