Mike Patel
Tera Sage

Do steps on part 1 before doing this 

Part 1 - https://community.servicenow.com/community?id=community_blog&sys_id=e28f251adbe5b344f7fca851ca961961

Login into your SN instance ad admin and create field on user table called Slack ID

find_real_file.png

find_real_file.png

Once you have created Slack ID field create Rest Message. It should create Default Get automatically. Open that

find_real_file.png

Change endpoint. Make sure to add token that you got from part 1.

find_real_file.png

once you save the changes click on Preview Script Usage and copy code.

find_real_file.png

Go to sys_script_include.list and create new script called SlackUsers

Script:

var SlackUsers = Class.create();
SlackUsers.prototype = {

	getUser: function(){
		var r = new sn_ws.RESTMessageV2('Slack Users', 'Default GET');
		var response = r.execute();
		var responseBody = response.getBody();
		var httpStatus = response.getStatusCode();

		if(httpStatus == 200){
			var parser = new JSONParser();
			var parameterArr = parser.parse(responseBody);
			for (var i = 0; i < parameterArr.members.length; i++) {
				if(parameterArr.members[i].profile.email){
					var gr = new GlideRecord("sys_user");
					gr.addQuery("email", parameterArr.members[i].profile.email);
					gr.query();
					if (gr.next()) {
						gr.u_slack_id = parameterArr.members[i].id;
						gr.update();
					}

				}
			}
		}
	},

	type: 'SlackUsers'
};

To run it daily/weekly/Monthly

Create scheduled job

go to sysauto.list and click on New

find_real_file.png

find_real_file.png

That should import slack id on user record.

find_real_file.png

 

I'll be creating another blog on how you can post interactive message that can be used for Approvals.

 

4 Comments