180 likes | 296 Views
Aarburg, 23.10.2013. Service Now Emails. Why to work on emails. Why to work on emails. User View Emails are quick and easy to use Emails are a known medium ( people rely and trust on mails ) IT Support view
E N D
Aarburg, 23.10.2013 Service Now Emails
Whytowork on emails • User View • Emails are quick and easy touse • Emails are a known medium (peoplerelyandtrust on mails) • IT Support view • Fast waytogetnecessaryinformation (userknowhowtouseit) • Mails aresentdirectlytousers • Asynchronouscommunicationpossible => Work on inboundandoutbound
Inbound Mail concept • 3 stagessystemtoreceiveandintegrateinboundmails • Alias basedinboundmailactionbased on address • Body parsingactionbased on key:valuepairs • Default supportgroupbased on sender • Catchallruleforticketswithoutsupportgroups • Goal istoassign all inboundmailstotherightsupportgroup
Alias BasedInbound Action • Bases on email addressaliases • conceptedforsystems, creatingemailswhicharesupposedtocreatetickets • forsystems, wherethemailbody was not availableforchanges (UPS etc.) • Usesthe Business Services namingconvention
Alias BasedInbound Action • Conceptusesthebasicnamingconvention • Utilizesthe Business Service name • Gives a fix impact • Gives a fix urgency • Basic businessrule in thesystemforassignmentbased on servicename • Exampleservices: • CIS-SC-029 CIS Service Desk Service • Exampleaddresses: • FrankeGroup-FDI-LS-001-1-1.int@franke.com • FrankeGroup-CIS-SC-015-3-2.int@franke.com
Body ParsingInbound Action • Utilizeskey:valuepairs • Scripted in theinboundaction • Conceptedforsystems, mailingto ServiceNow if ((email.body.ci != undefined) && (email.body.u_service_name == undefined) && (email.body.u_business_service == undefined)) { var ci = new GlideRecord('cmdb_ci'); ci.addQuery('name', email.body.ci); ci.query(); // if a CI is defined if (ci.next()) { current.cmdb_ci = ci.sys_id; // if there is no service name already if (ci.u_business_service != undefined) { // ASP: Changed from u_service_name to u_business_service current.u_business_service = ci.u_business_service; // ASP: changed u_service_name to u_business_service } }
Default supportgroup • Applies Tickets, whichare not assigned • Calleridentification • .walkforsiteofthecaller • _<site>-H-Support as default support group
Notificationstrategy Howmanynotifications? • Different intentswhenitcomestonotifications • Tomanynotifications vs. Not enoughinformation • Tool capabilities vs. Pure mailinterfacework • Notificationsforsinglepersons • Notificationsforgroups Content - Enoughinformationdepending on purpose
Group notifications • Request forconfigurablenotificationfortickets, comingto“My Groups Work” • «Watchlist» type fieldhasbeencreatedtohavespecificpeopleaddedto a groupnotification • Simple businessruletotriggernotificationevent on ticket assignment
HTML Mails Why? • ServiceNow Mails aretextbasedand not pretty • Do not providestructuredinformationon thefirstsight • Getdeleted in mostcases • Goal: • Provide additional value • Enhanceusabilityandlookof all notifications
Howtomake HTML notifications • HTML codecanbeputdirectlyintothemailbody • All HTML codesrecognised • Simple HTML mailsarenoproblem
Challengeswith HTML mails • <div>-tags areputintothemailbodyby ServiceNow • <div>-tags maydistortcomplexstructuresanddesigns • The onlysolution: do not uselinebreaks
Challengeswith HTML mails • Complexandlongcode in oneline • Multilinefieldscontainlinebreaks <mail_script> cleanDescription(); functioncleanDescription() { varsid = current.sys_id; varrecord = newGlideRecord('change_request'); record.addQuery('sys_id','=',sid); record.query(); while(record.next()) { vardescription = record.description.getDisplayValue(); description = description.replace(/\r\n/gi,'<br/>'); template.print(description); } } </mail_script>