Send results slide via email using Javascript ??
Feb 06, 2013
Hello! I'm pretty new to... well... all of this, but I'm a fast learner. I've been toying around with adding Javascript to my Storyline project for some advanced capabilities, and so far I've figured out how to execute an email with HTML5. I understand that there are issues with mobile and Flash.
So my question is: is it possible to set up Javascript within my Storyline project that will email an image of the results slide/certificate of completion?
It would be great if the image could be in the body of the email, but I would also be happy if it were an attachment. I don't know if it is possible to set it up so that once the user lands on the results/completion slide, there is an image automatically generated and included in the email.... again, pretty new at this. =)
Here is my current set up (for my test project) including code:
- I set up a text entry called "EmailAddress" - the user will enter their desired email addresses in here.
- I have a text variable called "EmailAddress"
- I added a trigger to a button that will execute Javascript when the user clicks.
This is the Javascript I'm using:
var player = GetPlayer();
var course="Storyline test course"
var email=player.GetVar("EmailAddress");
var subject="Assessment Complete";
var body_start="I've just completed my assessment!";
var mailto_link='mailto:'+email+'?subject='+subject+'&body='+body_start;
win=window.open(mailto_link,'emailWin');
Please note: I've patched my JS together from information I've found within these forums and on the web. I don't know how to write JS or all the rules, but I can usually figure out how to use it if I play around with it for long enough.
Any help would be amazing, and thank you so much in advance... and sorry if this question has already been covered; I wasn't able to find an answer anywhere. =)
30 Replies
Hello,
Your JavaScript is wrong. You are missing a semi-colon from the end of the var course... statement, which you don't use so you can just delete it.
----
var player = GetPlayer();
var email=player.GetVar("EmailAddress");
var subject="Assessment Complete";
var body_start="I've just completed my assessment!";
var mailto_link='mailto:'+email+'?subject='+subject+'&body='+body_start;
win=window.open(mailto_link,'emailWin');
Hello,
I need something similar but the email has to have a little more text. I have the following text variables:
- Commitment
- Name
- ManagerEmail
I edited the above jc to nomething like this:
var player = GetPlayer();
var email=player.GetVar("ManagerEmail");
var nome=player.GetVar("Name");
var texto=player.GetVar("Commitment");
var subject="My Corporate Responsibility Commitment";
var body_start="Dear Manager, "+nome+" has sent you his/her Corporate Responsibility Commitment:";
var body_end="Please discuss this commitment with "+nome;
var mailto_link='mailto:'+email+'?subject='+subject+'&body='+body_start +texto +body_end;
win=window.open(mailto_link,'emailWin');
Will it work? is it possible to have in the '&body' ?
Thanks !!
Hello Ana,
Yes, you can do that, but to add formatting you may need to do something a bit different.
Try this: https://gist.github.com/wpsmith/5221305
Thanks,
Travis
I ran into clients that didn't have email applications on some of the workstations, and other situations where workstation mis-configuration didn't invoke the email application at all. Because the workforce was so large, addressing all the exceptions was not possible.
To solve the problem I developed a server-side email solution which allowed learners to do form-entry email in the course via a web object. It sends email reliably, but it requires setup of a server-side script which requires a lot of cooperation with both LMS and server administration. Installing private or course-specific scripts is a major issue that many LMS installations won't support.
LMS server scripts could be avoided by having the course reference a 3rd party email solution but many installations would see this as a security violation, or would it? I understand courses reference youtube videos which are 3rd party, but those aren't executable scripts.
Does anyone have a story of how reliably reference 3rd party services, or how to implement email feedback using 3rd party services or... something out of the box?
Hello Alicia,
Did you ever figure out the answer to your question? I am hoping to setup something similar. I have done something similar in the past using Captivate and a third party widget but haven't been able to duplicate the same procedure using Storyline. Based on your original post you seem to be quite close to a solution using javascript. Any insights that you can share would be greatly appreciated.
Regards,
Hi,
This script looks really promising and I would be really interested to know which file you edit to insert it? I have looked under the project / story_content / story.js file but cannot find the right place for it to be.
Any help would be much appreciated.
John
Hi Leyhton,
Unfortunately no, I was never able to get the Javascript to execute what I needed it to do. I wanted the Javascript to email an image - a certificate of completion. I was able to get Javascript to execute sending an email with the original script I posted above, but I'm not quite proficient enough in Javascript to get it to email an image...or perhaps that's just not a capability at this time.
Hi John,
I can't speak for anyone else, but when I add Javascript to Storyline I open up the Storyline file that I'm editing and add a trigger. Select "Execute Javascript" as the action and you'll get a little "..." button right below the action line (for the Script). Click on that button and a blank box will appear. Copy and paste your Javascript into the box and click OK. Then just fill out the When and Object lines as needed. Hope this helps!
Hi Alicia,
Of course! Sorry, brain went to sleep there. I am currently trying to get a similar script to work, albeit not using images but Dennis seems to know a lot about it.
Check out the thread, you might be able to catch a break:
http://community.articulate.com/forums/p/40049/227676.aspx#227676
John
Yes, this would be a huge security issue. Depending on the server setup, you may be able to do a Gmail API integration, but you would need access to the MX records, PHP configuration access (php.ini), etc. which I highly doubt any one would ever give you. There is only so much one can do within a course.
It would go within the course, Execute JavaScript or possibly in the user.js file.
Hello,
You can simply send emails joining JavaScript and PHP, e.g. in Execute JavaScript put a simple script
var player = GetPlayer();
$.ajax({
url: "quiz.php",
type: "POST",
data: {"student" :player.GetVar("student"), "score":player.GetVar("score")},
success: function(data)
{
alert("Success" + data);
}
});
In the folder with story_html5.story you can add -let's say- quiz.php:
<?php
$message .= 'Hello!' . "\r\n\r\n";
$message .= 'Student: ' . $_POST['student'] . "\r\n\r\n";
$message .= 'Score: ' . $_POST['score'];
mail("your@address.com","Quiz 1", $message);
?>
And you will receive an email:
Subject: Quiz 1
Hello!
Student: e.g. John Doe
Score: e.g. 21
Of course you can add many variables from Storyline in your $message.
Best regards
Jacek
Thanks Jacek for sharing the code here - always helpful to have more information for the community on utilizing Javascript.
Hello Ashley,
my example is too simple, e.g. when sending mail, it must contain a "From" header. It shouldn't be anonymous, then I have to rather use sth like this:
. $
It may be just what someone else needs though! You never know. :-)
I hope so :-) Then I'll elaborate on this subject.
W dniu 2014-11-17 20:18:23 użytkownik E-Learning Heroes napisał:
Reply to Send results slide via email using Javascript ??
Ashley Terwilliger replied:
It may be just what someone else needs though! You never know. :-)
Reply
View
To post a response, simply reply to this email.
You received this email because you subscribed to this discussion. Unsubscribe
© 2014 Articulate Global, Inc. All rights reserved.
Thanks Jacek - and just so you know when you reply via email sometimes your signature is included. You can edit the post if you'd like to remove those elements!
Thank you Ashley :-)
W dniu 2014-11-17 21:38:14 użytkownik E-Learning Heroes napisał:
Reply to Send results slide via email using Javascript ??
Ashley Terwilliger replied:
Thanks Jacek - and just so you know when you reply via email sometimes your signature is included. You can edit the post if you'd like to remove those elements!
What do you mean by use .$ Could you please explain further with an updated example of the code.
Hi, a full stop, "." is a symbol for string concatenation in PHP, likewise "+" in e.g. JavaScript. I pass JavaScript variables (via ajax function in Storyline) to PHP then I use a simple mail() function.
W dniu 2014-11-17 23:38:36 użytkownik E-Learning Heroes napisał:
Reply to Send results slide via email using Javascript ??
Bj Wilson replied:
What do you mean by use .$ Could you please explain further with an updated example of the code.
Reply
View
To post a response, simply reply to this email.
You received this email because you subscribed to this discussion. Unsubscribe
© 2014 Articulate Global, Inc. All rights reserved.
Has anyone actually got the to work as I'm having trouble. Has there been a Screenr created. I've had a good look here but most of the posts and tutorials aren't complete.
Thanks
Hello this is a great thread. What I want to know are the Vars in the Js vars that you set up and populate with story line controlls?
I am creating a course where the user will simulate replying to an email. I need their reply to actually email to be manually reviewed and graded. This is primarily for soft skills training. I've used different java codes listed in these forums, but none seem to be working. In the image attached, the "type your text here" area is what would need to be emailed. This is TextEntry13 in my course. If I could include the subject and the users name "TextEntry" that would be awesome.
Any help would be greatly appreciated.
Hi Tabatha!
This thread is a bit dated and your request is out of the scope of Articulate support, but hopefully someone in the community will be able to chime in and assist here. If you were hoping for assistance from a particular user, you are welcome to reach out to them directly via the 'Contact Me' option on the user profile if available.
Hi Travis,
I tried to use this code but it's not working for me. Could you please help.
Hi,
I am creating a course where I want learner to paste a URL in a text box and that URL should be mailed to his / her reporting manager. How do I do this?