The education playbook. Built in the builder, decided by your records.
Ten journeys, each drawn below as it runs. The decision comes from your admissions system, your LMS, your ledger or criteria you set; the journey carries it. Aims are targets to agree in the pilot, not results.
Offer the next course the day the last one ends.
A final module completed asks your catalogue whether the next course in the track is open and not yet taken, then sends one WhatsApp with Enrol or Not now; a tap goes to your system to enrol them.
- Decides
- your catalogue and your enrolment rules.
- Aim
- the next enrolment without a sales call.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- the next enrolment without a sales call.
- Trigger
- final module completed (your LMS)
- Events and identifiers
- final module completed (your LMS). The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- next course open? enrolled? (your catalogue) · your system enrols them. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- no tap: silence. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- the next enrolment without a sales call. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Offer the early-bird renewal while they are still learning.
A plan ending in thirty days checks whether a lesson was opened this week, fetches the plan and price from your billing system, then sends one WhatsApp with Renew early or Not now; a tap goes to your billing system to renew.
- Decides
- your billing system and the window you set.
- Aim
- renewals before the plan lapses.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- renewals before the plan lapses.
- Trigger
- plan ends in 30 days (your billing)
- Events and identifiers
- plan ends in 30 days (your billing). The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- plan and price (your billing) · your billing renews the plan. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- not active: the standard notice, by email. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- renewals before the plan lapses. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Finish the application that stopped at the documents step.
A session with the documents step opened and no upload sends one WhatsApp with a link back to the step and the deadline from your admissions system, reminds once before the deadline, and calls if it is still open.
- Decides
- a rule you set, and the deadline your system holds.
- Aim
- more applications submitted before the deadline.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- more applications submitted before the deadline.
- Trigger
- session rule: documents step opened, no upload
- Events and identifiers
- session rule: documents step opened, no upload. Captured by the SDK or web tracker as the session runs, tied to the identified contact. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- deadline (your admissions system). Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- submitted? stop. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- more applications submitted before the deadline. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Catch the deposit that went quiet.
A student with the deposit paid and no portal login in twenty-one days enters a segment and gets one message with the next step, from admissions; a reply becomes a task for an admissions officer, and silence reaches the parent per consent.
- Decides
- your segment definition and consent.
- Aim
- fewer admitted students lost before the first day.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- fewer admitted students lost before the first day.
- Trigger
- segment entry: deposit paid, no login in 21 days
- Events and identifiers
- segment entry: deposit paid, no login in 21 days. Segment membership is recomputed from the contact's own events on the window you set; the identifier is the contact record. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- yes: task to the admissions officer. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- fewer admitted students lost before the first day. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Reach the student who stopped opening lessons.
A student with no lesson opened in fourteen days gets one push and Inbox message to pick up where they left off; if nothing opens in three days, a WhatsApp from the tutor, and if there is still no reply, a task in your system.
- Decides
- the window you set.
- Aim
- fewer students lost mid-course.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- fewer students lost mid-course.
- Trigger
- segment entry: no lesson opened in 14 days
- Events and identifiers
- segment entry: no lesson opened in 14 days. Segment membership is recomputed from the contact's own events on the window you set; the identifier is the contact record. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- no reply: task to the tutor. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- lesson opened within 3 days? stop. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- fewer students lost mid-course. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Act on attendance the week it falls.
An attendance mark below the line you set for a second week checks the parent's consent, then sends one WhatsApp with two buttons, Call me and I am aware; the answer is written back and the tutor gets the task, and silence becomes a call.
- Decides
- your attendance threshold and consent.
- Aim
- absences addressed in the same week.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- absences addressed in the same week.
- Trigger
- attendance below your line, second week (your SIS)
- Events and identifiers
- attendance below your line, second week (your SIS). The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- call me: task to the tutor · aware: answer written back. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- The message is delivered on the first channel that reports delivery, or the fallback order is exhausted and the failure is recorded.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; when the last channel in the order has reported failure, the message is recorded as failed with the reason. Delivery callbacks that arrive late update the record when they arrive.
- Success metric
- absences addressed in the same week. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Turn a low mock score into a tutoring session.
A mock exam below the pass line asks your system whether a session is already booked, then sends one WhatsApp with Book a session or Not now; a tap fetches the open slots, the student picks one, and the booking is confirmed.
- Decides
- your system's bookings and the pass line you set.
- Aim
- sessions booked before the real exam.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- sessions booked before the real exam.
- Trigger
- mock exam below the pass line (your LMS)
- Events and identifiers
- mock exam below the pass line (your LMS). The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- session already booked? (your system) · open slots (your system). Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- no tap: silence. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- sessions booked before the real exam. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Remind the fee on the real date, then escalate.
The journey waits until the due date your ledger holds, sends Pay now to the payer, stops when your ledger says paid, and escalates by channel if not, with the outcome written back.
- Decides
- your ledger's due date and paid status.
- Aim
- fewer late fees, lower cost to collect.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- fewer late fees, lower cost to collect.
- Trigger
- due date (your ledger)
- Events and identifiers
- due date (your ledger). The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- outcome to your ledger. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- paid? stop. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- fewer late fees, lower cost to collect. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Tell students and parents about a change, each their way.
A published change goes by push and Inbox to students on the app, with SMS for any who do not read it, and by SMS to parents per consent, so each person is reached on the channel they consented to, once.
- Decides
- your system; consent per contact.
- Aim
- everyone informed, each once.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- everyone informed, each once.
- Trigger
- change published (your system)
- Events and identifiers
- change published (your system). The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- None beyond the platform's own records: the contact, its consent, and the delivery record.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- everyone informed, each once. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Welcome the accepted with a Story, and catch the melt.
An accepted offer with the deposit paid starts a first-week Story in the app or on your domain; if it is not completed in a week, one message with the checklist follows, and a student who still has not logged in enters the segment that reaches a person.
- Decides
- the event, and the window you set.
- Aim
- fewer first-week questions, fewer admitted students lost.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- fewer first-week questions, fewer admitted students lost.
- Trigger
- offer accepted, deposit paid (your SIS)
- Events and identifiers
- offer accepted, deposit paid (your SIS) · segment: deposit paid, gone quiet. The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- None beyond the platform's own records: the contact, its consent, and the delivery record.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- Story completed? stop · portal login since? stop. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- fewer first-week questions, fewer admitted students lost. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Where a step says your system decides, the journey calls your system and branches on its answer. xNotify carries the journey; it does not become the model.