- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-08-2020 02:44 AM
Hi,
When I use outlook actionable messages for surveys, the embedded survey will "override" other information in that notification.
For instance, I would like information on an incident or Case to be included in the notification with the embedded survey. Is there a way to do this?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-17-2020 02:28 PM
Hi,
This is such a hit and miss plug-in for me, there is so much great work in there but the ability to customize is such a big piece of the puzzle. It is a notification after all.
Digging into the plugin I can see most the magic of creating the embedded survey is done in the protected script include, SurveyAdaptiveCardGenerator.
The first issue is the hideOriginalBody is set to true (see below), which works great for a clean embedded survey but takes any chance away of customizing around it. I think this is the override piece you are talking about.
this.card = {
"type": "AdaptiveCard",
"version": "1.0",
"originator": gs.getProperty('sn_ms_oam.outlookactionable.originator'),
"padding": "none",
"expectedActors": this._getExpectedActors(),
"hideOriginalBody": true,
"body": []
};
Description of hideOriginalBody copied from Microsoft Doco
When set to true, causes the HTML body of the message to be hidden. This is very useful in scenarios where the card is a better or more useful representation of the content than the HTML body itself, which is especially true when the card contains actions. Consider hiding the original HTML body if the card itself contains all the information a user would need, or if the content of the card is redundant with the content of the body. Do always include a nice, meaningful HTML body, even if it is going to be hidden. The HTML body is the only thing an email client that doesn't support cards will be able to display. Furthermore, cards are not included when replying to or forwarding emails, only the HTML body. Don't hide the body when it is complementary to the information presented in the card. For example, the body of an expense report approval might describe the report in great details while the card just presents a quick summary along with approve/decline actions.
For me I would really like to add some branding as it helps with uptake of the notification as we use specific logos to make this look like a company email. (fully aware that's what phishing is :))
IF we could modify the script include, I think that is where you would be able to add the additional information you wanted.
Really I would like to see some configuration options added to this plugin, like some simple branding or more input into how the protected script include behaves would be great.
If anyone has some workaround ideas on how to brand "outside the box" that would be great. My only thought now is to possibly manipulating the notification before it is sent to add the required AdaptiveCard JSON, for my use case that would be:
{
"type": "Image",
"url": "https://path_to_image_here",
"altText": "
},
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-20-2021 09:58 AM
There is actually a better solution, to avoid running a business rule on the sys_email table, which could lead to performance issues.
The code that is printed in the email to the users, with the embedded survey, can be intercepted within the email script (line 2 of the below script where we pass our own printer instead of the Email Template Printer), and then we replace the hideOriginalBody value from true to false (line 4 of the below script)
In line 5 we print the code to the email, after we edited the script as we needed:
var printer = new MyTemplatePrinter();
new sn_ms_oam.AdaptiveCardsFactory().generate('send_survey', printer, current);
var embeddedSurveyContent = printer.printEmail();
embeddedSurveyContent = embeddedSurveyContent.replace('"hideOriginalBody":true', '"hideOriginalBody":false');
template.print(embeddedSurveyContent);
In line 1 of the script above, I used MyTemplatePrinter, which is a simple script include with just 2 methods, which is used to grab the code before it is sent to the real Template Printer:
var MyTemplatePrinter = Class.create();
MyTemplatePrinter.prototype = {
initialize: function() {
this.content = "";
},
print: function (message){
this.content = message;
},
printEmail: function(){
return this.content;
},
type: 'MyTemplatePrinter'
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-16-2022 10:07 AM
Thank you Alessandro. This solution worked for us. Did you figure out a way to make the original email body appear above the survey card?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-09-2023 06:07 AM
Hi Alessandro.
I have written the Script include and also wrote the above script in Email Script.
It is still not working. Please guide.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-15-2023 05:53 AM
Hi INYVIIM,
hard to tell from the information provided, what the issue could be. Does OAM work without this customisation? Was the plugin installed? Did you configure the survey so that it is compatible with OAM? There is a flag in the survey but you also need to make sure you don't use components that are not supported.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-15-2023 05:56 AM
Hi INYVIIM,
is the plugin installed? Did OAM work before the customisation? Have you created a supported survey? There is a flag in the Survey record to be checked, but you also need to make sure, you only use supported components, otherwise the survey won't show in emails?