Messaging Rules
Settings → Messaging Rules is the single inventory of every email and text Conductly sends for your school, and where you build your own automated ones. Pick something that happens in Conductly -- a student enrolling, an invoice going out, a lesson pack running low -- and Conductly sends a template you choose, to the people you choose, on the timing you choose.
The page is organized into three tiers, top to bottom:
| Tier | What it is | Can you edit it here? |
|---|---|---|
| Your rules | Rules you build yourself | Full control -- create, edit, turn on/off, delete |
| Built-in reminders | Lesson and payment reminders | Switch on/off here; timing, audience, and templates are edited on their own settings pages |
| Always on | Account and money messages like receipts and password resets | Read-only -- these can never be turned off |
Creating a Rule
- Go to Settings → Messaging Rules (Operations group, between Reminders and Emails & SMS).
- Click New rule. The editor reads as one sentence with a picker in each blank, for example When [First lesson coming up] for [Piano], send [Email] [First lesson prep] [2] days before the first lesson at [9:00 am] to [parents/guardians]. Click any blank to change it -- the sentence rewrites itself as you go.
- Pick a trigger in the first blank -- see the tables below for what each one does. The picker lists trigger names only, grouped under Lessons, Trials, Enrollment, Billing, and Packs & credits, with a search box and a clock or lightning icon marking a scheduled trigger from an instant one. You can still change your mind after saving: the trigger stays editable until the rule fires for the first time (a send or a skip, whichever comes first), then it locks in for good, since every log entry is tied to that trigger's records.
- If the trigger is about an enrollment or a lesson, fill in the for blank to narrow it to a specific course, instructor, or location, or leave it as any class.
- Fill in the channel, template, and timing blanks (see Timing below).
- Fill in the to blank -- the audience who gets messaged.
- Optionally, open More options -- its closed line already summarizes the current values -- to set a classification, change the "ignore anything before" date, pick a Form to send and add
{form_url}to a template (see Sending a Form below), or, for Lesson missed, narrow it to one kind of miss. - Name the rule at the top of the page -- a new rule borrows its trigger's name until you type your own; this is for your own reference, not shown to recipients.
- Click Create rule.
A new rule is on by default and only reaches things that happen from today onward -- turning it on never messages someone about something that already happened.
Starters
The first time you visit Settings → Messaging Rules with no rules built yet, four ready-made rules appear as chips under Your rules -- a faster way in than building one from scratch.
| Starter | Trigger | Timing | Channel | Audience |
|---|---|---|---|---|
| Welcome email | Student enrolled | Right away | Student + parents/guardians | |
| First lesson prep | First lesson coming up | 2 days before, 9 AM | Student + parents/guardians | |
| Payment nudge | Invoice due soon | 3 days before, 9 AM | Email + text | The person who pays |
| Missed lesson check-in | Lesson missed | Right away | Text | Student + parents/guardians |
Click a chip and Conductly creates the rule and its template(s) for you, then opens the rule's edit page -- switched off -- with a note explaining why it's off and what to do next: read the template, run a dry run, and turn it on when you're ready. The template lands on Settings → Emails & SMS like any other and is yours to edit; on the rule's edit page, an Edit template link beside each template picker opens it in a new tab.
Starters you haven't used yet stay available in a footer under your existing rules until you've added all four, alongside a Start from scratch link if you'd rather skip them. Delete a starter rule -- from the trash can on its row, or from the bottom of its edit page -- and its chip comes back; adding it again reuses the template you already built, including any edits you made.
A starter is just a starting point: its trigger stays a free choice until the rule actually fires for the first time, and you can change its timing, audience, wording, or anything else too, the same as you would on any rule you built yourself.
Triggers
21 triggers are available. Each one is tied to a specific kind of record, which decides what merge tags its templates can use and who you're allowed to notify.
Fires the moment it happens
| Trigger | Fires | Default classification |
|---|---|---|
| Student enrolled | Right when a student is enrolled in a lesson or class -- by staff, through the store, or from the family portal | Transactional |
| Introductory lesson booked | A student is put on a trial -- an introductory class bought in the store, or a trial student scheduled onto a new lesson by staff. An ordinary enrollment or a drop-in doesn't count | Transactional |
| Invoice sent | Right when an invoice is emailed to a family -- by staff or by automatic invoicing | Transactional |
| Payment failed | Right when a card or bank payment on an invoice is declined or returned | Transactional |
| Lesson missed | A student is marked as having missed a lesson, whether a no-show or missed with notice -- one message per student per lesson | Transactional |
| Lesson cancelled | A single lesson is cancelled, by staff from the calendar or by the family from the portal. One message per lesson, to everyone on it | Transactional |
| Lesson rescheduled | A single lesson is moved to a new time, by staff or by the family from the portal | Transactional |
| Substitute instructor assigned | A substitute is put on one lesson. Changing who teaches the whole series doesn't count, and the instructor role on this trigger notifies the substitute, not the regular teacher | Transactional |
Fires on a schedule
The other 13 triggers are checked once an hour and fire at a clock hour you pick for that rule (8 AM–8 PM, your school's timezone). Depending on the trigger, the number you set counts down to a date that hasn't happened yet, or up from one that already has -- the timing box on the rule labels it either way.
Counting down to a date:
| Trigger | Fires | Default classification |
|---|---|---|
| First lesson coming up | A number of days you choose, before a newly enrolled student's first lesson (default 2 days) | Transactional |
| Invoice due soon | A number of days you choose, before an unpaid invoice's due date (default 3 days) -- cancelled automatically if the invoice gets paid first | Transactional |
| Auto-charge coming up | A number of days you choose, before an invoice is charged automatically to the card on file (default 2 days) -- only for invoices the auto-charge automation will actually collect | Transactional |
| Card expiring soon | A number of days you choose, before a saved card expires (default 30 days), for families who still owe something or have a lesson on the books -- a card the family already replaced is skipped | Transactional |
| Lesson pack nearly used up | When a student's prepaid lesson pack drops to a number of lessons or fewer that you choose (default 2 -- this box counts lessons, not days) | Transactional |
| Make-up credit expiring soon | A number of days you choose, before an unused make-up credit expires (default 7 days) | Transactional |
| Enrollment ending soon | A number of days you choose, before a student's last scheduled lesson (default 14 days) | Transactional |
Counting up from a date that's already passed:
| Trigger | Fires | Default classification |
|---|---|---|
| Trial lesson completed | A number of days you choose, after a trial lesson is over (default 1 day) | Transactional |
| Trial not converted | A number of days you choose, after the trial, while the student is still on trial status with nothing else booked (default 3 days) | Marketing (a sales follow-up) |
| Invoice overdue | A number of days you choose, after an unpaid invoice's due date (default 3 days) -- build several rules, e.g. at 3, 7, and 14 days, for a reminder ladder | Transactional |
| Lesson pack used up | A number of days you choose, after the last lesson in a prepaid pack that hasn't been renewed (default 0 days) -- never fires for a school whose packs renew automatically | Transactional |
| Lesson milestone reached | Once a student's Nth lesson is behind them (default the 1st -- this box counts lessons, not days; an unmarked lesson counts as attended) | Transactional |
| No lessons attended recently | When a student hasn't attended a lesson in a number of days you choose (default 60), and has nothing booked ahead | Marketing (a win-back message) |
The Only for filter (course, instructor, or location) is offered on any trigger about an enrollment or a lesson: Student enrolled, Introductory lesson booked, First lesson coming up, Lesson pack nearly used up, Lesson pack used up, Enrollment ending soon, Lesson missed, Trial lesson completed, Lesson cancelled, Lesson rescheduled, and Substitute instructor assigned (there, the instructor filter matches the lesson's regular teacher, not whoever's covering). Invoice, card, and credit triggers always apply to everyone -- an invoice, a saved card, or a credit isn't tied to one course or instructor -- and so do the student-level triggers: No lessons attended recently, Trial not converted, and Lesson milestone reached.
Lesson missed can also be narrowed to just one kind of miss -- No-show or Missed with notice (a lesson marked missed without a reason counts as missed with notice).
Two triggers overlap a message Conductly already sends automatically, and both keep sending independently:
- An Invoice overdue rule set to the same number of days as an enabled Payment reminder milestone (Settings → Reminders) triggers a warning in the rule editor, since the family would get both.
- Card expiring soon runs alongside the always-on card-expiring email (see Always-On Messages below), which keeps sending on its own fixed 3/7/15/30-day schedule no matter what rule you build.
Timing
What you see depends on the trigger you picked:
- Immediate triggers (the eight that fire the moment something happens) -- choose Right away or After a delay (a number of hours or days).
- Scheduled triggers (the other 13) -- choose the count before or after the moment (days for most triggers; lessons for Lesson pack nearly used up and Lesson milestone reached), and what hour of the day the rule should check and send (8 AM–8 PM, in your school's timezone).
Every rule also has Only for things that happen on or after a date, defaulting to today. For a scheduled trigger, anyone who already passed that point before you turned the rule on is left out -- set the date back if you want to reach them too.
Text messages, regardless of a rule's own timing, never send outside daytime hours in your school's timezone.
Classification: Transactional or Marketing
Every rule is either:
- Transactional -- operational messages tied to something the recipient did or is owed (an enrollment, an invoice). Not affected by a marketing opt-out.
- Marketing -- promotional messages, like a win-back nudge to a family that's gone quiet. Honors your unsubscribe list.
Each trigger suggests a starting classification. You can downgrade a transactional trigger to marketing, but never the reverse -- this stops a promotional message from being relabeled to dodge the opt-out list. No lessons attended recently and Trial not converted are always marketing and can't be changed -- one's a win-back message, the other a sales follow-up.
Channel and Templates
Choose Email, Text, or Email + text, then pick the template(s) to send (managed on Settings → Emails & SMS, same as your other templates). Each trigger offers its own set of merge tags for the template -- for example, an invoice trigger offers {invoice_amount_due} and {invoice_pay_url}, while an enrollment trigger offers {student_name} and {instructor_name}.
One thing limits the Text option: marketing texts aren't available yet -- if a rule is classified Marketing, only Email is offered. (Settings → Features → Messaging turns on the inbox for replies to your texts; it doesn't decide whether a rule can send one.)
If a rule sends Email + text, a recipient who has personally set a preferred channel only gets that one -- the other channel is skipped and shows in the log as Recipient prefers the other channel.
Sending a Form
Any rule can send one of your forms along with its message -- an intake form the moment an Introductory lesson booked rule fires, for example.
- Under More options → Form to send on the rule, pick a form. Only published forms are listed, since an unpublished one has no public page (see Publishing & Sharing Forms).
- Add the
{form_url}merge tag to the email or text template, wherever you want the link to appear.
The link each recipient gets is personalized, not a generic copy of the form:
- It's pre-filled with what Conductly already knows -- the recipient's own name, email, and phone, plus the student's name -- so families don't have to retype it. Your school's mailing address is never included.
- It's tied to the right student. Each parent/guardian who's messaged gets their own link addressed to them; if the rule messages the student directly and the family has more than one guardian, the guardian block is left blank for whoever opens it. Whatever name someone types into the form, the answers land on that same student's record -- not a new or duplicate one.
- Names and emails on file are protected. A submitted form updates contact details and custom fields, but never overwrites the student's name or email. If the link gets forwarded and someone else fills it out, their email only attaches to the family if it already belongs to one of that student's guardians -- otherwise the answers save against the student with no guardian added.
- The link expires after 14 days. After that (or if it's altered), the form still opens and can still be submitted, just as an anonymous public link would.
A trigger that isn't tied to one student -- an invoice, or a lesson cancelled for a whole class -- sends the plain public link instead.
If the form gets unpublished or deleted after the rule was saved, the rule keeps running, but {form_url} goes out blank and the Messaging Rules page and the rule's edit page show a warning (Form unpublished or Form deleted) until you pick a different form or publish it again.
Audience
Who a rule notifies is relative to the record that fired it -- not a fixed list of people. The roles offered depend on the trigger:
| Role | Notifies |
|---|---|
| The student | The student themselves |
| The student's parents/guardians | The student's guardian(s) |
| The person who pays the invoice | Whoever is billed -- an adult student is their own billing contact if no guardian is on file |
| The instructor(s) on the lesson | Every instructor teaching that lesson |
| School staff | Owners and admins, or everyone including instructors -- your choice |
Invoice-based triggers offer only the billing contact and staff; enrollment- and lesson-based triggers offer the student, guardians, instructor, and staff. Each person is only messaged once per send, even if they qualify for more than one role, and opt-outs always win regardless of who's checked.
For a trigger on a whole class -- Lesson cancelled or Lesson rescheduled for a group lesson, not a private one -- The student role reaches every student on the roster, so one message goes to the whole class rather than one per name.
If you notify School staff, choose whether that means Owners and admins or Everyone, including all instructors. Staff receive it through their own notification preferences (in-app and/or email), same as any other staff notification.
Testing a Rule Before It Goes Live
Once a rule is saved, its edit page offers two ways to check it before trusting it:
- Dry run -- replays the trigger over your last 30, 90, or 365 days of records and shows who would have been messaged and who would have been skipped, and why. Nothing is sent or logged. It's a look backward, not a preview of upcoming sends -- a rule only reaches things that happen on or after the date you set, so the people in a dry run aren't actually about to be messaged.
- Email me a test -- sends the rule's email template to yourself, if it has one.
The Log
Every rule's edit page also shows a log of everything it has actually decided -- who it sent to, who it skipped, and why -- most recent first. Skip reasons you might see:
| Reason shown | Why |
|---|---|
| Rule is turned off | The rule itself is switched off |
| Record predates the rule | The record is older than the rule's "on or after" date |
| Already sent for this record | This rule never messages the same person about the same record twice |
| Did not match the rule filter | The record's course, instructor, or location doesn't match the rule's Only for setting |
| No longer applies at send time | Conductly re-checks right before sending -- e.g., an invoice that got paid during the delay window is no longer due soon |
| No template chosen for this channel | The rule doesn't have a template picked for Email or Text on this channel |
| Nobody to send to | No one qualifies for the audience roles you checked -- e.g., you notify guardians, but the student has none on file |
| No email address or phone on file | Someone qualifies, but has no address for the channel this rule uses |
| Recipient opted out | The person has opted out of marketing email or of text messages entirely |
| Marked do not contact | The record's do-not-contact flag is set |
| Someone at this number opted out of texts | The phone number is shared, and one of the people on it has opted out |
| Marketing texts are not enabled yet | The rule is Marketing-classified and tried to text |
| Staff member turned this notification off | The staff recipient has that notification switched off in their own preferences |
| Recipient prefers the other channel | The rule sends Email + text, but this recipient's own channel preference is the other one |
Editing, Turning Off, and Deleting a Rule
- Turn a rule on or off from the toggle on the Messaging Rules page, or from its own edit page.
- Change a rule's trigger from its edit page, as long as the rule hasn't fired yet. Once it logs its first send or skip, the trigger locks in -- delete the rule and build a new one to point it somewhere else.
- Delete a rule from the trash-can icon on its row on the Messaging Rules page, or from the bottom of its edit page -- both ask you to confirm first. Its log is kept for your records even after deletion, but a replacement rule starts with no memory of who it already reached -- take care backdating a rule you just recreated. Deleting a starter rule also returns its chip to the footer, ready to add again.
Built-in Reminders
The Built-in reminders tier lists Conductly's two automatic reminders -- Lesson reminder and Payment reminder -- so this page shows a complete picture of everything your school sends. You can switch either one on or off right here, but the toggle writes through to the same setting the reminder itself uses -- it's one switch, not a copy. Timing, audience, and templates for both are still configured on their own page: see Reminder Settings.
Always-On Messages
The Always on tier lists messages that can never be turned off, so this page is a complete picture of everything Conductly sends -- not just the parts you control. These include New enrollment (instructor), Invoice, Payment receipt, Refund notice, Card expiring/expired/failed, Password reset, Email verification, Student portal instructions, and Team invitation. They're shown read-only, with a Locked label.
Voiding an invoice is not on that list -- it emails nobody. If a family already received the invoice you've now voided, let them know yourself.
What's Not Here Yet
- Marketing text messages. SMS works for transactional rules once Messaging is turned on, but a Marketing-classified rule is Email only for now.
- Routing built-in reminders through this engine. The Lesson reminder and Payment reminder rows in the Built-in reminders tier are a read-through view of the existing Reminders settings, not rules running on this engine yet -- edit their timing and templates on Reminder Settings as before.
- Triggers for form submissions or store purchases. Not offered yet.
- Triggers for birthdays, enrollment anniversaries, or an unaccepted portal invite. Not offered yet.
- Staff-only alerts -- like attendance that was never marked, a lead going cold, or a class filling up. Not offered yet.