Reminder triggers — what fires a reminder

A reminder only sends when there's a due date to fire from — here's where each type pulls its date

OwnerManager

Pistonlog's reminders are event-scheduled, not date-scanned. When a meaningful event happens (a jobcard is completed; an appointment is created), Pistonlog inserts a reminder_logs row for each applicable template with its scheduledDate set to (due_date − countdownDays). The daily cron then sends every row whose scheduledDate has passed and that hasn't been sent yet.

When reminders are scheduled

EventWhat gets scheduled
Jobcard completedOne row per matching MOT / Service / Timing-Belt template, using the per-job reminder intervals you set on each job
Appointment createdOne row per matching Appointment template, using the appointment date

Setting an MOT date on a vehicle by itself does not schedule reminders — scheduling only happens when a jobcard with an MOT job is completed.

What "matching" means

A template matches when its reminderType and the event align — e.g. an MOT template only schedules against an MOT-flagged job at jobcard completion.

If reminders aren't firing

Was the triggering event captured?

For service/belt reminders, the scheduling happens at jobcard completion with reminder intervals chosen per-job. If you completed the jobcard without setting an interval, no reminder was scheduled. Re-complete the jobcard with the right interval set.

Does the template exist for this type?

Inactive templates don't schedule. Verify the template exists and is enabled in Workshop Settings → Reminders.

Did the (private) customer opt out?

Individual customers can be marked contactByEmail: false or contactBySms: false and they're then excluded from the relevant channel. (Business contacts don't have these flags — they always receive on whichever channel they have an address for. Business routing is controlled by the per-contact reminder opt-ins instead, see Fleet reminders.)

Check the logs

Every scheduled and attempted send is recorded in Reminder logs with its status.

Why pre-scheduling and not a date scan

A date scan ("every day, find every vehicle whose MOT is in 30 days") would be simple but brittle — it'd miss the intent of when you, the operator, completed the job. Event-scheduling captures the workshop's view of "this is now eligible for a reminder" at the moment of completion, which gives you a stable record in reminder_logs that you can inspect, edit, or cancel before it actually sends.

Related

Was this article helpful?