Proposed Email Notification Changes
Parent Page: Email Notifications
The purpose of the email notifications functionality in the Evaluation System is to alert users when an evaluation opens in which they are evaluators and to remind users of available evaluations to which they have not yet responded.
The wording of an email notification is defined by an email template. If email notifications are to be sent, an email template must be specified for announcements and/or reminders. This makes it possible to customize notification emails to the individual evaluation or sets of evaluations (e.g. all emails for a particular school, college, department, etc). (Is it also possible to set a default template that will be used unless a custom template is specified for the eval?)
Overview
The processing of email notifications is controlled by sakai's job scheduler, so they can run unattended at off-peak times. The following decisions could affect the processing of email notifications:
- Whether to send an individual email for each evaluation to each student or to consolidate notifications into a summary email to the student
- Jim: I wonder if this is necessary. An email template can be used either to generate summary emails or to generate individual emails for each eval. In other words, the template can either handle aggregated info about multiple evals, or it can handle info about only one eval. Maybe the email template should have a boolean setting for whether it handles aggregate or individual info. This question is then answered by the choice of email templates.
- Jim: After review, I think this should be a system-wide setting and not something decided on a case-by-case basis as suggested above.
- Whether announcements should be sent for new evaluations as they open
- Whether reminders should be sent for active evaluations the student has not yet responded to
- By setting frequency of reminders to "Never"?
- Frequency of reminders (e.g. daily, every other day, every third day)
- Options have included "Never","Daily","Every other day","Every 3 days","Every 4 days","Every 5 days","Every 6 days","Every week", and "24 hours before the survey closes"
- Time of day that email processing should begin on days that notifications are being sent
- Jim: This has been done through the job scheduler UI. It should be included in the evalsys control-email UI instead.
- Whether to log progress of the email processing
- Whether to report progress of the email processing to an external tracking system
- Jim: This would be a merge from Michigan branch allowing status updates to be posted to a RESTful URL. Details will be added below. If the URL is not specified, this option would not appear.
- Queuing controls on large batches (e.g. number of emails to process in each batch, pause time between batches)
- The from-address and/or reply-to-address in the email
As with other configuration settings, default values should be provided to enable email processing with little effort.
Template issues
Emails are rendered using FreeMarker templates. The EVALSYS code that invokes the rendering engine supplies a mapping of keys to values, along with a template containing keys to be replaced. The current code sends an individual email for each evaluation to each potential evaluator. The documentation is a bit lacking at this point as to the list of keys that can be used in templates. Some documentation from Cambridge provided this list:
- ${URLtoTakeEval} - the link respondents click to take the survey.
- ${EvalTitle} - the title of the survey
- ${EvalGroupTitle} - the name of the course or project invited to take the survey
- ${EvalStartDate} - the starting date of the survey
- ${EvalDueDate} - the closing date of the survey
There may be others. In the case of rendering consolidated notifications, we may have two choices:
- Summary notifications - Each potential evaluator will receive an email about upcoming evals to which responses are invited, but the email will not contain specific information about each eval. Instead, it might give the number of evals the user can respond to, the earliest due date, the URL for the eval tool in the user's workspace, etc. People creating templates will need a full list of keys for this case. This is the case implemented in the Michigan branch.
- Aggregated notifications - Each potential evaluator would receive an email about upcoming evals to which responses are invited, with specific information about each eval. This could be a list containing links to take the eval, the title, start date, end date, etc. It could contain all of the information mentioned above for the individual email case. There are no plans to implement this case unless it is needed by someone.
Types of email notifications
Following is the complete list of email notification types currently used in EVALSYS:
/**
- EmailTemplate type setting:
- This identifies a template as the "evaluation created template",
- used when the evaluation is first created to notify evaluatees that
- they may add items to the evaluation and inform them as to when the
- evaluation starts
*/
public static final String EMAIL_TEMPLATE_CREATED = "Created";
/**- EmailTemplate type setting:
- This identifies a template as the "evaluation available template",
- used when the evaluation is available for users to take
*/
public static final String EMAIL_TEMPLATE_AVAILABLE = "Available";
/**- EmailTemplate type setting:
- This identifies a template as the "instructor must opt in for availability template",
- used when the evaluation is available for users to take
*/
public static final String EMAIL_TEMPLATE_AVAILABLE_OPT_IN = "OptIn";
/**- EmailTemplate type setting:
- This identifies a template as the "evaluation reminder template",
- used when the evaluation reminder is sent to non-respondent users
*/
public static final String EMAIL_TEMPLATE_REMINDER = "Reminder";
/**- EmailTemplate type setting:
- This identifies a template as the "evaluation results template",
- used when the evaluation results are ready to view
*/
public static final String EMAIL_TEMPLATE_RESULTS = "Results";
/**- EmailTemplate type setting:
- This identifies a template as the one-email-per-user evaluation-is-available template,
- used when the evaluation is available to be taken.
*/
public static final String EMAIL_TEMPLATE_CONSOLIDATED_AVAILABLE = "ConsolidatedAvailable";
/**- EmailTemplate type setting:
- This identifies a template as the one-email-per-user evaluation reminder template,
- used when evaluation responses are outstanding.
*/
public static final String EMAIL_TEMPLATE_CONSOLIDATED_REMINDER = "ConsolidatedReminder";
/**- EmailTemplate type setting:
- This identifies a template as the one-email-per-user evaluation-is-available subject template,
- used with the "single-email-per-user" email notification option
*/
public static final String EMAIL_TEMPLATE_CONSOLIDATED_AVAILABLE_SUBJECT = "ConsolidatedAvailSubject";
/**- EmailTemplate type setting:
- This identifies a template as the one-email-per-user evaluation reminder subject template,
- used with the "single-email-per-user" email notification option
*/
public static final String EMAIL_TEMPLATE_CONSOLIDATED_REMINDER_SUBJECT = "ConsolidatedReminderSubject";/**
- EmailTemplate type setting:
- This identifies a template as the email job completed subject template,
- used with the "job-completion-email" notification option
*/
public static final String EMAIL_TEMPLATE_JOB_COMPLETED = "JobCompleted";