-
Notifications
You must be signed in to change notification settings - Fork 514
Kiosk Devices
The Kiosk Manager allows you to set up self-service kiosk devices for event check-in, attendance tracking, and other church activities. This guide covers how to register, configure, and manage kiosk devices.
Kiosks are dedicated devices (tablets, computers, or touch screens) that can be placed in your church lobby or classrooms to allow members to check in to events, Sunday school classes, or other activities without requiring staff assistance.
- Two-column tablet-optimized layout - "Waiting to Check In" and "Checked In" sections
- Student age display - Shows each student's age when birth year is available
- Birthday recognition - Highlights students with upcoming, recent, or today's birthdays
- Parent Alert - Teachers can send notifications to parents via email, SMS, or projector
- Checkout All - Bulk checkout all students at end of class
- Photo support - Displays student photos or gender-based icons
Before setting up kiosks, ensure you have:
- Administrator access to ChurchCRM
- At least one future event created in the system (kiosks can only be assigned to events with future start dates)
- A Group linked to the event (the group members become the check-in roster)
To use a kiosk, you first need an event with a linked group:
- Navigate to Events → Add Event in ChurchCRM
- Create an event (e.g., "Sunday Service" or "Sunday School")
- Set the Start Date/Time to a future date
- Select a Group in the Group dropdown - this links the event to the group's membership
- Save the event
Important: The Group selection is required for Sunday School kiosks. The kiosk displays members from the linked group as the check-in roster. Without a group, the kiosk will show "No class members found."
Note: Only events with start dates in the future will appear in the kiosk assignment dropdown. Past events are automatically filtered out.
- Log in to ChurchCRM as an administrator
- Navigate to Admin → Kiosk Manager
- Or go directly to:
https://your-churchcrm-url/kiosk/admin
Note: Only administrators can access the Kiosk Manager. Standard users will be denied access.
Before a new device can register as a kiosk, you must temporarily enable registration:
- Go to Admin → Kiosk Manager
- Toggle the Enable New Kiosk Registration switch to Active
- You have 30 seconds to register new devices while this is active
- The toggle shows a countdown and automatically turns off after 30 seconds

On the device you want to use as a kiosk:
- Open a web browser (Chrome, Firefox, Safari, etc.)
- Navigate to:
https://your-churchcrm-url/kiosk/ - The device will automatically register and receive a unique name (e.g., "ipheec")
Important: Make sure the registration window is still active (within 30 seconds) when you access the kiosk URL.
When a newly registered kiosk loads, it will display:
- "Awaiting Acceptance" status with a yellow hourglass icon
- The Kiosk Name assigned to this device
- Step-by-step instructions on how to accept the kiosk from the admin panel
The kiosk will automatically update once accepted by an administrator.
Once registered, the kiosk will appear in your Kiosk Manager with a status of Not Accepted:
- Return to the Kiosk Manager page
- Find the newly registered kiosk in the table (use the Kiosk Name shown on the device)
- Click the Accept button (green checkmark icon) to activate it

After accepting, you can assign the kiosk to a specific event:
- In the Assignment column, a dropdown will appear
- Select an event from the dropdown (only future events are listed)
- The kiosk will now be configured for that event's check-in
No events in the dropdown? You need to create a future event first. See the Prerequisites section above.
Once assigned, the kiosk device will display:
- The event name and start/end times
- A list of group members who can check in (from the linked group)
- Two columns: "Waiting to Check In" and "Checked In"
- Check-in buttons for each person
- Student ages (when birth year is available)
- Birthday banner highlighting students with upcoming or recent birthdays
The kiosk displays a tablet-optimized interface designed for teachers:
- Header: Event name, group name, check-in/waiting counts, and "Checkout All" button
- Birthday Banner: (Optional) Shows students with birthdays within 14 days
-
Two Columns:
- Left: Students waiting to check in (yellow header)
- Right: Students already checked in (green header)
Each student card shows:
- Photo (if uploaded) or gender icon (male/female silhouette)
- Name with optional birthday cake icon 🎂
- Age (when birth year is set)
- Check-in button (green arrow icon)
- Parent Alert button (bell icon) - only for checked-in students
Students with birthdays are highlighted:
- Today: Gold pulsing card with "Today!" badge
- Upcoming: Green card showing "Turning [age]" (within next 14 days)
- Recent: Gray card (within past 14 days)
The bell button allows teachers to quickly notify parents that they need to come pick up their child. This is useful for:
- Illness or bathroom accidents
- Behavior issues requiring parent attention
- Early pickup requests
- End of class notification
When clicked:
- Button shows a spinning loader while sending
- Notifications are sent via configured channels (email, SMS, projector)
- Success/failure toast notification appears
- Parents receive: "A notification was triggered by the classroom teacher"
Note: The alert button only appears:
- For students who are checked in (not for waiting students)
- When at least one notification method is configured (email, SMS, or OpenLP)
The "Checkout All" button in the header allows teachers to check out all students at once when class ends:
- Click the button in the header
- All checked-in students are moved back to "Waiting" status
- Attendance records are updated with checkout times
| Column | Description |
|---|---|
| Id | Unique identifier for the kiosk |
| Kiosk Name | Auto-generated name (can be used to identify the device) |
| Assignment | The event or function assigned to this kiosk |
| Last Heartbeat | When the kiosk last communicated with the server |
| Accepted | Whether the kiosk has been accepted for use |
| Actions | Available operations for the kiosk |
| Button | Icon | Description |
|---|---|---|
| Reload | 🔄 | Force the kiosk to reload its page |
| Identify | 👁️ | Display an identification message on the kiosk screen |
| Accept | ✓ | Accept a newly registered kiosk (only shown for unaccepted kiosks) |
| Delete | 🗑️ | Remove the kiosk from the system |
If you make configuration changes or need to refresh a kiosk:
- Click the Reload button for that kiosk
- The kiosk will refresh on its next heartbeat (within 30 seconds)
If you have multiple kiosks and need to identify which physical device corresponds to which entry:
- Click the Identify button
- The kiosk will display an identification message on screen
- This helps you match entries in the table to physical devices
To remove a kiosk from the system:
- Click the Delete button (trash icon)
- Confirm the deletion in the popup dialog
- The kiosk and its assignments will be permanently removed
Warning: Deleting a kiosk cannot be undone. The device will need to be re-registered if you want to use it again.
For the best kiosk experience, configure the device's browser:
- Enable Full Screen Mode (F11 on most browsers)
- Disable browser notifications
- Set the kiosk URL as the homepage
- Enable auto-start for the browser on device boot
For Chrome, you can launch in kiosk mode:
chrome --kiosk https://your-churchcrm-url/kiosk/- Place kiosk devices in supervised areas
- Consider using a locked kiosk enclosure for tablets
- Use a dedicated user account on the device with limited permissions
- Disable access to browser settings if possible
For the Parent Alert feature to work, you must configure at least one notification method:
- Go to Admin → System Settings → Email Setup
- Configure your SMTP settings:
- SMTP Host (required)
- SMTP User/Password (if authentication is required)
- Test by sending a test email from the system
- Sign up for a Nexmo/Vonage account
- Go to Admin → System Settings → Integration
- Configure:
- Nexmo API Key
- Nexmo API Secret
- Nexmo From Number (your purchased Nexmo number)
- Install and configure OpenLP presentation software
- Enable the OpenLP API in OpenLP settings
- Go to Admin → System Settings → Integration
- Configure:
-
OpenLP URL (e.g.,
http://192.168.1.100:4316) - OpenLP Username (if authentication enabled)
- OpenLP Password (if authentication enabled)
-
OpenLP URL (e.g.,
When a parent alert is triggered, notifications are sent via all configured methods simultaneously.
- Go to Kiosk Manager
- Find the kiosk in the list
- Click Accept to activate it
- Ensure the Enable New Kiosk Registration toggle is active
- You have 30 seconds to complete registration
- Clear the browser cookies on the device and try again
- Check that the device can reach your ChurchCRM server
This means the registration window has closed:
- Return to Kiosk Manager
- Enable registration again
- Quickly refresh the kiosk page
Only future events appear in the assignment dropdown:
- Make sure you have created events in ChurchCRM (Events → Add Event)
- Verify the events have start dates in the future (today or later)
- Refresh the Kiosk Manager page to reload the event list
- If you just created an event, it should appear immediately after refresh
The kiosk displays members from the linked group:
- Edit the event assigned to the kiosk
- Ensure a Group is selected in the event's Group dropdown
- Verify the group has active members
- Members must be in the group with the correct role to appear
Ages are only displayed when birth year is set:
- Edit the person's profile
- Ensure Birth Year is filled in (not just month/day)
- If the person has "Hide Age" enabled in their profile, age will still show on kiosk for staff convenience
The alert button only appears when:
- The student is checked in (button hidden for waiting students)
- At least one notification method is configured (email, SMS, or OpenLP)
Check your notification settings in Admin → System Settings → Integration
Check the Last Heartbeat column:
- If it shows a recent time, the kiosk is connected
- If it shows "Never" or an old time, the kiosk may be offline
- Verify the device has network connectivity
- Try refreshing the browser on the kiosk device manually
For developers integrating with the kiosk system:
All admin endpoints require administrator authentication.
| Method | Endpoint | Description |
|---|---|---|
| GET | /kiosk/api/devices |
List all registered kiosks |
| POST | /kiosk/api/allowRegistration |
Enable 30-second registration window |
| POST | /kiosk/api/devices/{id}/reload |
Send reload command to kiosk |
| POST | /kiosk/api/devices/{id}/identify |
Send identify command to kiosk |
| POST | /kiosk/api/devices/{id}/accept |
Accept a registered kiosk |
| POST | /kiosk/api/devices/{id}/assignment |
Set kiosk event assignment |
| DELETE | /kiosk/api/devices/{id} |
Delete a kiosk |
These endpoints are used by the kiosk devices themselves:
| Method | Endpoint | Description |
|---|---|---|
| GET | /kiosk/device/ |
Kiosk device main page |
| GET | /kiosk/device/heartbeat |
Device heartbeat (returns commands) |
| GET | /kiosk/device/activeClassMembers |
Get list of group members with check-in status |
| GET | /kiosk/device/activeClassMember/{id}/photo |
Get member's photo |
| POST | /kiosk/device/checkin |
Check in a person to the event |
| POST | /kiosk/device/checkout |
Check out a person from the event |
| POST | /kiosk/device/checkoutAll |
Check out all checked-in people |
| POST | /kiosk/device/triggerNotification |
Send parent alert notification |
{
"People": [
{
"Id": 123,
"FirstName": "John",
"LastName": "Smith",
"Gender": 1,
"age": 8,
"birthdayThisMonth": true,
"birthdayUpcoming": true,
"birthdayRecent": false,
"birthdayToday": false,
"birthDay": 15,
"birthMonth": 2,
"hasPhoto": true,
"RoleName": "Student",
"status": 0
}
],
"GroupName": "3rd Grade Sunday School",
"notificationsEnabled": true
}Field descriptions:
-
status: 0 = not checked in, 1 = checked in -
age: Calculated from birth year (null if birth year not set) -
birthdayUpcoming: Birthday within next 14 days -
birthdayRecent: Birthday within past 14 days -
birthdayToday: Birthday is today -
notificationsEnabled: True if email, SMS, or OpenLP is configured
- Installation Guide ← Start here!
- First Run Setup
- Features Overview
Day-to-day usage of ChurchCRM
- User Documentation
- People Management
- Groups & Events
- Tools
- Finances
Server management & configuration
- User Management
- System Maintenance
- Configuration
- Troubleshooting
- Localization
Contributing to ChurchCRM
- Quick Start
- Testing & CI/CD
- Code & Architecture
- Localization
- Release & Security