The service-due reminder engine: repeat work that books itself
A customer list that remembers every due date and invites the customer back — before a competitor does
Version history
A customer card file that remembers every due date, plus a morning engine that invites customers back on schedule — the recall feature field-service platforms sell at $119+/month, rebuilt on a box you own.
The problem
Repeat service work is the cheapest sale a service business ever makes: the customer already knows you, and the job has a date on it. A garage with 400 cars on file has 400 inspections and 400 services coming due in the next twelve months, sitting in old invoices, remembered by nobody. Much of this work is not even optional. In Flanders a gas central-heating boiler must be serviced every two years by a licensed technician and an oil boiler every year (vlaanderen.be); in the UK a car over three years old needs its MOT every year. The customer has to buy this service from someone — whether from you depends on who reaches them first, and "we should ring the October list" never survives a busy week. Software that fixes this exists: field-service platforms like Jobber put automated service reminders in their $119–169/month tiers (2026 pricing), bundled with dispatch boards and GPS tracking a one-van business never asked for. That is roughly €1,300 a year for what is, at its core, a list and an alarm clock. This blueprint builds the list and the alarm clock.
The architecture
▼
[ NocoDB or Grist (self-hosted) — the customer card file ]
│ customer, email, item serviced, last date, interval, next due, last reminded
▼ every morning, 07:00
[ n8n (self-hosted) — the reminder engine ]
├─ due in 30 days, not yet reminded → "your service is due" email + booking link
├─ due in 7 days, still not booked → one nudge
└─ 14 days overdue → Monday phone-list, mailed to you
▼
[ Reminder logged back on the card ] — nobody gets nagged twice
The split is deliberate and the same one used across this library: the card file owns the truth, n8n owns the clock. Swap the database later, or add SMS, and the reminder logic survives untouched. If you already run the no-show blueprint, the booking link in the email is your own booking page — the customer goes from reminder to booked slot without ringing you. Same n8n box, one more workflow.
Tool choices — and why
NocoDB (Sustainable Use License — free for internal business use, 63k stars, active — release 2026.05.0, May 2026) is the card file. It looks and edits like a spreadsheet, so whoever keeps the list today needs no training, and it comes with two things a spreadsheet does not have: a phone-friendly form view for adding a job from the van, and an API that n8n talks to natively (n8n ships a NocoDB node; the pairing is a documented pattern in n8n's own template gallery). One licence note, stated plainly: NocoDB uses the same licence family as n8n — free to run your business on, not free to resell as a hosted service. For this use, no issue.
Grist (Apache-2.0, 11.1k stars, active — v1.7.14, May 2026) is the alternative if you think in formulas. It is closer to Excel than any tool in this library, computes the next-due date with a real formula column, and carries a pure open-source licence if that matters to you. It has no native n8n node, so n8n calls its REST API over HTTP — one extra configuration step, documented in Grist's API docs.
n8n (Sustainable Use License — free self-hosted internal use, 189k stars, active 2026) is the engine: one schedule trigger, one query, one email node, one write-back. If you built the invoice chaser, the review engine or the inbox triage from this library, it is the same box doing one more morning round.
Why not a spreadsheet and calendar reminders? A calendar reminds you. This reminds the customer, per job, with a booking link, and keeps score of who was asked and who booked. The difference is a filled diary versus a guilty backlog.
Monthly cost. Software: €0 all three. Hosting: €0 if these containers join the box you already run from the other blueprints; €5–12/month for a small VPS if this is your first. Email: your existing mailbox's SMTP at this volume, €0. SMS: optional, pay-per-message (roughly €0.01–0.10 each depending on country — verify current rates); email alone does the heavy lifting for planned maintenance.
Setup outline
1. Deploy NocoDB (official Docker image) next to n8n. Create one table: customer, email, phone, item serviced, last service date, interval in months, next due (computed), status, last reminded.
2. Do the one-time import: export the last 12–24 months of invoices or job records as CSV, deduplicate customers, set the interval per item type. This is the real work of the afternoon — budget 1–2 hours. The automation is only as good as this list.
3. Build the n8n workflow: schedule trigger 07:00 → query rows where next due is within 30 days and last reminded is empty → send the service-due email with your booking link → write today's date to last reminded.
4. Add the nudge branch: due within 7 days, no booking, one reminder sent → send one nudge. Not a third.
5. Add the phone-list branch: every Monday, rows 14+ days overdue → one email to you. A call in week three wins customers that mail never will.
6. Set SPF, DKIM and DMARC on the sending domain before the first real send — ten minutes of DNS, or spam-foldered reminders forever.
7. Test on your own address, then run two weeks on one service category (only boiler services, or only MOTs) before switching on the rest.
8. Make the row update part of finishing a job: last step of invoicing, or the NocoDB form on your phone before leaving the driveway.
Pitfalls — the real ones
The list is the asset; the workflow is the easy part. A wrong email column beats no automation every time. Spend the import evening properly; deduplicate before you switch anything on.
Update from the LAST job, not the first. A boiler serviced in March that came back in July is due next July. Every finished job must move the last-service date, or reminders drift wrong within a year.
EU consent, stated plainly. Emailing an existing customer that the service they bought from you is due again is a service communication — generally fine. Tacking promotions onto it turns it into marketing, which needs consent. Keep reminders clean, honour "stop emailing me" the same day with a status flag the query excludes, and never import a bought list. US senders: identify yourself and include an opt-out (CAN-SPAM basics).
One reminder, one nudge, then a human. A third email teaches customers to ignore all of them. The Monday phone-list exists because the stubborn 20% is won by voice, not volume.
Seasonal pile-up is real. If most boilers were installed in autumn, most reminders fire in autumn. Cap sends per day in n8n and start reminders 30 days out, or week one of October buries you in replies.
Test the dedup path first. The write-back to last reminded is the safety that stops double-nagging. Break it on purpose in the test and confirm the second run stays silent.
Verified repos
NocoDB — Sustainable Use License (free self-hosted internal use), 63k stars, active (May 2026)
Grist (grist-core) — Apache-2.0, 11.1k stars, active (May 2026)
n8n — Sustainable Use License (free self-hosted internal use), 189k stars, active (2026)
Get the next blueprint as it publishes — free, practical, verified tooling only.
Subscribe · Want this audited or extended for your business? DM @RXed_EU
Get this blueprint tailored to your business — free
Tell us what you run and where. We research your sector's specifics — rules, tools, customer habits — and send you a version of this blueprint rebuilt for your situation, usually within 24 hours.