crCarl Rayner Let’s talk
← All work
Practical guideeTap attendanceBy Carl Rayner

Absence emails into eTap, done before the bell.

If your school office types parent absence emails into eTap every morning, that job can run overnight. Here’s how the system I built at Berkley Normal Middle School works, what it needs, what stays with staff and how another school could start.

The Berkley attendance workflow · illustration, no student records shown.
The job

The morning absence pile.

Parents email the school when their child is away. Someone in the office opens each email, finds the student in eTap and types in the attendance code and the parent’s comment. At Berkley that was 30 to 40 emails on a typical school day, and around 150 during a flu surge.

It’s careful, repetitive, rule-based work. That makes it a strong fit for automation, as long as the unclear cases still reach a person.

How it works

Overnight, from the inbox to eTap.

From 5pm to 8:45am, the system reads each absence email, matches the student, works out the dates and the attendance code, and enters the code and the parent’s comment in eTap.

It uses the Gmail API to read the school’s absence inbox and Playwright browser automation to work in eTap through the school’s existing login, the same screens a staff member uses. A local ledger records every email it has processed.

Gmail APIeTapNode.jsTypeScriptPlaywright
Checks

Every entry is checked after it saves.

A successful click is not a saved record. After each entry, the system checks the saved code and comment, and only then marks the email as read.

Duplicates are caught and attendance codes staff have already entered are protected, so it never overwrites a decision a person has made. Anything it can’t match with confidence is left for a person.

What stays with staff

A short list at 8:45am.

At 8:45am the office receives one email: what has been entered, and the short list that needs a person. Daytime absences stay with staff, as they always have.

“It’s been an absolute game changer. The absences are done before I’ve even made my coffee, and I just check the few it flags. It saves me over an hour every day, closer to two.”

Attendance officer, Berkley Normal Middle School

Time saving is the attendance officer’s estimate, not a timed measurement.

Rules, not AI

No AI decides attendance.

Every decision follows programmed rules agreed with the attendance officer. No generative AI reads the emails or chooses a code. For attendance records, rules are easier to test, explain and trust.

AI can help with messier information in other jobs, but it needs testing on real examples and a clear route to human review.

What it needs

What your school would need.

An inbox where parent absence emails arrive (Berkley’s is in Gmail), eTap, and a school computer that runs overnight with an active eTap session. The system runs on that school computer and works only with the school’s own inbox and eTap login.

An owner. eTap’s web interface and the school’s setup change over time, so the system needs someone to keep it working. At Berkley, that’s me.

Getting started

Start with the attendance officer.

I’d begin with the person who does the job now: how absence emails arrive, which codes they use and which cases need their judgement. Those become the rules, and everything else goes on the 8:45am list.

Then measure what actually changes: staff time before and after, including time spent checking the list, not just the number of emails received.

Want this for your school’s office? Email me at carl@carlrayner.com.

Open to senior roles and substantial projects · remote or relocation

Let's build it.

Hiring for a senior creative technology role, or planning a project that matters? Tell me what you’re trying to achieve and where you’re based. I’m in New Zealand, spent six years in Singapore and am open to remote work or relocation.