A nightly risk score watches attendance, logins and progress, then runs tiered outreach and books an advisor before a student quietly drops.
Bring your stack to a call and we will scope it against how your business actually runs.
Book a callStudents almost never announce that they are giving up. They miss one session with a good reason, miss a second one quietly, stop opening the course, and then four weeks later the provider finds out through a refund request, a funding clawback, a sponsor complaint, or an empty seat at the final assessment. By then the window for a cheap intervention has closed. The information that would have predicted it was sitting in three different places the whole time: the attendance register the tutor keeps, the course login and lesson data, and the assignment submission list.
Nobody owns the join. Tutors see their own cohort but not the pattern across courses. Admin sees enrollments and invoices but not whether anyone is actually learning. A progress bar cannot tell you that a student is fourteen points behind where the cohort sits at week five, has not logged in for nine days, and has two assignments overdue. Those three facts together are a near-certain withdrawal. Separately they are invisible.
The leak is on both sides of the ledger. Revenue goes out as refunds, part-paid plans that stop paying, and renewals that never come. Revenue that never arrives is the bigger half: sponsors and employers who do not send a second cohort, outcome-based or completion-linked funding that is withheld, accreditation and awarding-body reviews that go badly, and the referral flow from graduates you never produced. Every one of those is downstream of the same operational gap, which is that no system was watching between the weekly class and the final grade.
One pipeline, Student Success, with every active learner on it for the full life of their enrollment. This is a retention board, not a sales board.
Group these on the contact record so an advisor can read a student in one screen.
BO handles the conversational layer on inbound replies to any alert, in SMS, email and web chat.
One student, week one to recovery.
Eight workflows. The first one is the engine; the rest react to what it writes. Build them in this order.
Trigger: scheduled, every day at 03:00 platform time, over every contact tagged student-active and not tagged on-break.
Steps in order:
Branches: if the contact is in Intervention Booked, Plan In Place or Withdrawal Intent, update the fields but do not change the stage. Human-owned stages are never overwritten by the scheduler. If recovered-30d is present and the band moves off green, jump straight to At Risk regardless of score.
Stop conditions: contact not tagged student-active, or stage is Withdrawn or Completed. No message is ever sent by this workflow; it only writes data.
Trigger: Attendance Exception Form submitted, or an absence record arriving from the register integration.
Conditions: exit immediately if the absence is marked authorized, or the contact carries comms-paused, on-break or save-play-running.
Steps:
Reset: any attendance record resets sessions_missed_consecutive to 0 and removes all three missed- tags.
Stop conditions: sms-opt-out suppresses the SMS leg but the task leg still runs. Any inbound reply hands the thread to BO and pauses the next scheduled step in this workflow only.
Trigger: days_since_login field changes, evaluated after the nightly job.
Conditions: only for students past week one, stage in On Track or Watch, not tagged plan-active.
Steps:
Stop conditions: any login removes both stall tags and exits the workflow. Stage moving to Intervention Booked, Plan In Place or Withdrawal Intent exits immediately.
Trigger: assignments_overdue_count increases above 0.
Steps:
Branches: a reply containing EXTEND, extension or more time routes to the tutor as a task and pauses the sequence. BO does not grant extensions.
Stop conditions: submission detected, or count returns to 0, which removes the tag.
Trigger: risk_band changes to red.
Steps:
Stop conditions: a booking on the Success Check-in or Tutor Catch-up calendar moves the stage to Intervention Booked, applies nothing further, and pauses workflows 2, 3 and 4 outright. Band returning to green or amber closes the task with a note.
Trigger: handed off from workflow 5 at the 48-hour escalation, or sessions_missed_consecutive reaching 3.
Conditions: hard gate. Runs only if guardian_contact_permitted is yes with a valid guardian_email, or sponsor_reporting_permitted is yes with a valid sponsor_contact_email. No permission, no message, no exceptions and no fallback to the student's own contact details.
Steps:
Stop conditions: student books their own check-in, band returns to green, or permission flag flips to no, which stops everything mid-sequence.
Trigger: Catch-up Plan form submitted.
Steps:
Stop conditions: Withdrawal Intent stage, or Withdrawn.
Trigger A: Withdrawal Intent Form submitted, or BO detects withdrawal language in any inbound message.
Steps:
Trigger B: scheduled daily at 07:30, one digest email per tutor.
Steps: list their students at amber or red with name, score, reason and current stage, plus anyone with two chases unanswered. One email, ranked by score, no individual pings during the day. Include a one-line count of the cohort's green students so the digest reads as a health report rather than a problem list.
Stop conditions for the digest: skip send entirely if the tutor has no amber or red students. An empty digest teaches people to stop opening it.
Every build on this page is something we configure, test and hand over with the SOPs your team needs to run it.
Book a call