Skip to main content

Program Check-In

· 7 min read
Daniel Agafonov
FlowStack Co-founder, Software Engineer

FlowStack now handles check-in for children's ministry and any other program where someone has to be dropped off and picked up. A parent opens the app and shows a QR code at the kiosk. The child gets a name tag, the parent gets a pickup code, and the parent's phone gets a notification. At pickup they scan again, or someone they trust types the code.

This is the companion post to Connected Accounts. The two features were built together, and work seamlessly together.


Setting up programs

A program is something like "Sunday Kids" or "Wednesday Youth." You decide who it's for: anyone, or a range of grades. Then you give it time slots. A slot can repeat every 1 to 12 weeks on the days you pick, once a month (for example, the 2nd Sunday or the last Friday), or happen only once. If a slot ends earlier in the day than it starts, it runs overnight, which covers lock-ins.

FlowStack creates the actual sessions from those slots and keeps 56 days of them on the calendar. You can change the times of one session or cancel it without touching the rest. If you later edit the slot, sessions you changed by hand stay the way you left them.

Each program also has a check-in window. By default it opens 15 minutes before the start and stays open until the end. You can open it at the start time or at midnight that day instead, and close it a set number of minutes after the start.

Grades update themselves

You set up your grade list once, with an age range for each grade. The default list goes from Nursery (age 3) through 5th Grade (age 10). You also pick a promotion date, June 1 by default. FlowStack uses each child's birthday to work out their grade as of the most recent promotion date. On that date every year, every child moves up a grade, and nobody has to edit anything.

When you change the grade settings, the admin panel can show you what grade any birthdate would land in today and after the next promotion, before you save.


The kiosk

Any phone or tablet running the FlowStack app can be a check-in station if a staff member is signed in to it. Kiosk mode fills the screen and has no back button. Staff press and hold the clock to leave it. The layout changes for phones, portrait tablets, and landscape tablets.

The parent's QR code changes every 30 seconds, and can be used only once. A screenshot from last week won't work, and neither will a code from another church. After the scan, the kiosk greets the parent by name. It lists every child they can check in, with a photo, grade, and suggested session. It skips children who aren't in the grade range for that program. Checking in and checking out share one button. Check-outs happen first, so a child can leave one session and join another in a single tap. If the parent tapped the wrong child, Cancel undoes it for 60 seconds.

When a program's next session starts right as the current one ends, the parent can choose Stay for next. The child moves into the next session without being picked up and checked in again. Staff confirm those children from the roster.


Name tags and pickup labels

If you have a Brother QL label printer on the same Wi-Fi network, the app finds it on its own. The supported models are the QL-710W, QL-720NW, QL-810W, QL-820NWB, QL-1110NWB, and QL-1115NWB. If it doesn't show up, you can enter the model and IP address by hand. We wrote the printer support against Brother's published command reference and don't use any third-party printing SDK. If you would like to support a different printer, please let us know.

Each check-in prints a name tag with the child's name, grade, program, allergies, notes, a guardian's name and phone number, and the pickup code. It can also print up to four parent pickup labels. Each label is two matching halves with a tear line between them.

If a label fails to print, check-in still goes through. The kiosk shows a banner with a Retry button, so a jammed printer never leaves a family waiting at the counter.


Pickup, and who is allowed to do it

Every check-in gets a 5-character pickup code. The code never uses 0, O, 1, I, or L, so nobody has to guess which one is printed. Parents can see the code on the Check-In page in the app.

A child can be checked out by:

  • the parent who checked them in, by scanning their QR code again
  • anyone the child is shared with through Connected Accounts, with their own QR code
  • anyone who has the pickup code and types it at a kiosk
  • a staff member, who has to enter a reason, which goes in the audit log

This is where Connected Accounts matters. Grandparents who share a family with you can drop the kids off with their own phone, and you can pick them up with yours. If you stop sharing a child with someone, the kiosk checks this at the moment of the tap, not when the code was scanned. A share you removed a minute ago is already gone.

After 5 wrong pickup codes, that kiosk stops accepting codes for 10 minutes. You can set the number of tries anywhere from 1 to 20. The error message never says whether a code exists.

If nobody checks a child out, FlowStack closes the check-in 6 hours after the session ends and tells the family. The roster marks it as closed automatically, separate from a real pickup.


What parents get on their phone

Parents get a notification when their child is checked in, checked out, moved to the next session, or closed automatically. They also get one when a check-in is undone. It goes to the parent who scanned, to the account the child belongs to, and to every account the child is shared with. Tapping it opens the Check-In page. These alerts have their own Family channel in notification settings, so a parent can turn them off without turning off anything else.

Staff can also message a family from the roster. Admins set up to 20 quick messages per program, like "Noah needs a diaper change," and staff can also type their own. Before sending, the screen shows exactly who will get the message. Every message sent is logged, and the roster shows what was sent today.


Rosters

Staff with check-in access can open a live roster on the web or in the app. It refreshes every 10 seconds. On the web you can see one day across all programs. You can filter by program, session, or status, search by child or guardian name, and see counts for how many children are checked in now, how many are still in after their session ended, and how many are staying for the next one. Tapping a child shows allergies, notes, who brought them in, and who was running the kiosk.

Each check-in record keeps a copy of the child's details and the session as they were at the time. If a family edits their profile next month, or you rename a program, the past rosters still show what happened that day.

There are two roles: Check-In Management sets up programs, grades, and messages, and Check-In Staff runs kiosks and rosters. Volunteers who only need to run a kiosk don't need access to the program settings.

To set up your first program, open the Check-In section of the admin panel.

Thank you

We hope you enjoy this new feature. If you have any questions, please reach out to us.