Email scheduling in the admin console

Design and implementation by Frankie Roberto, Tony Headford and Kate Lloyd
The problem
We send over 800,000 emails each year to people involved in NPQs and ECF-based training.
Each email requires hours of manual work by team members including:
- analysing needs
- drafting and approving content
- creating and updating Notify templates
- identifying the correct user group(s) to send the email to
- creating mailers and query strings in the codebase to target those users
- segmenting large groups of recipients into smaller batches
- manually actioning the email send via the service or Notify
- checking and communicating the bounce rates for each send
The present
3 years into the project, we’ve streamlined our emails to focus on the basic tasks users need to complete across the registration cycle. The emails are:
- Announcing when registration opens for the new academic year.
- Reminding schools to set up training for the year.
- Reminding school induction tutors to register ECTs and mentors for the year.
- Reminding school induction tutors to assign each ECT a mentor in the service.
- Reminding schools who chose to use a training provider (known internally as the ‘full induction programme’ or ‘FIP’) that they must partner with one.
- Reminding schools to report any changes to their training programmes each term.
The plan
To reduce manual workload and repeated effort, we’ve designed and created:
- an email schedule for the 23/23 academic year, based on schools’ working weeks and provider payment dates
- 5 ‘evergreen’ Notify templates for each of the reminders listed above
- mailers and query strings in the codebase to target specific user groups for each email
- a new section of the admin console to allow the 5 Notify reminders to be scheduled and viewed by the team

Analysis and design
Our goal was to move from our highly manual and repetitive process to a more automated one.
We wanted to avoid a ‘schedule and forget’ approach, as our team (and future teams) need the ability to:
- know when emails are scheduled to make sure the support desk and providers are aware
- review the contents of the 5 Notify templates
- review the user groups who will receive the emails
- estimate the number of recipients for each email
- postpone or delete email sends if circumstances change for schools
- view how many emails were successfully sent each time
The new dashboard covers all of these needs.
View

Schedule

Change or delete any scheduled send

View a sent email

Technical implementation
- Our dev team will create a job that runs every day at midday (allowing time in the morning for our team to react to any changes in circumstances that could impact the send).
- If the job finds that an email has been scheduled for that day, it will automatically send it.
- If the list of recipients is over 6000, it will be split into batches and sent in a staggered way to avoid any overload issues.