Programs and classes help your team track learning, participation, and ongoing services.
A program is a larger offering or path, such as parenting education, mentoring, or another service your organization provides.
A class is an offering that clients enroll in once, such as a 10 week parenting series. A session is a single meeting of that class, for example week 3 of the series. Clients register for the class one time; attendance is taken separately for each session.
Opening a class takes you to its Overview, a hub for everything about that offering:
• The next (or today's) session, with a Take attendance shortcut straight to that session's roster.
• A snapshot of enrolled clients.
• A Register client button to enroll someone in the class.
• A Manage sessions link to see or add meetings.
Because enrollment is at the class level, you only register a client once for the whole series. Attendance is tracked separately for each session.
Both a class and its individual sessions have an Instructor field. This field only lets you pick from Staff or Volunteer records, not general contacts, so the person you assign is always someone with a role at your organization. If the instructor you need is not listed, add them as a Staff or Volunteer record first, then assign them to the class or session.
A class, and each of its sessions, has an Instructor field. This picker searches your organization's Staff and Volunteer records, the same combined list used for Time Sheets and Mentoring. It no longer searches general Connect contacts.
Because of that, being able to pick or add an instructor depends on a user group's permissions for Staff and Volunteers in Serve, not on permissions for Contacts. If a staff member is an Administrator or otherwise has View and Create access to Staff and Volunteer records, they can select an existing person or add a new one directly from the Instructor field on a class or session. If someone gets a "you don't have permission" message here, check that their user group grants access to Staff and Volunteers, see User Groups: What Staff Can Open and Change.
A session is one meeting of a class, for example "Week 3 - Bottle Feeding." Sessions do not have their own menu entry; open them from a class's session list or from Recommended Actions. Each session page defaults to its attendance roster.
Class sessions also appear on the Scheduler calendar, one block per session, alongside appointments. A Show Classes toggle in the Scheduler sidebar turns these blocks on or off (on by default), and they render in teal so they're easy to tell apart from appointments and call center hours. This is a visual overview only, registering clients and taking attendance still happen on the Class and Session records described below. See Scheduler Overview for details.
A registration records that a client enrolled in a class. You can register a client directly from a class's Overview, which is the fastest path. Registrations also stays available from the module menu so you can search and report on enrollments across every class.
• Registration happens at the class level. A client registers for the class one time, not for each meeting.
• Attendance happens at the session level. Staff mark who showed up for each individual meeting.
Opening a class takes you to its Overview tab first. This hub view is designed so staff rarely need to leave the class record to do their most common tasks:
• Register client enrolls a client in the class.
• Take attendance jumps straight to the roster for today's or the next upcoming session.
• Manage sessions opens the full list of meetings under the class.
The Overview tab also shows the next scheduled session with its date, time, and location, along with a snapshot of enrolled clients. The header at the top of the class record summarizes the schedule (start date, time, and number of sessions) and enrollment count, and offers the same Register and Take attendance actions.
Opening a session shows a "Back to class" link and a "Part of " line so it is always clear which class the meeting belongs to. The attendance roster on a session shows how many clients are enrolled and how many have been marked so far (for example, "12 enrolled, 9 marked"), and lets you mark attendance for everyone or register a client for the class without leaving the page. Registrations and Attendance lists The Registrations and Attendance entities are still available from the module menu for searching and reporting across every class or session, but day-to-day work should start from the class or session: Register a client for a class from the class hub, then use the Registrations list only when you need to search or report across many classes. Mark attendance from a session, then use the Attendance list only when you need to search or report across many sessions. When you register a client from inside a class, the Class column is hidden from that class's registrations list since it would just repeat the class you are already viewing. Awarding points from attendance Classes can be linked to a benefit type that awards a fixed number of material support points when attendance is recorded. When a class is set up with a benefit type, the Record Class Attendance dialog shows how many points will be awarded and adds the award automatically when you submit. Staff can record a client's attendance from the Points tab on the client record. If a class has no points configured, recording attendance does not add points. Use Give Points on the Points tab if you need to add a different amount. Recording attendance date: When you select a dated session, the Date field uses that session's date and is read only. Staff can see the effective date before submitting. If there is no selected dated session, today is used. If you change the selected session, the Date field updates to match the new session. Linking a class to a benefit type You can link a class to a benefit type so recording attendance can also award client points. Only active benefit types that belong to your organization can be selected. If a class has no benefit type selected, recording attendance adds the attendance entry only. No points are awarded. Recording class attendance and awarding points Use the Record Class Attendance quick action (from a class, a session, or a client's Points tab) to capture attendance. When the class has a benefit type, CoolFocus also awards that benefit once. Requirements and behavior: The client must have an active CPC case. The client must also be Active on their own record; a deactivated client shows a notice on their Overview tab, their Program list stays empty, and no benefit can be recorded for them until a staff member turns Active back on from the client's Details tab. If the class session does not have a start date and time, you must provide the attendance date when recording it. If a visit for that client, case, center, and calendar day already exists, the award links to that visit. If not, CoolFocus creates a visit for that date on the client's active case. Submitting the same attendance twice does not double award points. A duplicate submit records nothing new and is reported as already recorded.
When staff record a benefit for a client, the Program field only lists programs the client is actively enrolled in as of the benefit's Date Received. This keeps benefits tied to the program a client was actually part of at the time.
Program is optional. You can leave it blank and the benefit still saves, even when the benefit type is normally associated with a program the client is not enrolled in. CoolFocus no longer fills the field in for you and then rejects the save over a program you never chose.
If the client is not enrolled in a qualifying program yet, the field explains why instead of showing an empty list, for example: "This client is not enrolled in any program as of Sep 7, 2026." To fix this:
• Open the client and go to their Programs tab.
• Enroll them in the right program.
• Return to the benefit and pick that program from the list.
If you have not entered a Date Received yet, the message leaves out the date and just says the client is not enrolled in any program.
If you do pick a program and the save is rejected, the message tells you exactly what to fix:
• Unknown or unavailable program — the program no longer exists or isn't available to your organization. Pick a different one from the list.
• This client is not enrolled in the selected program as of the Date Received — the client's enrollment doesn't cover that date. Check their Programs tab, or adjust the Date Received.
A class's Recommended Actions include "Register client for class" and, when there is a session happening today or coming up, "Take attendance" for that session. Recently held sessions that still need attendance recorded also appear here.
Keep program and class names easy for staff to recognize. This makes reporting and check-in easier later. Register clients and take attendance from the class Overview whenever possible, it keeps enrollment and meeting attendance clearly separate.