Back to the build library
Education & training
Standard

Alumni and Advanced Course Upsell

A progression path mapped at completion, a warm graduation window and signal-scored nurture that turns finishers into the next cohort.

Industry
Education & training
Build effort
Standard
Typical time to launch
2–3 weeks
On this page
The problemWhat gets builtHow it runsAutomations in detailWhat changesBefore you start
Want this built for you?

Bring your stack to a call and we will scope it against how your business actually runs.

Book a call
01

The problem

The day someone finishes a course is the day a training provider is at maximum credibility and minimum effort. The learner just had a good experience, they trust the organization, they have momentum, and for the first time they can see what they still do not know. Almost every provider spends that day issuing a certificate and then goes silent. Four months later a cold email arrives offering the advanced course, by which point the momentum is gone, the learner has forgotten the tutor's name, and the message reads like marketing from a stranger.

The leak is not a missing campaign. It is a missing map. Nobody has written down, for each course, what the sensible next step is for each kind of finisher. The learner who scraped through needs a consolidation course; the one who excelled needs the advanced one; the one who completed while unemployed needs something different from the one whose employer paid. Without that map, the only thing automation can do is blast the whole alumni list the same offer, which teaches the list to ignore you and buries the small number of people who were ready.

Meanwhile the three cheapest growth assets a provider owns go unharvested at exactly the moment they are easiest to collect. A graduate will write a testimonial in the week they finish and will not in month six. A graduate will refer a colleague when they are still telling people about the course and will not once it is background. And a graduate who takes a second course is dramatically more likely to take a third, which means the real cost of a missed progression is not one enrollment but the whole chain of them. Providers routinely spend heavily on cold acquisition while a warm list of people who already paid once sits in a spreadsheet labeled past students.

02

What gets built

The progression map, built before anything else

This is the artefact the whole build depends on and it is not a technical one. For every course you run, write down the next step for each kind of finisher. A workable starting grid per course: strong completion goes to the advanced course, borderline completion goes to a consolidation or practical module, employer-funded goes to a team or cohort offer pitched to the employer, self-funded unemployed goes to the shorter add-on credential, and completed-but-disengaged goes to nothing except a satisfaction conversation. Store the result as next_course_recommended and progression_path. Without this, the build degrades into a newsletter.

Pipeline and stages

One pipeline, Alumni Progression. Every graduate enters on completion day.

  • Just Completed - inside the 30-day warm window.
  • Nurture - past the window, on the long-horizon path content.
  • Interest Shown - an engagement signal threshold crossed, or a form submitted.
  • Taster Booked - a seat on a taster session or alumni webinar.
  • Advisory Call Booked - a conversation with a course advisor on the calendar.
  • Offer Discussed - the advisory call happened and a specific next course was discussed.
  • Objection Held - a named reason for not proceeding, with a dated follow-up.
  • Waitlisted - wants the course, wrong cohort date.
  • Enrolled Next - closed won. Also feeds the attendance and progress alerts build.
  • Dormant - no engagement for 12 months.
  • Closed - Not Progressing - told us no, with a reason.

Calendars

  • Next Step Advisory Call - 20 min - round robin across course advisors. Pitched as advice, not a sales call, and the booking page copy should say so honestly.
  • Taster Session - a dated group calendar with seat caps. One real hour of the advanced course content, taught by the actual tutor.
  • Alumni Webinar - monthly, dated, open to all alumni. The cheapest interest-signal generator in the build.
  • Employer Team Training Review - 30 min - for graduates whose employer paid.

Custom fields

  • Completion: course_completed_code, completion_date, days_since_completion, completion_band, attendance_rate_at_completion, tutor_name, cohort_name.
  • Progression: next_course_recommended, progression_path, alumni_segment, cohort_target_start, waitlist_position, prerequisite_met.
  • Signals: interest_score, interest_signal_count, last_engagement_date, last_engagement_type, taster_attended, webinar_attended_count, syllabus_downloaded, pricing_page_visits.
  • Sales: advisory_call_date, advisory_call_outcome, objection_primary, objection_notes, offer_sent_date, offer_status, follow_up_date, advisor_assigned.
  • Commercial context: employer_name, employer_paid_last, employer_contact_email, funding_route, payment_plan_used.
  • Advocacy: nps_score, review_left, review_platform, testimonial_given, testimonial_consent, referral_count, referrals_enrolled, reward_status.

Tags

  • Identity: alumni, completed-[course_code], path-[next_course_code], multi-course-alum.
  • Window: grad-window, grad-30d, grad-90d, grad-180d, grad-12m.
  • Signals: interest-hot, interest-warm, taster-attended, webinar-attended, syllabus-downloaded, advisory-booked.
  • Objections: objection-cost, objection-timing, objection-relevance, objection-employer, objection-confidence.
  • Advocacy: promoter, passive, detractor, reviewer, referrer, testimonial-cleared.
  • Suppression: do-not-market, email-opt-out, sms-opt-out, dormant-12m, complaint-open.

Forms, surveys and funnels

  • Completion Reflection - sent on completion day. Five questions: how likely you are to recommend us on a zero to ten scale, what you can do now that you could not before, what you want to learn next, what is your situation now (same job, new job, looking, self-employed, studying), and may we quote you. This one form sets nps_score, progression_path, alumni_segment and testimonial_consent in a single submission. Build it first and keep it short.
  • Next Step Interest - a one-screen form behind every progression message. Which course, when you would want to start, how you would fund it, and whether you want a call or just the syllabus.
  • Referral form - name, email, relationship, and whether we may say who referred them. Never pre-fill a colleague's details.
  • Testimonial and consent form - the quote, permission to use it, where it may appear, and whether their name, employer and photo may be used. Three separate checkboxes, not one.
  • Alumni progression landing page - one page per progression path, not a general course catalog. It opens with what the graduate already has, names what the next course adds, lists the dates, and offers a taster seat and an advisory call. The syllabus download is the signal capture.

BO and the guardrails

  • BO may: recommend the mapped next course and explain why it follows from what they completed, answer questions on curriculum, prerequisites, format, duration, dates and assessment, send the syllabus, book a taster seat or advisory call, add someone to a waitlist, and take a referral.
  • BO may not quote prices, fees, discounts, installment terms or any figure. Every pricing question routes to a human or to the advisory call booking at bookings.appbo.io. This is an absolute rule in this build: pricing is scoped per learner and per funding route, and a wrong number from an assistant is a refund conversation later.
  • BO may not promise an outcome. No employment claims, no salary claims, no guarantee of progression, no confirmation that a credential will be accepted by a particular employer or regulator. If asked, BO states the course content and defers.
  • BO may not confirm funding or grant eligibility. It can confirm which funding routes the provider works with and hand off.
  • BO must read complaint-open and detractor before any progression suggestion. Selling the advanced course to someone with an unresolved complaint is the single worst thing this build can do, so make it structurally impossible rather than a matter of tone.

Numbers and channels

  • Email is the backbone. SMS is used sparingly and only for time-bound things: a taster seat, a cohort closing date, a reply to a conversation the graduate started.
  • One alumni sender identity, ideally the tutor's name for the graduation-window messages and the provider name afterwards. The tutor's name in the warm window materially outperforms the brand; test it and keep whichever wins.
  • Employer messages on a separate thread against the employer contact record.
  • Social planner for alumni stories, posted only from testimonial-cleared records with the specific consents ticked.
  • Quiet hours, and a hard frequency cap of two marketing emails per alum per week across every sequence in this build.
03

How it runs, step by step

One graduate, completion day to second enrollment.

  1. Completion fires. Daniel finishes the Level 3 course with a strong result. The completion workflow writes course_completed_code, completion_date, completion_band of strong and tutor_name, applies alumni, completed-L3OPS and grad-window, and creates an opportunity in Just Completed.
  2. The progression map resolves. Strong band plus employer-funded last time resolves to next_course_recommended of L4LEAD and progression_path of advanced-employer. Tag path-L4LEAD applies. Nothing has been sent yet.
  3. Certificate and reflection go out together. Same day. The certificate email carries the Completion Reflection form as its only call to action. Attaching the ask to the thing they actually want is what gets the response rate.
  4. He submits the reflection. nps_score is 9, so promoter applies. He writes that he wants to learn to run a team, and that he is in the same job. alumni_segment becomes employed-progressing, and his own words about running a team are stored in objection_notes for the advisor to use later.
  5. The advocacy ask lands while he is warm. Day 3, because he is a promoter, he gets one review request naming the platform, and a separate testimonial and consent form. He leaves a review. review_left and reviewer are set.
  6. Day 7, the tutor speaks. An email from his actual tutor, not the brand, saying what he did well and what the natural next step is, with the L4LEAD page link. One personal paragraph, one link, no offer, no price.
  7. Day 14, the taster. An invitation to a dated taster session with the L4LEAD tutor, one real hour of content, seats capped. He books. taster-attended is pending, interest_score increases, stage moves to Taster Booked.
  8. He attends and downloads. After the taster he downloads the syllabus from the L4LEAD page. Two strong signals in a week push interest_score over the hot threshold. interest-hot applies and the stage moves to Interest Shown.
  9. A human takes over. The hot handoff creates a task for advisor_assigned within 2 hours and sends one short SMS from the advisor by name offering a 20-minute advisory call. He books for Thursday. Stage moves to Advisory Call Booked and every automated sequence pauses.
  10. The call surfaces the real blocker. He wants it, but his employer would need to pay and he does not know how to ask. objection_primary is set to employer, objection-employer applies, stage moves to Objection Held.
  11. The objection branch does something specific. Not a reminder. He gets a short business-case document he can forward to his manager, naming the skills, the time commitment and the cohort dates, plus an offer for the provider to speak to his employer directly. He takes the offer and gives the employer contact.
  12. The employer track runs. The employer contact is invited to an Employer Team Training Review. On that call it emerges three of their people could go. The conversation becomes a cohort discussion and the account owner picks it up.
  13. Enrollment lands. Daniel enrolls on the next cohort. Stage moves to Enrolled Next, multi-course-alum applies, and he is handed to the attendance and progress alerts build as a new student while staying on the alumni pipeline.
  14. The loop closes. Day 14 into the new course he gets a referral ask that works because he is mid-experience and already referred once in conversation. His testimonial, already consented, goes into the social planner queue, and his two colleagues enter as referred leads attributed to him.
04

Automations in detail

Eight workflows. None of them quote a price. Every pricing question in every workflow routes to a human or to the advisory call booking at bookings.appbo.io.

1. Completion Capture and Path Assignment

Trigger: course completion event, or an opportunity moving to Completed on the Student Success pipeline.

Steps:

  1. Write course_completed_code, completion_date, completion_band, attendance_rate_at_completion, tutor_name, cohort_name.
  2. Apply alumni, completed-[course_code] and grad-window. Create the opportunity in Just Completed.
  3. Resolve the progression map: branch on completion_band, then on who funded the last course, then on alumni_segment if already known. Write next_course_recommended and progression_path, and apply path-[next_course_code].
  4. If no path resolves, write progression_path as none and apply no path tag. These records get workflow 8 only.
  5. Check prerequisite_met against the recommended course. If a prerequisite is missing, substitute the bridging course rather than sending an offer the person cannot accept.
  6. Send the certificate email with the Completion Reflection form as the single call to action. Nothing else goes out on day 0.
  7. Wait 3 days. If the reflection is not submitted, send one reminder. Wait 5 more days, one final SMS: "Hi [first name], two minutes on how [course name] went would really help us: [link]". Then stop asking.

Branches: if the contact carries complaint-open, skip the reflection and all of workflow 2, and create a task for the program lead instead.

Stop conditions: do-not-market applied at any point stops everything except the certificate itself.

2. Graduation Window Sequence, Days 0 to 30

Trigger: grad-window applied. This is the highest-value sequence in the build and the one most often wasted.

Conditions: requires progression_path not equal to none, and no complaint-open or detractor tag.

Steps:

  1. Day 3, email from the tutor. Subject: "What you did well, and what comes next". One personal paragraph on their work, then one sentence on the mapped next course and a link to the progression page. No offer, no price, no urgency.
  2. Day 7, email. One piece of genuinely useful content from the next course - a real lesson, a tool, a worked example. The point is to demonstrate rather than describe.
  3. Day 14, taster invitation. Email plus SMS with two or three dated taster sessions and the seat count. SMS: "Hi [first name], we're running a free hour of [next course name] on [date] with [tutor name]. Want a seat? [link]"
  4. Day 21, branch on engagement. If interest_score has moved at all, hand to workflow 4. If it has not, send the alumni webinar invitation and nothing more aggressive.
  5. Day 28, one direct ask. Email naming the next cohort start date, what the course covers and the Next Step Interest form. This is the only message in the window that asks directly, and the only one framed as a decision.
  6. Day 30, close the window. Remove grad-window, apply grad-30d, move the opportunity to Nurture.

Stop conditions: any form submission, taster booking or advisory booking exits to workflow 4 or 5. email-opt-out suppresses the email legs, sms-opt-out the SMS leg.

3. Progression Path Nurture, Month 2 to Month 12

Trigger: stage moves to Nurture.

Steps:

  1. Send one path-specific content email every 21 days, drawn from the content set for progression_path. Four pieces of content cycling with a fifth slot that carries a dated cohort announcement.
  2. Every third message is an invitation rather than content: a taster, a webinar, or the Next Step Interest form.
  3. At each cohort enrollment deadline for next_course_recommended, send one dated announcement to the whole path: the start date, the application close date, remaining seats. Real dates and real seat counts only - never a fabricated scarcity line.
  4. At 90 days apply grad-90d, at 180 days grad-180d, at 365 days grad-12m. Use these to vary tone, not frequency.
  5. Every message carries a single secondary call to action: refer a colleague, with the shareable referral link.
  6. At 12 months with no engagement at all, hand to workflow 8's dormancy branch.

Branches: graduates whose employer funded the last course get one extra message per cycle framed for forwarding to a manager, with the business-case asset attached.

Stop conditions: interest-hot, any booking, Enrolled Next, Closed - Not Progressing, or any opt-out.

4. Interest Scoring and Hot Handoff

Trigger: any tracked engagement event.

Scoring, additive, with a 60-day rolling decay:

  • Progression page visit, 5. Third visit or more in 14 days, 15 instead.
  • Syllabus download, 20.
  • Pricing or fees page visit, 25. The strongest single passive signal in the build.
  • Webinar registration 10, attendance 20.
  • Taster registration 25, attendance 40.
  • Next Step Interest form submitted, 50.
  • Reply to any progression message asking a question, 30.
  • Three or more email opens with no clicks, 5. Weak, but not zero.

Steps:

  1. Write interest_score, increment interest_signal_count, write last_engagement_date and last_engagement_type.
  2. At 30 or above, apply interest-warm and shorten the nurture interval from 21 days to 10.
  3. At 60 or above, apply interest-hot, move to Interest Shown, pause workflows 2 and 3, and create a task for advisor_assigned due in 2 working hours.
  4. Send one SMS from the advisor by name: "Hi [first name], [advisor name] here from [provider]. Saw you were looking at [next course name] - happy to talk through whether it's the right fit, no pitch. 20 minutes: [advisory link]"
  5. Wait 24 hours. If no booking, the advisor calls. Wait 48 more hours, one email with two suggested times.
  6. If no response after 5 days, remove interest-hot, return to Nurture at the shortened interval, and keep interest-warm.

Stop conditions: booking made, or do-not-market. Decay the score by 10 points per 30 days of no engagement so a record cannot sit hot forever on old signals.

5. Taster and Webinar Follow-up

Trigger: taster or webinar registration.

Steps:

  1. Confirmation immediately with date, joining link and what will be covered. Move to Taster Booked.
  2. Reminders at 2 days and 1 hour before. SMS for the one-hour reminder, with the joining link only.
  3. Attended branch, same day within 3 hours: email with the session recording, the syllabus, and one question - "Does this look like the right next step for you?" A question gets replies; a brochure does not. Apply taster-attended, add 40 to interest_score, which usually triggers the hot handoff on its own.
  4. Wait 48 hours. If no reply and no booking, the tutor who ran the taster sends one short personal note. A message from the person who taught the hour outperforms one from an advisor at this exact point.
  5. Wait 4 days, then the advisory call offer if the hot handoff has not already fired.
  6. No-show branch: within 2 hours, the recording plus the next two dates. One message. Do not treat a no-show as a lost lead - calendar conflicts are the usual cause, and they re-register at a decent rate.

Stop conditions: advisory call booked, enrollment, or opt-out.

6. Advisory Call, Outcome Capture and Enrollment

Trigger: booking on the Next Step Advisory Call calendar.

Steps:

  1. Move to Advisory Call Booked, apply advisory-booked, write advisory_call_date, pause every automated sequence. A live human conversation always outranks a drip.
  2. Confirmation with an agenda in three bullets and a brief on what to think about beforehand. Reminder 24 hours and 1 hour before.
  3. Brief the advisor automatically: an internal note with completed course, band, tutor, NPS score, their own words from the reflection, every signal in last_engagement_type, and the mapped recommendation.
  4. After the call the advisor must set advisory_call_outcome: enrolling now, wants the next cohort, objection held, not progressing, or no show. The workflow blocks on this field, by design.
  5. Enrolling now: move to Enrolled Next, send enrollment and payment links, write offer_sent_date, and chase at 2 days, 5 days and 9 days if offer_status is still open, then hand to a human.
  6. Wants the next cohort: move to Waitlisted, write cohort_target_start and waitlist_position, and schedule one message 30 days before that cohort opens plus one when it does.
  7. Objection held: write objection_primary and objection_notes, move to Objection Held, hand to workflow 7.
  8. Not progressing: move to Closed - Not Progressing with a reason, suppress all progression messaging, keep them on the webinar and advocacy lists only.
  9. No show: one rebooking message within 2 hours, one call task, then return to Nurture with interest-warm retained.

Stop conditions: enrollment confirmed, or closed.

7. Objection-Specific Follow-up

Trigger: stage moves to Objection Held. Branch on objection_primary and do something genuinely different in each branch. A generic follow-up sequence here wastes the most qualified records in the build.

  1. Cost: no automated message about money. Create a task for the advisor to discuss funding routes and installment options on a call, and send only a short note saying the advisor will call with options. Pricing conversations are human-only in this build.
  2. Timing: write follow_up_date from what they said, move to Waitlisted if they named a cohort, and go silent until 21 days before that date. Then one message referencing the exact reason they gave: "You mentioned [reason] would be sorted by now - is [cohort date] workable?"
  3. Employer approval: send the business-case asset within 1 hour, with an explicit offer for the provider to speak to their manager. If they supply employer_contact_email, start the employer track: Employer Team Training Review invitation, then two follow-ups at 4 and 9 days, and a task for the account owner.
  4. Relevance: treat this as a map error, not an objection. Task the academic lead to review, and send nothing until a human has decided whether a different course fits. If none does, close honestly.
  5. Confidence: send one message with a named past learner's consented story at a similar starting point, plus an offer of a conversation with the tutor rather than an advisor. Then one follow-up at 14 days and stop.
  6. Every branch sets follow_up_date and creates a dated task. No objection record is ever left without a next action and a date.
  7. At the follow-up date, if nothing has changed, return to Nurture keeping the objection tag, so the next cohort announcement is phrased around that objection.

Stop conditions: enrollment, or an explicit no, which closes the record.

8. Advocacy, Referral and Dormancy

Trigger A, advocacy: Completion Reflection submitted.

  1. Branch on nps_score. 9 to 10: apply promoter. Wait 1 day, send the review request naming one platform with a direct link. Wait 3 days, if no review, one reminder, then stop. Separately send the testimonial and consent form.
  2. 7 to 8: apply passive. No review request. One email asking what would have made it a ten, which routes to the program lead.
  3. 0 to 6: apply detractor and complaint-open, suppress every progression sequence immediately, and create an urgent task for the program lead to call within one working day. Never send a review request or an upsell to a detractor.
  4. On review detected, set review_left, thank them, and at day 14 send the referral ask with the shareable link.
  5. On testimonial and consent submitted, set testimonial_consent with the exact scopes ticked, apply testimonial-cleared, and queue it for the social planner with the consented attribution only.

Trigger B, referral: referral link used or referral form submitted.

  1. Increment referral_count on the referrer, apply referrer.
  2. The referred person enters as a new lead tagged referred-by-[contact id]. The first message says who referred them, what the course is, and offers an immediate opt-out in the first line.
  3. If the referral enrolls, increment referrals_enrolled, update reward_status per whatever the client's reward scheme is, and notify the referrer with a genuine thank you.
  4. Notify the advisor on every referral - referred leads convert better than any other source in this build and deserve a human within a day.

Trigger C, dormancy: last_engagement_date more than 12 months ago.

  1. Send one re-permission email: here is what we send, here is how often, confirm you still want it.
  2. Wait 14 days. No response, send one final notice. Wait 7 days. Still nothing, apply dormant-12m, move to Dormant, and stop all sending.
  3. Keep dormant records on file for a single annual announcement only if the client's consent basis supports it, and suppress them entirely otherwise.

Stop conditions: do-not-market or complaint-open stops every branch of this workflow immediately.

05

What changes

What is different afterwards

  • The graduation window becomes an asset instead of a gap. The thirty days when a learner is most receptive now carry a defined sequence rather than silence followed by a cold campaign months later.
  • Progression suggestions are specific to what the person actually completed and how they completed it, so the message reads as advice rather than as marketing. The progression map, not the automation, is what makes that true.
  • Reviews, testimonials and referrals get asked for at the moment they are easiest to give, and the consent to use them is captured in the same motion rather than chased afterwards.
  • Advisors only talk to graduates who have shown real signals, so their day is spent on conversations that convert rather than on working a list of everyone who ever finished a course.
  • Objections stop being dead ends. A named objection routes to a specific response - a business case for employer blockers, a payment conversation for cost, a dated callback for timing - instead of the record going quiet.
  • Employer-funded graduates become account conversations. One graduate wanting the next course turns into a team training discussion, which is a different and much larger deal than one enrollment.
  • Alumni become a forecastable channel. Enrollments sourced from alumni can be counted, attributed and planned for, which changes how much cold acquisition spend is actually needed.

Metrics to watch

  • Progression rate - share of graduates who enroll on a second course within 12 months, segmented by progression_path. The headline number, and it should differ sharply by path.
  • Graduation window conversion - enrollments or advisory calls booked from signals generated inside the first 30 days, versus later. Tells you whether the warm window is being used.
  • Completion Reflection response rate - everything downstream depends on this one form. Under half is a form design problem, not an audience problem.
  • Taster attendance to enrollment rate - usually the strongest single predictor in the build. If it is high, buy more taster capacity.
  • Interest score precision - of records that hit interest-hot, what share booked an advisory call. If it is low, the scoring weights are wrong and advisors will start ignoring the handoffs.
  • Advisory call to enrollment rate, and separately the advisory call show rate.
  • Objection distribution - counts of objection_primary. Cost concentration means a payment-plan conversation; employer concentration means build the business-case asset properly; relevance concentration means the progression map is wrong.
  • Objection recovery rate by type - how many held objections convert later, split by reason. Timing objections should recover well; relevance objections should not, and that is useful information.
  • Referral rate and referral-to-enrollment rate, with referred leads attributed back to the referrer.
  • Review and testimonial yield - reviews left and consented testimonials captured per hundred completions.
  • Multi-course rate - share of active learners who are on their second or third course. The compounding metric, and the one that most changes a provider's economics.
  • List health - unsubscribe rate per sequence, and the share of alumni going dormant each quarter.
06

Before you start

The progression map, and the honesty test

  • Write the map with the academic lead before touching the platform. For every course, every completion band and every funding route, what is the next step and what is the reason. If any cell has no good answer, the honest entry is nothing, and the build should send nothing to those people.
  • Apply the honesty test to each path: would a tutor recommend this next course to this person face to face? If not, do not automate it. An alumni list is a trust asset that can be spent exactly once.
  • Decide what happens to graduates with no sensible next course. They still get the advocacy sequence and the webinar invitation; they do not get progression offers. Resist the temptation to invent a path so the sequence has something to send.
  • Agree with the client that pricing never appears in an automated message in this build. Confirm the handoff route for pricing questions and make sure a human actually covers it, because an unanswered pricing question kills a warm lead faster than a high price.

Data and content prerequisites

  • A clean completion signal. You need a reliable event for course completed, with a band or grade attached. If completion is currently recorded by a person updating a spreadsheet, fix that first; everything here hangs off completion day.
  • Historic alumni decision. Importing several years of past students is tempting and usually wrong. Import the last twelve months into the nurture track with a re-permission step, and leave the older base alone until the live flow is proven.
  • Real content for the nurture track. Three to five genuinely useful pieces per progression path, written or recorded by tutors. Without these the long-horizon sequence is just repeated asking.
  • One landing page per progression path, plus a syllabus PDF per course that is good enough to be worth downloading, since the download is the main interest signal.
  • Taster session capacity booked into tutors' calendars for the next quarter before launch. A taster invitation with no available dates is worse than no invitation.

Integrations and provisioning

  • Course or membership platform for completion events and lesson data.
  • Payments connection such as Stripe for enrollment and installment plans, and accounting such as QuickBooks or Xero for employer invoicing.
  • Review platform connection for the review request leg, so review_left is set from the platform rather than guessed.
  • Calendar connections for every advisor and every taster tutor, with real availability.
  • Website or funnel tracking on the progression pages so page visits and syllabus downloads feed interest_score. Without this the scoring has almost nothing to work with.
  • A dedicated number for alumni messaging, separate from student support, so a marketing message never lands in a live support thread.

Messaging compliance

  • This build is marketing, not service messaging, and the consent standard is higher. Do not reuse enrollment-era service consent for progression offers. Capture marketing consent explicitly, with separate email and SMS permissions, and record the source and date.
  • Complete A2P 10DLC brand and campaign registration for the alumni number and declare the campaign as marketing. Mixing marketing traffic into a number registered as transactional risks filtering across everything.
  • Every marketing email carries a working one-click unsubscribe and a physical sender address. Every marketing SMS carries opt-out wording on the first message in a sequence, and STOP is honoured automatically and globally.
  • Respect the frequency cap in code, not in policy. Two marketing emails per week per alum, across all sequences, enforced by a shared suppression check that every workflow calls.
  • Re-permission anyone with no engagement for 12 months before continuing to send, and suppress them if they do not respond. A dormant list that still receives mail is a deliverability problem that eventually damages the transactional mail the other builds depend on.

Claims, consent and data protection

  • Outcome claims are the real legal exposure here. No employment rates, no salary figures, no progression guarantees, and no invented statistics anywhere in the copy. If the client wants to cite outcome data, it must be data they actually hold and can evidence, with the population and period stated.
  • Testimonials need granular, recorded consent: the quote, the name, the employer and the image are four separate permissions with separate scopes, and consent must be withdrawable. Store testimonial_consent with what exactly was agreed and when, and never publish from a record without it.
  • Referral mechanics need care. Taking a colleague's contact details from a third party and then marketing to them has a weak consent basis in many jurisdictions. The safer pattern is a shareable link the referrer sends themselves, so the referred person comes to you. If you do accept details on a form, the first message must say who referred them and offer an immediate opt-out.
  • Employer disclosure needs a basis. Telling an employer which of their staff completed what, or who is interested in further training, is a disclosure about those individuals. Get the graduate's explicit agreement at the point they ask you to speak to their employer.
  • Keep the complaint and detractor suppression hard-wired, and review the suppression list monthly with a human.
  • Marketing consent rules, unsubscribe requirements, testimonial and endorsement rules, advertising claims about training outcomes and referral-incentive disclosure all vary by jurisdiction and some are enforced by regulators. Confirm consent wording, claim substantiation, referral mechanics and retention periods with the client's own counsel before launch. Nothing here is legal advice.
Field notes

Build it with us.

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