Asfela AI Security Engineering — Onboarding Email Sequences¶
Two parallel sequences depending on enrollment mode:
- Sequence A — Beta cohort (4 emails before the cohort start date) — used for the first paying cohort per LAUNCH-CHECKLIST.md Phase 3.
- Sequence B — Self-paced (3 emails triggered by enrollment) — used post-launch when there is no fixed start date.
Both sequences assume Thinkific (or equivalent LMS) handles the actual delivery via its email-automation builder. The copy here is plain markdown; paste into Thinkific's editor and replace {{merge_field}} placeholders with the LMS's syntax (Thinkific uses {{first_name}}, {{course_name}}, etc.).
Conventions for all emails¶
- From:
Silas at Asfela <silas@asfela.com>— personal-from beats brand-from for high-touch courses. - Reply-to: the same; replies go directly to your inbox, not into a void.
- Tone: professional, specific, action-oriented. These are paying technical adults. No exclamation marks except in the welcome line. No emoji.
- Length: 250–400 words. Technical readers will read long, but only if every paragraph earns its place.
- Action footer: every email ends with one clear next step in bold.
- Plain-text fallback: keep formatting minimal (h2, bold, lists) so the plain-text rendering of the HTML still reads clean.
Sequence A — Beta Cohort (4 emails)¶
Send schedule (assuming a Monday cohort start):
| # | Trigger | When |
|---|---|---|
| A1 | Enrollment confirmed | Immediately, regardless of cohort start date |
| A2 | Cohort calendar | T-14 days (two Mondays before cohort start) |
| A3 | Final prep | T-3 days (Friday before cohort start) |
| A4 | Cohort opens | Day 0 (Monday cohort start, 9am local) |
A fifth post-launch follow-up (Day +3, "how is Module 0 going?") is optional and easy to add later — for the beta, you'll be in the Discord/Slack anyway and that conversation can happen there.
Email A1 — Welcome (sent immediately on enrollment)¶
Subject: Welcome to Asfela AI Security Engineering — Professional
Body:
Hey {{first_name}},
Welcome to the beta cohort of Asfela AI Security Engineering — Professional. I'm Silas — I built this course, and you'll hear from me throughout. Thanks for taking the bet on the first cohort.
Here's what you've signed up for:
- 11 modules, ~38 hours of material, paced one module per week starting {{cohort_start_date}}.
- A capstone project in Module 9 — you'll produce four security artifacts for a fictional healthcare SaaS launching an LLM feature. This is the portfolio piece.
- A certification exam in Module 10 — 50 questions, 75% to pass. Two attempts.
- A weekly office hour on {{office_hour_day_time_TZ}} — recorded for anyone who can't make it live.
- A private Slack for the cohort (invitation coming in email #3).
Before the cohort starts, three things to do now:
- Hold the calendar. {{cohort_start_date}} to {{cohort_end_date}}, ~3 hours per week. Block it.
- Hold the office hours. Weekly on {{office_hour_day_time_TZ}}. ICS invite below.
- Read the syllabus. Linked here: {{syllabus_url}} — 5 minutes; sets expectations.
You'll get three more emails from me before we start: a setup checklist (10 days out), final prep (3 days out), and a "go" email on Day 1.
If you have any questions before then, hit reply directly. I read every email.
Next step: add the cohort dates and weekly office hour to your calendar.
— Silas Asfela
Email A2 — Setup checklist (T-14 days)¶
Subject: Two weeks out — please do the M0 setup now (not on day 1)
Body:
Hey {{first_name}},
Two weeks until the cohort starts. The single biggest predictor of which beta students finish strong is whether they complete Module 0 setup before week 1, not during it. Module 0 is environment setup — Docker, Python, Ollama, API keys — and it tends to surface 1-2 surprises on every machine. Easier to debug now than mid-cohort.
The full Module 0 lab is published in the course portal already (you can access it now): {{m0_lab_url}}
Short version:
- Python 3.11+ with uv for package management.
- Docker installed and runnable (for the M3+ vulnerable target containers).
- Ollama installed and at least
llama3.2:3bpulled (ollama pull llama3.2:3b). - API key for at least one hosted LLM — OpenAI or Anthropic. You'll spend somewhere between $5 and $30 over the course; budget for $30 to be safe.
- Clone the companion code repo: instructions in the portal. You'll get a GitHub invite to
silas-asfela/ai-sec-coursewithin 24 hours of this email — accept it. - Run
uv run python scripts/sanity_check.py— if every check passes green, you're done with setup.
If something doesn't work, please reach out this week or next, not the morning of day 1. Reply to this email or post in the Slack (invitation in my next email).
One thing this course does NOT require: a GPU. Everything is designed to run on a reasonable laptop CPU.
Next step: run sanity_check.py and reply with a screenshot of the output (or any error) — it takes me 10 minutes to spot fix what would otherwise burn an hour of your week 1.
— Silas
Email A3 — Final prep + community access (T-3 days)¶
Subject: Three days out — Slack invite + Module 1 preview
Body:
Hey {{first_name}},
We start Monday. Three things in this email:
1. Your Slack invite is here: {{slack_invite_url}}
I'll be in #cohort-1-questions throughout the cohort. Other channels: #labs for hands-on issues, #capstone for the M9 work, #wins for the small "I attacked it and it worked" moments that make the course worth doing.
A norm I'd ask everyone to follow: when you ask a question, include what you tried and the actual error. Saves us all time. (If you're a security engineer, this is your culture already; if you're an ML engineer, just imagine you're filing a JIRA.)
2. Module 1 preview
We start Monday with Module 1 — AI/ML foundations for security engineers. It's the "if you've been doing security and not ML, here's the bridge" module. The labs build a tiny local RAG you'll attack in Module 3.
If you're an ML engineer and Module 1 looks remedial: skim the videos at 2x, do Lab 1.7 (the RAG build) carefully, and you're ready for Module 2.
3. Sanity check (last call)
If sanity_check.py didn't pass last week, please reach out today or tomorrow. Day-1 debugging is the worst time for both of us.
The cohort is small (we capped at {{cohort_size}}). I've read every application; this is going to be a good group.
Next step: join the Slack and post a one-line intro in #introductions.
See you Monday.
— Silas
Email A4 — Cohort opens (Day 0, 9am cohort timezone)¶
Subject: Module 1 is open — let's go
Body:
Hey {{first_name}},
Cohort is live. Module 1 unlocked: {{m1_url}}
This week's plan:
- Mon–Wed: Watch L1.1 → L1.5 (theory, ~30 min total, mostly ≤5-min videos).
- Thu–Sat: Labs L1.6 (Ollama + API model + model card) and L1.7 (build a tiny RAG).
- Sunday: Optional L1.8 (LoRA fine-tune) if you want it; the rest of the cohort moves on.
- Office hour this Thursday {{office_hour_day_time_TZ}}: {{office_hour_url}}
The capstone (M9) is the artifact you'll point to for the rest of your career. Module 1 is the table-setter — get the RAG running end-to-end this week and the rest of the course unlocks.
One ask: at the end of every module, you'll get a short feedback form (3 questions). Please fill it out. This is the beta — your feedback shapes the v1 release that students at full price get next month.
If you get stuck, the order of escalation is: search the troubleshooting doc → ask in Slack → ask in office hours → email me directly.
Next step: open Module 1 and watch L1.1.
Let's build.
— Silas
Sequence B — Self-paced enrollment (3 emails)¶
After the beta, the course moves to self-paced enrollment. The sequence shrinks because there's no waiting period:
| # | Trigger | When |
|---|---|---|
| B1 | Enrollment confirmed | Immediately |
| B2 | M0 not started after 3 days | T+3 days |
| B3 | M0 complete, M1 not started | Triggered on M0 completion |
A fourth follow-up — "where are you?" — triggered if a learner hasn't logged in for 14 days is recommended but reactive; build that one once you have any cohort to measure churn against.
Email B1 — Welcome (immediate)¶
Subject: Welcome to Asfela AI Security Engineering — Professional
Body:
Hey {{first_name}},
Welcome. I'm Silas — I built this course, and I read every reply on this email thread.
Here's what you signed up for:
- 11 modules, ~38 hours of material, self-paced (most learners finish in 8–12 weeks at ~3 hrs/week).
- A capstone project in Module 9 — four security artifacts for a fictional healthcare SaaS. Portfolio piece.
- A certification exam in Module 10 — 50 questions, 75% to pass.
- Weekly drop-in office hours: {{office_hour_day_time_TZ}}, {{office_hour_url}}. Optional, recorded.
- Private Slack/Discord for current students: {{community_invite_url}}.
Where to start: Module 0 — Environment Setup. This is where most learners hit their one setup snag. Doing it today (rather than in two weeks) means support questions get answered while it's fresh in everyone's mind.
The setup is: Python 3.11+, Docker, Ollama, an API key for OpenAI or Anthropic (~$30 budget across the whole course), and the companion repo. Detailed steps in M0.
If you hit anything weird in setup, please reply to this email or post in the community. The first 48 hours of your enrollment is when I'm most responsive to setup questions because everyone needs the same answers.
Next step: open Module 0 in the course portal and start the setup lab today.
Welcome aboard.
— Silas Asfela
Email B2 — Setup nudge (T+3 days, if M0 not started)¶
Subject: Still here — and a quick nudge on Module 0
Body:
Hey {{first_name}},
Quick check-in. You enrolled three days ago and haven't started Module 0 yet. No judgment — courses are easy to enroll in and harder to start. But here's the thing about this course specifically: the activation energy is the setup. Once Module 0 is done, the rest is mostly enjoyable.
Module 0 takes about 90 minutes if everything works first try, ~3 hours if you have to fix one thing. Either way, it's a single session you can do today or this weekend.
If something stopped you and you'd like a hand, hit reply with what happened. I respond fast to setup questions.
If you got slammed with work and just need a moment: reply with the word "later" and I'll send a follow-up in two weeks instead of pestering you.
Next step: open Module 0, or reply with "later".
— Silas
Email B3 — Momentum check (triggered when M0 completes, M1 not started)¶
Subject: M0 done — Module 1 is the most fun in the course
Body:
Hey {{first_name}},
Nice — Module 0 is done, which means your environment works. The hard part of the course infrastructure is behind you.
Module 1 (AI/ML Foundations for Security Engineers) is the most fun in the course — it's where you build a tiny RAG application that you'll spend the rest of the course attacking and defending. Three hours, six short videos, one lab.
If you're a security engineer learning the AI side: this is the module that will give you the most "oh that's how it works" moments per minute.
If you're an ML engineer learning the security side: skim the videos and go straight to Lab 1.7 — you can finish it in an evening.
A reminder: weekly office hours at {{office_hour_day_time_TZ}}, {{office_hour_url}}. Drop in anytime. They're casual.
Next step: open Module 1 and watch L1.1.
— Silas
Other email assets to draft later¶
These aren't part of the welcome sequence but should be templated as you go:
- Cohort weekly digest — sent every Monday during a cohort; recap of last week + the week's plan + office hour reminder.
- Module completion congratulations — fires when learner completes each module; brief, encouraging, points at the next module.
- Capstone reminder — fires when learner reaches Module 9; calls out the time investment + capstone office hour.
- Exam pass / fail follow-up — fires when exam result is recorded; for pass, the certificate URL + "here's how to share on LinkedIn"; for fail, the 7-day cool-down reminder + link to L10.3 explanations + suggested weak modules to review.
- Capstone-with-distinction notification — fires when reviewer marks capstone as Excellent in 2+ deliverables; congratulates + tells the learner their cert is annotated.
- Inactive learner re-engagement — fires after 30 days of no login; "here's where you left off, here's why finishing matters."
- Refund deadline reminder — fires at day 12 of the 14-day refund window if learner hasn't passed Module 2; "if the course isn't for you, here's the no-questions-asked refund flow."
The last one feels uncomfortable but it's the right thing to do — keeps your refund rate low (because the right learners stay), and the wrong ones don't sit on a course they hate.
Operational notes for the operator¶
- Sender warm-up. If
silas@asfela.comis a new sender, do not blast all enrollment emails at once. Thinkific paces these by default; if you switch to a transactional provider (Postmark, SendGrid), respect the warm-up curve. - Personalize beyond
{{first_name}}. Once you have 30+ enrolled, the marginal value of a personal sentence in email A1 ("saw you came from {{referrer}} — glad you found it") is high. Worth a manual minute per new student. - Audit deliverability. Send yourself a test of each email; check it in Gmail, Outlook, and Apple Mail. The plain-text fallback often renders worse than expected.
- Iterate on subject lines. Open rate on A2 ("Two weeks out…") is the leading indicator of whether your beta students will complete M0 before day 1. If <60% open, revise the subject.
- Don't drop people who don't reply. Silence in B2 doesn't mean they want to drop out — they probably just got busy. Send B3 anyway when M0 completes.