When the trigger fires
Alva Courses checks deadlines every hour and fires Course access expiring soon when a student's deadline is 14, 7, 3 and 1 days away, once at each point. Days until expiry says which point was reached, so a condition on it picks the reminder you want.
Only the nearest point fires. A student who enrols with 5 days of access gets a single 7-day event, never 14 and 7 at once. If you move a student's deadline, the countdown starts again from the new date.
Free courses and membership-tag access, which have no deadline, and revoked access are skipped. The countdown runs to the deadline itself, before any grace period. The triggers reference lists the fields, including Access expires at.
Access enforced says whether your store blocks the student once the deadline and any grace period pass. When it's false, nothing happens on the day unless you add the workflow in End access when the deadline passes. If your email says access ends, add a condition on it.
Build the reminder
1. Create a workflow
In your Shopify admin, open Apps → Flow and click Create workflow. Then click Select a trigger.
2. Choose Course access expiring soon
Choose Alva Courses, then Course access expiring soon. Its customer is the student whose deadline is approaching.
3. Add a condition for 7 days
Add a condition that Days until expiry is equal to 7. A week leaves time to finish the last lessons. Without the condition, the workflow runs at 14, 7, 3 and 1 days and sends four emails.
4. Add the reminder email
On the condition's Then branch, add Send marketing email and design it in Shopify Messaging. Make the email match what will happen. With the workflow in End access when the deadline passes turned on, a subject such as Your course access ends soon is accurate. Without it, and with deadline enforcement off, the student keeps access after the date, so write about finishing instead, such as One week left to finish your course. Add a button to your store's courses page.
5. Name it and turn it on
Name the workflow Remind students before their course deadline and click Turn on workflow. Alva Courses only sends this trigger while a turned-on workflow uses it, so turn it on before you test.
6. Test it with a 6-day deadline
In Alva Courses, open Members, then a test student who is enrolled in a paid course and subscribed to email marketing. Click Edit under their access deadline, choose Limited and set a date 6 days from today. Within the hour, the 7-day event fires and the email goes out.
7. Check the run
On the Shopify Flow settings page in Alva Courses, Flow activity → Triggers sent lists the event. In Flow, the workflow's recent runs show whether the condition passed and the email was sent.
End access when the deadline passes
Build this second workflow when your reminder says access ends. It runs Revoke course access when Course access expired fires, so the end really happens. The student's completed lessons, quiz attempts and coursework are kept. Leave out any course you sell as a subscription: its deadline moves forward only when a renewal order reaches Alva Courses, so a late renewal, or one Alva Courses can't read, could end a paying subscriber's access. Use the Course ID condition in step 2 to keep this workflow to your one-time-purchase courses.
1. Choose Course access expired
Create another workflow and choose Alva Courses, then Course access expired. Alva Courses checks every hour and fires it once the student's deadline, plus any grace period on your store, has passed: the point at which their member page marks them Expired.
2. Add a condition that Access enforced is false
Access enforced says whether Alva Courses blocks expired students itself. When it's false, the student can still open the course, and this workflow is what ends their access. To limit it to one course, also add a condition that Course ID is equal to the course's Flow ID.
3. Add Revoke course access
On the condition's Then branch, add Alva Courses' Revoke course access action and set its course to the trigger's Course ID variable. Flow fills in the customer from the trigger.
4. Name it and turn it on
Name the workflow End course access at the deadline and click Turn on workflow. It only acts on deadlines that pass from now on: Course access expired skips any that passed more than 48 hours before the check, so remove students whose deadline is already behind them from the course on their member page.
Each revoke shows on the student's member page as Revoked by Shopify Flow, with a Restore access button that gives the course back with their progress intact. If you restore a student and want access to end again later, give them a new deadline; the workflow revokes it when that one passes.
Closing a cohort or term yourself? Set the whole group's deadline to its last day with Update access on the course's Members tab, word the reminder around that date, and this workflow ends access for everyone when it passes.
Who receives the reminder
Send marketing email reaches only students subscribed to email marketing; Shopify skips the rest. Shopify Flow itself has no transactional email for customers: its Send internal email action can't be addressed to the workflow's customer, so Shopify keeps it for staff.
The email is built in Shopify Messaging from the customer's record, so it can't print workflow values such as Course title or Access expires at. For a course-specific message, add a condition that Course ID is equal to the course's Flow ID, such as 42, and build one workflow per course.
To reach every student instead, use Alva Courses' Resend course access email action with the trigger's Course ID as its course. It resends your enrolment email, link included, to any enrolled student with an email address, but says nothing about the deadline. It only sends while Send enrollment emails is ticked under Settings → Email Settings, which starts unticked.
Give some students more time
To give students more time instead of a warning, pair the trigger with Alva Courses' Extend or set course access action. It moves the student's deadline, so the reminders and the workflow that ends access both wait for the new date. Fill in exactly one of its options: Extend the deadline by this many days adds to the current deadline, so 14 gives two more weeks. The actions reference covers every option.
For example, extend students who are halfway through. In another workflow on Course access expiring soon, add a condition that Days until expiry is equal to 1, then Get course progress with the trigger's Course ID variable as its course. Add a condition that percentComplete is greater than or equal to 50 and completed is false, and on Then, extend by 14 days.
Each extension restarts the countdown, so that student reaches the 1-day point again two weeks later. To extend only once, limit the workflow to one course, add Add customer tags with access-extended-42 after extending, and skip customers who already have that tag.
Extending is refused for free courses and membership-tag access, which have no deadline, and for revoked access. The run fails with the reason and nothing changes, so extend before the deadline passes; once the revoke workflow has run, use Restore access first.
Frequently asked questions
At 14, 7, 3 and 1 days before a student's access deadline, once at each point. Alva Courses checks every hour and sends only the nearest point reached, so a student enrolled with 5 days left gets the 7-day event only.
The countdown starts again from the new deadline. The student gets fresh 14, 7, 3 and 1-day events for the new date, so your 7-day reminder goes out again before it. A workflow on Course access expired waits for the new date too.
Send marketing email only reaches customers subscribed to email marketing. The trigger also skips free courses, membership-tag access and revoked access, and a student whose deadline was already less than 3 days away never reaches the 7-day point.
Only if Alva support has switched on deadline enforcement for your store; it's off by default. With it off, the member page marks the student Expired when the deadline passes, but they can still open the course. Access ends when a workflow on Course access expired runs Revoke course access, or when you remove the student from the course on their member page.
Yes. Open the student in Members and click Restore access; their completed lessons, quiz attempts and coursework are kept. To end access again later, give them a new deadline, and the workflow revokes it when that one passes.
See also
Was this helpful?
Last updated 2026-10-13