Automatic reminders are a Pro feature: build the templates once, and Pistonlog schedules sends whenever the right event happens — a jobcard with an MOT/service/timing-belt job gets completed, or an appointment is created. The daily cron then dispatches every scheduled send when its date arrives. (Setting an MOT date on a vehicle by itself doesn't schedule a reminder — it's the jobcard completion that does.)
What you'll do
Build a reminder template
Go to Workshop Settings → Reminders and click New Template. Each template covers one type — MOT, Service, Timing Belt, Appointment, or Custom — and uses one channel (sms or email). Write the message body using placeholders like {customer_name}, {vehicle_reg}, {vehicle_make} and {garage_name} (full list in channels and placeholders).
Set the countdown
countdownDays is how many days before the due date a send fires. For two reminders at different timings (e.g. 30 and 7 days for MOT), create two templates. Each template has a single countdown.
Pick the channel
SMS uses one credit per send; email is free. To reach the customer on both channels, make a duplicate template with the other sendType.
Set per-job reminder intervals at jobcard completion
For an MOT/Service/Timing-Belt reminder to schedule, the corresponding job on the jobcard needs a reminder interval set at completion time. The DVSA lookup pre-fills vehicle.motDueDate, but the actual reminder is scheduled when you complete a jobcard that includes an MOT-flagged job.
Pistonlog schedules and sends
On the triggering event (jobcard completed, appointment created), Pistonlog inserts a row into reminder_logs with the calculated scheduledDate (due_date − countdownDays). The daily cron sends every row whose scheduledDate has passed.
What the email looks like
Rich reminder emails (MOT, Service, Timing Belt, Appointment) carry a coloured header (amber for MOT/Service/Belt, light blue for Appointment), a UK number plate display, a "Due in X days" countdown line, your message body, and Call / WhatsApp / Email CTA buttons. The Custom type uses a simpler layout with a light grey header and your message body only — no plate, no countdown, no CTAs. See What customer-facing outputs always include.
Inspecting the logs
Every scheduled, sent, failed and cancelled reminder is recorded. Open Workshop Settings → Reminders → Logs to see the scheduled date, recipient, channel, status, error message (if any), and the resolved body. Useful when a customer says "I never got a text" — you can see whether it was scheduled, sent, and what was actually sent.