Skip to content

Membership dues renewals

Synthesized from the base patterns communities pack

Keeps membership dues renewed without the treasurer chasing by hand. Members get a friendly email a month before their dues run out and an SMS (or WhatsApp) a week before. If dues have lapsed, they get a kind message and the treasurer gets a task to call. The executive gets a monthly count of members who are paid, due and lapsed, and you always have a list of members in good standing.

  • You run an association, professional body, alumni network, club, faith group or diaspora group that collects yearly dues.
  • Your treasurer or secretary keeps the member register in Google Sheets or Excel with the date each member's dues run out.
  • Members forget to renew, and the treasurer spends weeks reminding people one by one.
  • You need a clean list of paid-up members before an annual general meeting.
HowWhat
A Google Sheet or Excel file, syncedYour member register, synced every hour as People: phone, email, first name, chapter, the date dues expire and dues status (paid or unpaid).
A CSV uploadOr a one-off CSV of the same columns to start with.
KindNameWhat it doesLands
TeamTreasurerCalls members whose dues have lapsed.Empty
TeamExecutive committeeGets the monthly report.Empty
SegmentDues expire within a monthDues expire within the email lead time and are not paid.Ready
SegmentDues expire within a weekDues expire within the SMS lead time and are not paid.Ready
SegmentDues lapsedDues expired more than a day ago, within the follow-up window, and not paid.Ready
SegmentMembers in good standingMembers who have paid and whose dues haven't expired yet. Open it for the list of paid-up members before a general meeting.Ready
TemplateDues coming up (email)Friendly email a month before dues expire.Ready
TemplateDues in a week (SMS)SMS a week before dues expire.Ready
TemplateDues lapsed (SMS)Kind SMS once dues have lapsed. No pressure.Ready
TemplateDues in a week (WhatsApp)WhatsApp reminder a week before dues expire (needs Meta approval).Ready
TemplateDues lapsed (WhatsApp)Kind WhatsApp message once dues have lapsed (needs Meta approval).Ready
ReportMonthly: duesEach month, how many members are due, in good standing and lapsed, to the executive.Off
Follow-upDues 1: a month beforeDaily run over "dues expire within a month": one email per cycle.Off
Follow-upDues 2: a week beforeDaily run over "dues expire within a week": one SMS or WhatsApp per cycle.Off
Follow-upDues 3: lapsedDaily run over "dues lapsed": a kind message, then a call task for the treasurer with the outcome saved.Off
#QuestionDefaultFills in
1What should messages call your association or group?none, must answerorg_name
2How should members pay their dues? (the sentence members will read, without account numbers)
Say it the way you would say it out loud. Messages never carry bank details or amounts.
none, must answerhow_to_pay
3Which team calls members whose dues have lapsed? (usually the treasurer, one person is fine)Treasurertreasurer_team
4Who gets the monthly report?Executive committeeexecutive_team
5Should the week-before and lapsed messages go by WhatsApp instead of SMS?
Needs a connected WhatsApp Business number and Meta-approved templates.
Nouse_whatsapp

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

SettingDefaultKey
Number members can call or message with questions‹workspace phone›treasurer_phone
Trait with the date dues expiredues_expires_atdues_date_trait
Trait that says if dues are paid (paid or unpaid)dues_statusdues_status_trait
Email this long before dues expire30demail_lead
SMS or WhatsApp this long before dues expire7dsms_lead
How long after expiry to keep following up lapsed dues30dlapsed_window
Hours the treasurer has to make the call72call_due_hours
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 missingfriendgreeting_fallback
  • Runs every day at 09:00 in ‹workspace timezone›.
  • An email when dues expire within 30d, and an SMS (or WhatsApp) when they expire within 7d. Each only while the member is not marked paid, and each member gets each message once per cycle.
  • Once dues have lapsed (expired more than a day ago, up to 30d) the member gets a kind message. Two days later, if they are still unpaid, Treasurer gets a call task due in 72 hours.
  • Monthly report to Executive committee: cron 0 8 1 * * in ‹workspace timezone›.
ChannelNeeded forBefore it can send
emailThe first reminder, a month beforeA verified sending domain for ‹workspace default_sender›.
smsThe week-before reminder and the lapsed message (or WhatsApp, if you switch it on)An SMS provider, or Origamy managed SMS after business verification (KYC).
whatsappThe week-before reminder and the lapsed message, if you answer yes to WhatsAppA connected WhatsApp Business number, and both templates approved by Meta.
  1. Keep these columns in your member register: phone, email, first_name, chapter, dues_expires_at (a date like 2026-12-31) and dues_status (exactly paid or unpaid, never blank). Set the status to paid when dues are received. When the new year starts, move the date forward a year and set the status back to unpaid, and leave the old date in place for a few weeks first if you want the monthly report to count recent renewals.
  2. Add your treasurer to the Treasurer team and your executive to Executive committee (Settings → Collaborators → Teams). If one person does both, put them in both. A task or report sent to an empty team reaches nobody.
  3. If you chose WhatsApp: connect your WhatsApp Business number and submit the two templates (dues_renewal_reminder and dues_lapsed_notice) for Meta approval before switching the follow-ups on.
  4. Verify the sending domain for the email. For SMS, connect a provider or finish business verification.
  5. Tell members at a meeting or in the group chat that reminders will come by email, SMS or WhatsApp, and that they can reply STOP. Messages never show amounts, so you stay in control of what is said about money.
  6. Keep reminders friendly. Never name members who haven't paid, and never contact someone's family or employer. Make sure the treasurer is ready to hear from members who can't pay this year.
  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.
  • One row per member, one expiry date, one status. Use the same date for everyone if your dues run on a calendar year (for example 31 December), or each member’s own date if they run from the day they joined. Both work.
  • Never leave the status blank. A blank status doesn’t match “not paid”, so that member would silently miss every reminder.
  • Dues are often paid by bank transfer, POS or cash at a meeting, with someone updating the sheet later. Ask your treasurer to update the sheet the same day, so a member who paid yesterday isn’t reminded today.
  • The “Members in good standing” segment is your voting or AGM list: members marked paid whose dues haven’t expired. Check it against the register before you rely on it.
  • Alumni networks and professional bodies with members abroad can leave WhatsApp off and use email plus SMS, or turn WhatsApp on if most members are on it. Either way keep the wording the same.

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 an association that collects yearly dues. Our members sheet has phone, email, chapter, dues_expires_at and dues_status (paid or unpaid). Email members a month before their dues expire and text them a week before. If dues have lapsed, text them kindly and give our treasurer a task to call. Send our executive a monthly report of how many members are paid, due and lapsed. Keep the tone friendly and don't put amounts in messages.

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, suspended, late fee.