Skip to content

Admissions funnel

From a real edtech engagement · 2026-10-25 edtech pack

Follows applicants from sign-up to paid: a nudge for people who signed up but never applied, reminders and then a call from admissions for people who applied but haven't paid, a next-steps email once they pay, a funnel on a dashboard and a weekly admissions report.

  • Applicants sign up, apply and pay an application or acceptance fee online.
  • Your backend can send events at each step (the Node, Go and PHP SDKs, or the HTTP API).
  • An admissions team can call applicants who stall before paying.
HowWhat
Events from your app or website (needs a developer)Your admissions portal sends the four funnel events and sets the stage trait.
KindNameWhat it doesLands
TeamAdmissionsCalls applicants who haven't paid; gets the weekly report.Empty
TeamAdmissions leadsHears about calls not made in time.Empty
SegmentSigned up, no applicationSigned up in the last 30 days but never applied.Ready
SegmentApplied, not paidApplied (or started checkout) but hasn't paid.Ready
SegmentPaid applicantsPaid the application fee.Ready
TemplateStart your application (email)Nudge to start an application.Ready
TemplateComplete your application (email)Reminder to complete payment.Ready
TemplateComplete your application (SMS)Last payment reminder by SMS.Ready
TemplatePayment received, next steps (email)Next steps after payment.Ready
QuestionReport: applicationsApplications in the report's period.Ready
QuestionReport: paid applicantsPaid applicants in the report's period.Ready
QuestionReport: sign-upsSign-ups in the report's period.Ready
FunnelAdmissions funnelSign-up → application → checkout → paid, within 30 days.Ready
DashboardAdmissionsThe funnel and this period's numbers.Ready
ReportWeekly: admissionsThe week's sign-ups, applications and payments, and where applicants stand now.Off
Follow-upAdmissions 1: start your applicationSigned up but didn't apply? Two nudges, stopping once they apply.Off
Follow-upAdmissions 2: complete your applicationApplied but didn't pay? Email, then SMS, then a call from admissions; each step skipped once they pay.Off
Follow-upAdmissions 3: payment receivedNext-steps email when the payment comes in.Off
#QuestionDefaultFills in
1What should messages call your school?none, must answerorg_name
2Where do applicants apply or pay? (a link to your portal)none, must answerapplication_url
3Which team calls applicants who haven't paid?Admissionsadmissions_team
4Who should hear if admissions doesn't call in time?Admissions leadsescalation_team
5Which address should emails come from?none, must answeremail_from

These have defaults. Change any that don’t fit.

SettingDefaultKey
Sign-up eventSigned Upsignup_event
Application submitted (unpaid) eventApplication Submittedapplication_event
Checkout started eventCheckout Startedcheckout_event
Payment succeeded eventPayment Successfulpayment_event
Stage trait your backend setslead_statusstage_trait
Time zone for the report‹workspace timezone›timezone
Greeting when a first name is missingtheregreeting_fallback
Weekly admissions report0 8 * * 1report_cron
  • Signed up, no application: a nudge after 1 day and another 3 days later; it stops as soon as they apply.
  • Applied, not paid: an email reminder after 1 day, an SMS 2 days later, and a call task for admissions 1 day after that, due in 48 hours and escalated after 48. Each step is skipped once they've paid.
  • Paid applicants get the next-steps email straight away.
  • Weekly admissions report: 0 8 * * 1 in ‹workspace timezone›.
ChannelNeeded forBefore it can send
emailNudges, reminders and next stepsA verified sending domain for ‹Sender address›. On a self-hosted (BYOD) data plane, your own email connection.
smsThe last payment reminderAn SMS provider, or Origamy managed SMS after business verification (KYC).
  1. Send the four events from your backend, and set lead_status with an identify call before each one, so a follow-up starting on the event sees the new stage: application_submitted, checkout_initiated, then paid_application. Only application-fee steps should move the stage, so a paid applicant never drops back.
  2. Give each event a stable messageId per occurrence (for example payment_successful:<payment reference>), so webhook retries are dropped.
  3. Send the applicant's country with their phone number, so the number is stored in international format.
  4. Add people to the Admissions and Admissions leads teams.
  5. Verify the sending domain; for the SMS, connect a provider or finish business verification.
  6. Switch the follow-ups and report on (a follow-up only runs once it's on), run one test applicant through with your own phone and email, check every message, then erase the test applicant.
  • Identify before you track. The school’s backend sets the stage trait with an identify call just before each event, so a follow-up starting on the event already sees the new stage.
  • One stage trait, moved only by application steps. A paid applicant who opens a tuition checkout keeps paid_application.
  • Event-named traits for segments. The school also saves each funnel event’s properties in a trait named after the event (for example Payment Successful.amount), so segments can filter on them. A trait only holds the latest occurrence.
  • Retries are safe when every event carries a stable messageId per occurrence.
  • Email on a self-hosted data plane goes through your own email connection; give it its own events queue to get delivery reports.

The request used to test the copilot on this playbook (a live eval):

We're an online school. Our backend sends Signed Up, Application Submitted, Checkout Started and Payment Successful, and sets lead_status. Nudge people who signed up but never applied, remind applicants who haven't paid by email then SMS, and if they still haven't paid have admissions call them. Send a next-steps email after payment, and email the admissions team a weekly funnel report.

It passes when every piece is a valid draft and everything lands off, with at least: segment, workflow, message_template, report.