Skip to main content

ServiceNow - Testing embedded email surveys using adaptive cards


check html sanitiser:

(check the body text of the email in the email logs)


If you are adventurous enough to create your own Actionable Message it is worth validating your action. This can be done at: site also has a link to A site where you can design/test Actionable Messages:

And of course:


Secondly check logs: The logs for Outlook Actionable Messages are not in the expected script log statements but are found under System Logs ->Application Logs, App Scope: Outlook Actionable Messages

You might see messages similar to:

Invoking adaptive card generator for surveys
aborting due to invalid survey instance record: b8d36a58db993010919d5716f4961944
Invoking adaptive card generator for approval
sysapproval_approver with valid sysapproval ref is required for actionable content
Not a valid approval record for adding adaptive cards. Adaptive content will not be added.
Not a valid approval record for adding adaptive cards. No recipients are available
Adaptive content not returned from generator. Skipping to add adaptive cards




Popular posts from this blog

URL link in addInfoMessage

var ga=new GlideAjax('gld_HR_ajax'); ga.addParam('sysparm_name', 'checkEmployeeNumber_hrProfile'); ga.addParam('sysparm_hrprofilenumber', g_form.getValue('number')); ga.addParam('sysparm_employeenumber', newValue); ga.getXMLAnswer(function(answer) { if (answer!='undefined' && answer!=''){ var navURL="<a style='text-decoration:underline;color:blue'" + answer + ">" + answer + "</a><img width='3' src='images/s.gif'/>"; var sMsg='The employee number entered already exists on another HR Profile ' + navURL; //alert(sMsg); g_form.showErrorBox('employee_number', 'error - please check'); g_form.addInfoMessage(sMsg); } });

GlideRecord setValue

setValue(String name, Object value) Sets the specified field to the specified value. Normally a script would do a direct assignment, for example,  gr.category = value . However, if in a script the element name is a variable, then  gr.setValue(elementName, value)  can be used. When setting a value, ensure the data type of the field matches the data type of the value you enter. This method cannot be used on journal fields. If the value parameter is null, the record is not updated, and an error is not thrown!/api_doc?v=madrid&id=r_GlideRecord-setValue_String_Object