Skip to content

On a schedule

Send a weekly WhatsApp reminder to a list of customers

The same set of customers gets your approved reminder on schedule, and you get a note of any that failed.

Runs
On a schedule
Apps
WhatsApp Business
AI
Not needed
Access
whatsapp_business_messaging

Send this to your assistant

Create a ClickRuntime automation: every Monday at 9am, send our 'payment_reminder' WhatsApp template to these 12 numbers with each customer's amount due, and email me a list of any that failed.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A tutoring centre, a landlord with a dozen tenants, or a gym needs to remind people about something fixed: rent due on the first, class tomorrow at six, membership renewing. Sending each message by hand takes an afternoon, and when it is skipped the cost is concrete: late rent, empty class slots, a missed renewal. Bulk SMS tools exist, but customers read WhatsApp.

On the schedule you set, the automation loads your stored list of numbers and their details, such as name and amount, sends each person an approved WhatsApp template with their own values filled in, and records any that fail. Afterwards it emails you a short summary of who was reached and who was not.

It works for any group you contact on a repeating date and want a reliable record for.

What you get out of it

  • Payments arrive earlier

    A reminder on the due date, addressed by name with the amount, prompts action while the bill is on people's minds. Late payments shrink without anyone feeling pursued. Even a modest improvement in on-time payment helps a small business with thin cash buffers.

  • Fewer no-shows

    An appointment or class reminder the evening before gets people to confirm or cancel. A cancelled slot can be filled, which an unnoticed no-show cannot. Cancellation in advance gives you a chance to refill the slot, which an empty chair never does.

  • Personalized without typing each one

    Name, date and amount come from your stored list, so every message looks individual, which gets better responses than a generic broadcast. Recipients are more likely to read a message that greets them by name and states the exact amount or time.

  • Failures are not silent

    Recording failed sends and emailing the summary tells you which people were not reached, so you can call them instead of assuming everyone got the note. You also keep a simple record of who you contacted and when, which helps if anyone later says they were never told.

  • Approved templates keep the account safe

    Using pre-approved templates follows WhatsApp's rules for business-initiated messages, which protects your number's quality rating from the penalties unsolicited content brings. That keeps the number in good standing, which matters because a damaged rating can lower how many messages you are allowed to send.

How it works

What happens, step by step

  1. On the schedule you set, ClickRuntime loads your saved list of customers with their names and booking details.

  2. It sends each one your approved WhatsApp reminder template, with their details filled in.

  3. It notes any message that could not be sent, and why.

  4. You get an email with how many reminders went out and a line for each one that failed.

Before it runs live

  • Connect WhatsApp Business

What you get

RunsOn a schedule
Send a weekly WhatsApp reminder to a list of customerstoday, 9:00Succeeded
Email · Reminders sent: 47/48+447700900999: Recipient phone number not in allowed list

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other WhatsApp Business steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
scheduled_reminder_message_to_a_list.pyexample
from clickruntime import on_trigger, credentials, http, state, notify

PHONE_NUMBER_ID = "123456789012345"

@on_trigger
def run(event):
    recipients = state.get("recipients") or []  # [{"phone": "4477...", "name": "Sam", "date": "Fri 24 Oct"}]
    h = {"Authorization": f"Bearer {credentials.secret('WHATSAPP_TOKEN')}"}
    failed = []
    for r in recipients:
        res = http.post(f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages", headers=h, json={
            "messaging_product": "whatsapp", "to": r["phone"], "type": "template", "template": {
                "name": "payment_reminder", "language": {"code": "en"},
                "components": [{"type": "body", "parameters": [{"type": "text", "text": r["name"]}, {"type": "text", "text": r["date"]}]}]}})
        if not res.ok:
            failed.append(f"+{r['phone']}: {res.json().get('error', {}).get('message', res.status_code)}")
    notify.email_me(f"Reminders sent: {len(recipients) - len(failed)}/{len(recipients)}", "\n".join(failed) or "All sent.")
    return {"sent": len(recipients) - len(failed), "failed": len(failed)}

FAQ

Common questions

Why must the reminder be a template?
WhatsApp requires an approved template for messages a business starts outside the 24-hour customer window. A reminder is business-initiated, so the wording is submitted for approval in advance and the automation fills in the placeholders.
Where do the phone numbers and details come from?
They are stored with the automation as a list, and your AI assistant can update it when someone joins or leaves. Numbers need to be in international format, and each person should have agreed to receive messages.
What does the summary email contain?
It lists how many messages were sent and which numbers failed, with the error reason where WhatsApp supplied one. That lets you follow up with failed recipients by phone, or fix numbers that were entered incorrectly.
What permissions does it need?
whatsapp_business_messaging. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (on a schedule). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Send a weekly WhatsApp reminder to a list of customers” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.