Creating an Online Enrollment Framework

Districts have different criteria for student registration. They also have varying workflows and folk involved in the process. I wanted to create a framework for students to enroll in a district. My criteria for a successful framework:

  • Easy to use. For all stakeholders.
  • Simple and efficient.
  • Cheap and reliable.
  • Adaptable.
  • Integration with SIS.

Good workflows are notoriously complicated to design (branched thinking always hurts my head!). Nevertheless, I established a pretty solid framework at Hamilton and it’s worth sharing with the education community at large.

Tools Used

The basics:

  1. WordPress. WordPress is the swiss army knife of the web.
  2. Hosting ($22 a month at Cloudways)
  3. GravityForms Plugin ($59 a year)
  4. GravityFlow ($97 a year)

The extras:

  1. Avada theme (there are other really good free themes available)
  2. Updraft Plugin for backups (free)
  3. WordFence for some extra security (free)
  4. Abre WordPress Plugin to sync users (free)

Total cost for a district was $420 a year (Note: the hosting actually runs more than just registration – so it’s actually more of a deal).


First, I launched a WordPress instance on Cloudways. Then I customized the install with a district branded theme and added the relevant plugins.

After laying the base tools, it was time to create the enrollment form. This involved some conversations with the enrollment clerks (what was current practice, what worked, what didn’t work, what could be better, etc.). Using GravityForms, I built out a multipaged form while paying particular attention to cognitive overload.

Once the form was created, it was time to define the workflow of the form using GravityFlow.

The Process. From Start to Finish.

I did some tweaking of the process based on feedback from the enrollment office. But in general, it worked like so.

1. Parent Completed the Form

  • Hamilton has central enrollment. Parents arrived at the office and walk to a Chromebook Kiosk.
  • Kiosk has the enrollment form loaded (Abre bonus: This was actually a focus lesson to prevent wandering).
  • Parent completed the form
  • Parent bring required paperwork to the clerk (proof of residency, etc.)


2. Clerk Received Form Entry

  • The clerk received email of entry OR they had the entry dashboard open on their computer.
  • They reviewed the entry and answered any questions
  • They attached any documents (scanned)
  • The clerk completed additional form fields (for example, what school to be assigned, any missing paperwork, etc.).
  • The step was marked complete.

3. Form Entries Routed to Departments Based on Conditionals

  • If a student had an IEP, a WEP, or was ELL, the form was routed (via email) to the relevant departments.
  • Relevant departments completed additional fields (for example, obtaining the IEP from a different district).
  • The step was marked complete.

4. Form Routed Back to the Enrollment Clerk

  • The clerk proofed all fields one last time.
  • The step was marked complete.
  • On marking complete, the assigned school received an email with all the relevant information about the incoming student.


5. SIS Import

Depending on how crazy the enrollment office was on any particular day, the clerk would either:

  1. Manually add new student to the SIS
  2. Download a CSV of all students who enrolled that day. Import into the SIS.

Step 5 was the most annoying as we never fully developed a way (and I’m not convinced there is a good way) to integrate with our SIS to automate the process. Obtaining API tokens and access was always a challenge. Thus the CSV import.


This worked and still works for Hamilton. While WordPress isn’t the hardest tool to use, there is some general level learning that needs to happen.

If you’re a district considering this framework, someone needs to own the development and the process. It’s never good to set something up and walk away.

That said, I strongly suspect someone in a school organization has the skill set.


Drop me a line in the comments section!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts