How a reminder flow works, step by step
- Your system raises an eventYour billing or accounting system calls an authenticated webhook on our platform (we call it a Door) when an invoice is issued, falls due, goes overdue or reaches final notice. If your system can't send webhooks, we work out another trigger with you, such as a small scheduled job on your side, or an n8n workflow, that calls the webhook.
- We send the right templateEach stage has its own approved utility template with the customer's name, invoice number, amount and date filled in, plus buttons: Pay now, and where you allow them, Payment arrangement and Query this invoice.
- The customer pays by linkPay now opens a Paystack or Yoco hosted checkout for that exact amount. Card details are handled by the payment provider, not typed into WhatsApp.
- The conversation resumes when paidThe payment provider confirms the payment to our platform, the chat picks up again with a thank-you and the new balance. We build the reminder flow so later reminders for that invoice are stopped.
- Your records are updatedAs part of the build, we mark the invoice as paid in your system through its API, or post the payment to your webhook, so your team and your statements agree with the chat.
- Anything else goes to a personReplies the flow can't settle, such as a dispute or a request outside your rules, land in the shared inbox, where your team sees the whole conversation. When someone on your team replies, the automation pauses for that chat.
The four stages, and how to word them
| Stage | When | Example wording |
|---|---|---|
| Invoice issued | When the invoice is created | "Your November invoice INV-20481 for R699.00 is ready. It's due on 1 November." |
| Due soon | A few days before the due date | "A reminder that invoice INV-20481 for R699.00 is due on 1 November." |
| Overdue | After the due date, on your schedule | "Invoice INV-20481 for R699.00 was due on 1 November and is still open. If you've already paid, please ignore this message." |
| Final notice | Before the action you take, such as suspension | "Invoice INV-20481 for R699.00 is still open. To keep your service active, please pay or contact us by 10 November." |
Wording, amounts and dates in this table are examples.
Say what is owed, by when, how to pay and what happens next. No threats, no shaming, no pressure language, and always an easy way to say "I've already paid" or "this isn't right". Meta reviews every template when it's submitted, and a reminder must stay a utility message: no offers, upsells or promotions in the same template.
Collections in South Africa must follow the law that applies to you and your customers. We don't give legal advice, so check your wording, timing and process with your legal or compliance adviser. We build to the rules you give us.
Arrangements, disputes and "I've already paid"
Reminders are the easy part. The value is in what happens when the customer replies, because most replies need an answer from your system, not a generic message.
- Pay now. A link for the full amount, generated for that invoice.
- Payment arrangement. We offer only the options you allow, for example two instalments or a later date. The request is checked against your rules through your system's API. If it fits, it's recorded and confirmed in the chat. If not, it goes to your team.
- Query this invoice. The customer says what's wrong, can attach a photo or document, and we open a query record in your system through its API. You decide whether reminders stop while the query is open.
- Free text and voice notes. If the customer types or sends a voice note instead of tapping a button, Claude (the AI model we use) can sort the message into "how do I pay", "I need more time", "I dispute this" or "something else", and pull out details such as a promised payment date. Voice notes can be transcribed, with South African language support. Anything unclear goes to a person.
For longer forms, such as an arrangement with income details, we can use a WhatsApp Flow: a short form inside the chat that can show options loaded live from your system.
Your arrangement and dispute rules are written into the flow by our engineers, from what you tell us. There's no rule editor for you to change them yourself. When a rule changes, tell us and we update it.
Systems connected
Most of this is a custom build on parts our platform already runs. The table shows which is which.
| Part | Status | What it means |
|---|---|---|
| Webhook trigger (Door) | Runs | An authenticated webhook your system calls to start a reminder. We wire it to your events |
| Utility templates | Runs | We write the templates, submit them to Meta and track their review status |
| Pay link with resume-on-paid | Runs | Paystack or Yoco hosted checkout, confirmed back to the chat. One gateway per account |
| Shared inbox and handover | Runs | Replies your team needs to see, with automation paused while a person replies |
| Claude sorting and voice notes | Runs inside the build | Classifies free-text replies and pulls out details. Facts come from your system, not from the AI |
| QuickBooks Online | Connection runs; reminders are a build | QuickBooks Online connects to our platform, and a Program can raise an invoice once a WhatsApp order is paid. Reading your QuickBooks invoices and due dates to drive reminders is part of the build |
| Your billing or accounting system | Build | Sage, Xero, ISP billing, loan management or your own software: we connect WhatsApp to it via its API |
| Arrangement and dispute rules | Build | Checked against your system's API, written by our engineers |
If your system has no API, see connecting WhatsApp to your own software for the options.
Message categories and what Meta charges
Meta charges per delivered message, by category and by the recipient's country code. These are the South African rates from 1 October 2026, and Meta bills you directly in US dollars. We add nothing to them.
| Message | Category | Meta's SA rate |
|---|---|---|
| Invoice, due, overdue and final-notice reminders | Utility template | US$0.0095 per delivered message, lower above 100,000 utility messages a month |
| Customer replies to you | Inbound | Not charged |
| Your replies while the 24-hour window is open (pay link, arrangement, confirmation) | Service | First 1,000 per number per month free, then US$0.0095 |
| A paid confirmation sent after the window has closed | Utility template | US$0.0095 |
Utility volume tiers are counted per calendar month across your business portfolio: US$0.009 from 100,001 utility messages, US$0.0086 from 1,000,001, and lower again at higher volumes. Utility templates sent inside an open window are charged too.
example 3,000 customers who each get an invoice-issued and a due-soon reminder is 6,000 utility messages, about US$57 a month in Meta fees. If 500 of them also get an overdue reminder, add about US$4.75. Use our pricing page for a rand estimate.
Source: Pricing on the WhatsApp Business Platform, Meta for Developers (updated 30 September 2026), including the rate card and volume tiers linked from it · Template categorisation · Customer service windows
Before you send reminders, customers need to have opted in to WhatsApp messages from your business. The opt-in can be on your website, sign-up form, contract or in person, as long as it names your business (Meta: Get opt-in for WhatsApp). A new business portfolio can also only reach 250 unique customers outside the 24-hour window in any rolling 24 hours at first, so a large first run of reminders may need to be spread out (Meta: Messaging limits; see our guide to WhatsApp messaging limits).
Euphony charges for building and running the flow: a one-off build from R15,000 ex VAT, plus R7,500 per integration, then a monthly fee from R4,950 ex VAT.
What we need from you
- Your WhatsApp number, connected through Meta's Embedded Signup, with your own payment method on your Messaging account for Meta's charges.
- A Paystack or Yoco account that can take live payments.
- Access to your billing or accounting system's API, or a developer who can make it call our webhook when an invoice changes.
- Your reminder schedule: which stages, how many days before or after the due date, and what happens at final notice.
- Your rules for arrangements, extensions and disputes, and who in your team handles exceptions.
- Your approved wording, checked by whoever signs off collections communication in your business.
- Confirmation that the customers you'll message have opted in.
- Customers without WhatsApp don't get these reminders, and we don't send SMS as a fallback. Keep your email or SMS reminders for them.
- Chats can't be assigned to a named agent in our inbox. If you route collections work by agent, we can pass the case into your CRM or helpdesk.
- We don't place WhatsApp calls to customers. A "call me" request lands in the inbox and your team phones as usual.