Skip to main content
Send students a friendly nudge before a class, lecture, webinar, or appointment they signed up for. This guide walks through a flow that fires two reminders for every registration: one a day before the session and a second one 15 minutes before it starts.

The use case

Your website lets customers sign up for classes with specific instructors. You want to make sure no one forgets — so you send them two reminders:
  • 24 hours before the class — enough lead time to rearrange the day.
  • 15 minutes before the class starts — a final ping with the join link or address.
A flow handles this automatically for every registration.

How the data is modeled

Before you build the flow, make sure your data is structured like this:
  • Classes and lectures are products. Each class (or session, or lecture) is added to Maestra as a product in your catalog.
  • Registrations are orders. When a customer signs up for a class, that registration is sent to Maestra as an order. The order contains one line item per class the customer signed up for.
  • Start time lives on the order item. The exact start date and time of each class is stored as a custom field on the order line item — not on the order header. This lets a single order contain several classes that start at different times.
If the class start time is stored as a custom field on the order itself instead of on the order item, you can build the same flow using a different trigger event — “New order,” “Order data changed,” or “Order status changed” — and reference the order-level field in the wait blocks.

Before you build the flow

Set up the following first:
  • Create an automated campaign in the channel you want to use for the reminders: email, SMS, mobile push, web push, or messenger. You’ll select this campaign inside the send block later.
  • Use OrderItem as the product parameter in the campaign template. Because the flow is triggered per order line item, the reminder template should reference the specific item (the class the customer registered for) — not the full order.

Build the flow

The flow has nine steps total: a trigger, two waits, four checks, and two sends.

1. Trigger: Product in order delivered

Start the flow with the event Product in order delivered. A few things to know about this trigger:
  • It fires only when the delivery status of an order line item changes to “delivered.” If a registration is created with that status from the start, it still fires.
  • It fires per line item, not per order. If a customer signs up for three classes in one order, the flow runs three separate times — once per class.
  • It re-fires on the same line item if its data changes after delivery.
  • It also works on backdated orders, as long as the timing still makes sense and no later changes have happened.
For paid classes, this trigger is ideal: the line item moves to “delivered” the moment the registration is confirmed and paid, which is exactly when you want the reminder clock to start ticking.

2. Wait: 1 day before class start

Add a Wait block configured as a dynamic delay that points to the custom “class start time” field on the order line item, minus 24 hours. Because each line item carries its own start time, the wait is calculated individually for each run of the flow. A customer registered for a Monday 9:00 AM class will receive their first reminder Sunday at 9:00 AM; someone registered for a Wednesday 6:00 PM class gets theirs Tuesday at 6:00 PM.

3. Check: Class has not been canceled

Add a filter that confirms the class is still on. The exact field depends on how you model cancellations — typically a status field on the order item or product (for example, “class status is not equal to canceled”). If the class has been canceled, the flow exits here and no reminder is sent.

4. Check: Customer is subscribed and has a valid contact

Add a filter that confirms the customer:
  • Has an active subscription to the channel you’re sending in (email, SMS, push, etc.).
  • Has a valid contact in that channel (a deliverable email address, a confirmed phone number, a registered push token).
If your reminder is a transactional message tied to a paid service the customer already bought, you can skip the subscription check — transactional sends don’t depend on marketing consent. You may still want to verify the contact is valid so the message has somewhere to land.

5. Send the first reminder

Add a Send block and select the automated campaign you created earlier. This sends the day-before reminder. Because OrderItem is the product parameter, the message can reference the specific class — its name, instructor, time, and location.

6. Wait: 15 minutes before class start

Add a second Wait block, also pointing to the class start time on the order item, but this time minus 15 minutes.

7. Check: Class has not been canceled (repeat)

Repeat the cancellation check. A class that was on track yesterday could have been canceled in the meantime — don’t send a “see you in 15 minutes” message for a class that’s no longer happening.

8. Check: Customer is subscribed and has a valid contact (repeat)

Repeat the subscription and contact check for the same reason. Subscriptions can change between the two sends.

9. Send the final reminder

Add the second Send block. This is the “starts in 15 minutes” message — typically the most useful place to include the join link, room number, address, or any last-minute instructions.

The full flow at a glance

1

Trigger

Product in order delivered (per line item)
2

Wait

Until 1 day before class start time
3

Check

Class is not canceled
4

Check

Customer is subscribed and reachable in the channel
5

Send

Day-before reminder
6

Wait

Until 15 minutes before class start time
7

Check

Class is not canceled
8

Check

Customer is subscribed and reachable in the channel
9

Send

15-minutes-before reminder

Variations

  • Different channels for the two reminders. It’s common to send the 24-hour reminder by email (more room for context, agenda, prep materials) and the 15-minute reminder by SMS or push (faster to surface on the lock screen). Just pick different campaigns in each send block.
  • More than two reminders. Add additional Wait + Check + Send sequences for, say, a one-week-ahead reminder or a one-hour-ahead reminder. The pattern is the same.
  • Order-level start time. If the class time lives on the order rather than the order item, swap the trigger to New order, Order data changed, or Order status changed, and reference the order-level field in the waits. Everything else stays the same.
  • Skip subscription checks for transactional reminders. For paid classes where the reminder is part of the service the customer bought, the subscription check is unnecessary.
Once the flow is configured and you’ve reviewed a few test runs, turn it on and let it handle reminders for every new registration.