Skip to content

Renewal deadline reminders

Synthesized from the base patterns government pack

Reminds licence, permit and registration holders before their renewal deadline, on the day it falls and again two weeks after, with how and where to renew. Holders marked as renewed get nothing. The licensing office gets a monthly count of renewals due next month, renewed and lapsed. Messages are short, plain and never mention fines.

  • You issue licences, permits, registrations, vehicle papers or business premises permits that must be renewed by a date, and many holders renew late or not at all.
  • Your register is in Google Sheets or Excel with each holder's phone, expiry date and whether they have renewed.
  • You want holders reminded in plain words, with the office address and a link, without anyone chasing them one by one.
HowWhat
A Google Sheet or Excel file, syncedYour licence register, synced every hour as People: phone, email, first name, licence type, the expiry date and the renewal status (pending or renewed).
A CSV uploadOr a one-off CSV of the same columns to start with.
KindNameWhat it doesLands
TeamLicensing officeGets the monthly report.Empty
SegmentExpires within a monthExpiry within the first reminder window and not renewed.Ready
SegmentExpires within a weekExpiry within the second reminder window and not renewed.Ready
SegmentExpires todayExpiry today (the date started in the last day) and not renewed.Ready
SegmentExpired two weeks agoExpired about two weeks ago (a one-day band) and not renewed.Ready
SegmentRenewed recentlyHolders who renewed in the last month (for the monthly report).Ready
SegmentLapsedExpired in the last 90 days and not renewed (for the monthly report).Ready
TemplateRenewal coming up (email)Email a month before expiry, with how and where to renew.Ready
TemplateRenewal in a month (SMS)SMS a month before expiry.Ready
TemplateRenewal in a week (SMS)SMS a week before expiry.Ready
TemplateRenewal today (SMS)SMS on the expiry day.Ready
TemplateRenewal overdue (SMS)SMS two weeks after expiry. Plain, with a pointer to the official notice and no mention of penalties.Ready
ReportMonthly: renewalsEach month, how many renewals are due next month, how many renewed and how many lapsed, to the licensing office.Off
Follow-upRenewal 1: a month beforeDaily run over "expires within a month": one email and SMS per cycle.Off
Follow-upRenewal 2: a week beforeDaily run over "expires within a week": one SMS per cycle.Off
Follow-upRenewal 3: expiry dayDaily run over "expires today": one SMS.Off
Follow-upRenewal 4: two weeks afterDaily run over "expired two weeks ago": one SMS.Off
#QuestionDefaultFills in
1What should messages call your office or agency?none, must answerorg_name
2Where and when can people renew in person? (a few words)none, must answerrenew_place
3Is there a link to renew online? (leave empty if there is not)empty: skippedrenew_url
4Where is your official page or notice about renewal, requirements and fees? (a link)
Messages point here for any detail about fees or rules. They never carry fees or penalties themselves.
none, must answernotice_url
5Who gets the monthly report? (for example the licensing office head)Licensing officeoffice_team

These have defaults. Change any that don’t fit.

SettingDefaultKey
Link to book an office visit (leave empty to skip it)booking_url
Number holders can call with questions‹workspace phone›office_phone
Trait with the expiry dateexpires_atexpiry_trait
Trait with the renewal status (pending or renewed)renewal_statusstatus_trait
First reminder (email and SMS) this long before expiry30dfirst_lead
Second reminder (SMS) this long before expiry7dsecond_lead
Reminder after expiry, this long after the date14dlate_after
Window for the after-expiry reminder (one day longer than the delay, so each holder matches on one morning)15dlate_window
Daily send time09:00send_time
Monthly report (first day of the month)0 8 1 * *report_cron
Time zone for the daily run and the report‹workspace timezone›timezone
Sender address‹workspace default_sender›email_from
Greeting when a first name is missingholdergreeting_fallback
  • Runs every day at 09:00 in ‹workspace timezone›.
  • An email and SMS when the expiry date is within 30d, an SMS when it is within 7d, an SMS on the expiry day, and an SMS 14d after the date. Each only while the holder is not marked renewed, and each holder gets each message once per cycle.
  • Monthly report to Licensing office: cron 0 8 1 * * in ‹workspace timezone›.
ChannelNeeded forBefore it can send
smsThe reminders at 30 days, 7 days, on the expiry day and after itAn SMS provider, or Origamy managed SMS after business verification (KYC). Use your office's registered sender name where the country allows it.
emailThe 30-day reminder and the monthly reportA verified sending domain for ‹workspace default_sender›.
  1. Keep these columns in your licence register: phone, email, first_name, licence_type (in plain words, for example business permit), expires_at (a date like 2026-12-31) and renewal_status (exactly pending or renewed, never blank). Set the status to renewed as soon as a renewal is processed. Leave the old date in place for a few weeks so the monthly report can count it, then move it forward and set the status back to pending.
  2. Add the people who should get the monthly report to the Licensing office team (Settings → Collaborators → Teams). A report sent to an empty team reaches nobody.
  3. Make sure the notice page is public and says what holders need and what renewal costs. The messages never state fees or penalties, so the page has to.
  4. Verify the sending domain for the email, and connect an SMS provider or finish business verification. Register your office's sender name with your SMS provider where that is possible.
  5. Tell holders when they get or renew a licence that reminders will come by SMS and email, and that they can reply STOP. Only message numbers that holders gave you for this purpose.
  6. Keep the tone plain and official. Messages never mention fines, penalties or consequences, and never carry any political or campaign content. Check the wording with your communications office.
  7. Check the segment sizes against your register, then switch the follow-ups and the report on and test with your own phone and a test row.
  • Origamy matches each row to a person by phone or email, so a person has one expiry date. If a holder has several licences, keep the earliest upcoming expiry in the sheet, or use a different contact for each licence.
  • Never leave the status blank. A blank status doesn’t match “not renewed”, so that holder would silently miss every reminder. Process renewals into the sheet the same day, so someone who renewed this morning isn’t reminded this afternoon.
  • The after-expiry reminder matches each holder on a single morning: it picks holders whose date is between 14 and 15 days ago. If you change the delay, keep the window one day longer than the delay.
  • Fees, penalties and what happens to a lapsed licence belong on the official notice, which every message links to, not in an SMS. That keeps the tone plain and means a change in the rules is one edit to one page.
  • Government sender names help trust. Where your country lets agencies register an alphanumeric sender name, use it, and tell holders at issue that reminders come from it. Offer an office booking link only if booking really works, since a broken link costs more trust than no link.

This playbook is synthesized: no customer has run it with us yet. If you build it, tell us what you changed, and we’ll replace it with the real version.

The request used to test the copilot on this playbook (a live eval):

We're a licensing office. Our register has each holder's phone, email, licence type, expires_at and renewal_status (pending or renewed). Email and text holders 30 days before their licence expires, text them 7 days before, on the day, and 14 days after, with how and where to renew and a link to our official notice. Don't mention fines or penalties. Send our office head a monthly report of renewals due next month, renewed and lapsed.

It passes when every piece is a valid draft and everything lands off, with at least: segment, workflow, message_template, team, report. It must never use: penalty, prosecution, fined, arrest.