(Last Updated: December 28, 2017)

Even if you don’t have an LMS, you can still use ActivePresenter to create the course and send the report data (course result) to an HTTP address. You can use this method to send the report to your server and process the report data in your own way. The report formats are in XML or JSON format. In the case of you don’t have a web server, you can send the report data to a Google Sheets document or to an email instead.

Now I will show you the steps to send report data to Google Sheets or to an email by using Google Apps Script. I am not showing more detail about Google Apps Script here, but you can learn more about using Google Apps Script here https://developers.google.com/apps-script/

  1. First, create a Google Sheets document to receive the report data. Here I created a sample Google Sheets to receive data. As you can see the header columns of the first row is the field of report data. You can view the document here:https://docs.google.com/spreadsheets/d/17jfxPfA6rYxNPJNB2mBNa0EqZg8o7E7eetENWQrg9a4/edit#gid=0
  2. Next, create Google Script and adding code to process report data which send from user. This is sample code that I am using to insert data to Google Sheets and send report data via email.
    • From Google Sheets menu go to Tool -> Script Editor…
    • Add the following code:

      var TO_ADDRESS = “namnt@atomisystems.com”; // Email to receive the report data. Change this to your email
      function doPost(e) {
       try {
         var report = JSON.parse(e.parameter.report);

         // Insert report data to Google Sheets
         var doc     = SpreadsheetApp.getActiveSpreadsheet();
         var sheet   = doc.getSheetByName(‘responses’); // select the responses sheet
         var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
         var nextRow = sheet.getLastRow()+1; // get next row
         var row     = [ new Date() ];
         // loop through the header columns
         for (var i = 1; i < headers.length; i++) { // start at 1 to avoid Timestamp column
           if(headers[i].length > 0) {
             row.push(report[headers[i]]); // add data to row
         sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);

         // Send report data via email
           to: TO_ADDRESS,
           subject: “Report Data” + ” – ” + report.Name,
           htmlBody: JSON.stringify(report)

         return ContentService    // return json success results
                                 “data”: JSON.stringify(report) }))
       } catch(error) { // if error return this
         return ContentService
               .createTextOutput(JSON.stringify({“result”:”error”, “error”: e}))

  3. Next, publish the script as web app.
    • Go to Publish menu -> Deploy as web app…
    • The publish options are:
      • Execute the app as “Me” (the email of the course author)
      • Who has access to the app: Anyone, even anonymous can access.
    • Follow the instructions to finish deploying app. At the final step, please copy the web app URL to put into ActivePresenter reporting option.
  4. Finally, in reporting options in ActivePresenter, put web app URL above to HTTP address.

Now, each time learners finish their courses, the report data will be inserted to Google Sheets and a report will be sent to your email address. You should improve the code to make the report looks better.


Start creating interactive elearning contents with ActivePresenter now!

ActivePresenter Pro EDU


ActivePresenter Pro


Join our mailing list to receive the latest news and updates from our team.

A confirmation email has been sent to your mailbox, please confirm your subscription!

Pin It on Pinterest