Weekly re-engagement drafts for stalled Teachable students
Every Monday morning, spot students who have stalled in your Teachable courses and get personalized nudge emails waiting as Gmail drafts for you to review.
Build me an agent workflow that runs every Monday at 8am (school timezone) and drafts personalized re-engagement emails in Gmail for students who have stalled out in my Teachable courses. The agent should identify stalled students, write a genuinely personal nudge for each one, and leave the messages as unsent Gmail drafts so I can review before hitting send.
Trigger: cron, weekly on Mondays at 08:00.
What the agent should do on each run:
1. Call Teachable List Courses to get every active course in the school. For each course, call Teachable List Course Enrollments to pull the current student roster along with their progress percentage and the timestamps the enrollment exposes.
2. For each enrolled student, call Teachable Get Course Progress to see the per-lecture breakdown (which lectures they have completed, which are in progress, and the timestamps). Use this to identify stalled students. A student is stalled if BOTH of the following are true: they enrolled more than 14 days ago, AND they have made no lecture progress in the last 14 days OR they are stuck on the same in-progress lecture two weeks running. Skip students at 100% completion and students who enrolled less than 14 days ago.
3. Dedupe against recent nudges. Before drafting, call Gmail List Drafts (or search sent + drafts) with a query that surfaces messages sent to that student in the last 30 days. If a re-engagement email already exists, skip them. Prefer including a stable subject-line marker like "Checking in on {Course Name}" so future runs can detect prior nudges reliably.
4. Cap the batch at 20 stalled students per run. If more than 20 qualify, prioritize students who enrolled most recently (they are still warm) and defer the rest to next week.
5. For each selected student, call Gmail Create a Draft to compose a warm, first-person email from me (the course creator). Every draft must reference: the specific course name, the last lecture the student completed (by title, not lecture ID), and a concrete next step (the exact next lecture waiting for them, by title, with a one-sentence reason it is worth their time). Keep the tone empathetic and human, not marketing-y. No "we miss you" boilerplate. Assume the student is busy, not uninterested. Sign off using the school's or creator's name.
6. Leave every message as an unsent draft in Gmail. Do NOT send anything. The whole point is that I review and send manually.
Output a short run summary I can glance at: how many courses were scanned, how many students qualified, how many were skipped as recently-nudged, and how many drafts were created.
Respect Teachable's 100-requests-per-minute rate limit. Paginate list responses fully. If a course has no enrollments or a student has no progress record yet, skip gracefully. If the batch cap is hit mid-run, stop cleanly with a note in the summary.
Integrations: Teachable (List Courses, List Course Enrollments, Get Course Progress) and Gmail (List Drafts, Create a Draft).
Additional information
What does this prompt do?
- Scans every active course in your Teachable school each Monday at 8am and flags students who enrolled at least two weeks ago but have gone quiet, or who are stuck on the same lecture two weeks running.
- Writes a warm, personal email for each stalled student that names their course, references the last lecture they finished, and gives them a concrete next step to jump back in.
- Drops every message into your Gmail as a draft so you can skim, tweak, and send. Nothing goes out without you.
- Caps the batch at a sensible number per run and skips anyone who already got a nudge in the last 30 days so no one gets spammed.
What do I need to use this?
- A Teachable school on a plan that includes API access (Pro or higher) and an API key from your school admin.
- A Gmail account you send student emails from, connected with permission to create drafts.
- A rough idea of how many drafts you want per week and the tone you want the emails to strike.
How can I customize it?
- Change the day and time it runs (for example, Sunday evening if you like to prep for the week ahead).
- Tune what counts as stalled. Adjust the days-since-enrollment threshold, the inactivity window, or the per-run draft cap.
- Rewrite the email voice, sign-off, or call to action to match how you already talk to your students.
Frequently asked questions
Will these emails send automatically?
How does it decide who counts as stalled?
Will the same student get pinged every week?
Does it cover every course in my school?
What if I run a big school with thousands of students?
Related templates
Turn course drop-off into a weekly re-engagement habit.
Connect Teachable and Gmail once, and every Monday morning your stalled students have a personal nudge waiting in drafts, ready for you to review and send.