What happens automatically
Everything JoinCPR does on a timer: class and SMS reminders, follow-ups, waitlist offers, expiry and credential notices and billing checks, and their settings.
Updated · JoinCPR help center
Besides the actions you take, JoinCPR runs several jobs on a timer. This page lists them so you know what to expect and which setting controls each.
Scheduled jobs
| Job | Runs | What it does | Controlled by |
|---|---|---|---|
| Class reminder emails | Hourly | Emails Confirmed and Pending students about N days before the class, once per class | Notifications → Class Reminder switch and "days before class" |
| SMS reminders | Hourly | Texts opted-in Confirmed students N hours before the class | Notifications → SMS class reminders and "Send reminder" |
| Post-class follow-up | Hourly | Emails Confirmed and Completed students N hours after the class ends | Notifications → Post-Class Follow Up |
| Waitlist offer expiry | Every 15 minutes | Closes waitlist offers whose window has passed and offers the seat to the next person in line | Student Portal → Waitlist |
| Certification expiry reminders | Daily, early morning | Emails students whose certificate expires in exactly N days | Notifications → Certification Expiring, reminder days, renewal link |
| Instructor credential reminders | Daily | Emails every admin and the instructor 30 and 7 days before a credential expires | Always on |
| Billing notices | Daily | "Trial ends soon" (3 days out) and "Trial has ended" emails to administrators | Always on, once each |
| Subscription check | Nightly | Re-syncs your subscription status with Stripe in case a notification was missed | Automatic |
| Square token refresh | Nightly | Keeps your Square connection alive | Automatic |
Times are based on server time (UTC), so a "daily" job lands in the early hours for US timezones. Reminder windows are relative to the class time, so daylight-saving changes do not skip or double them.
Event-driven jobs
These run within seconds of the triggering action rather than on a timer:
- Every templated email (they are queued, so allow a moment).
- Calendar events for instructors when classes are created, edited, rescheduled or deleted. See Calendar sync.
- Marketing syncs on registration, completion and cancellation. See Marketing integrations.
- Waitlist offers when a seat frees up (cancellation, refund, transfer out, capacity raised). See Waitlist.
- Payment confirmations and refunds mirrored from Stripe and Square.
Housekeeping and retention
- JoinCPR keeps its log of sent emails and texts for one year and its record of account activity for two years.
- Reminder records are kept permanently so the same reminder is never sent twice.
- Deleted items (classes, courses, locations, students, clients, promo codes, add-ons, questions, agreements, keycode banks) disappear from the app but are kept, so JoinCPR support can restore one deleted by mistake: email info@joincpr.com. Team memberships are removed outright.
Things that are not automatic
- Marking students complete and issuing certificates.
- Refunds of any kind.
- Un-cancelling a class or restoring a deactivated student.
- Low-stock alerts for keycode banks.
- Publishing a class (new classes are drafts until you publish them).