Email scheduling in the admin console

Illustration showing a heading “Email schedule’ with a table underneath containing columns for email subject and date scheduled

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:

  1. Announcing when registration opens for the new academic year.
  2. Reminding schools to set up training for the year.
  3. Reminding school induction tutors to register ECTs and mentors for the year.
  4. Reminding school induction tutors to assign each ECT a mentor in the service.
  5. Reminding schools who chose to use a training provider (known internally as the ‘full induction programme’ or ‘FIP’) that they must partner with one.
  6. 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
Diagram showing when we plan to send reminders to schools across the 23/23 academic year

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.


A view of the main scheduling screen in the admin console


The screen users will access to schedule a new email send

Change or delete any scheduled send

The screen users will access to change the date of an email send, or cancel the send

View a sent email

The summary screen for an email that's been sent

Technical implementation

  1. 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).
  2. If the job finds that an email has been scheduled for that day, it will automatically send it.
  3. 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.