OTOMY
AUTOMATIONJune 1, 20266 min

How to Automate Client Follow-Ups via WhatsApp in 2025

Your sales team wastes hours on manual WhatsApp follow-ups? Learn how to fully automate client reminders using n8n, Supabase, and the WhatsApp Business API — no complex coding required.

M

By

Melissa Slimani

Why Automate Client Follow-Ups via WhatsApp?

WhatsApp boasts a 98% open rate within 3 minutes — compared to roughly 20% for email. Yet most SMBs still handle follow-ups manually: copy-pasting messages, tracking leads in spreadsheets, and inevitably forgetting prospects along the way.

Automating WhatsApp follow-ups allows you to:

  • Cut processing time by 80% (from 2h/day to 15 minutes of oversight)
  • Boost conversion rates by 25–40% through systematic, timely reminders
  • Eliminate forgotten leads — every prospect receives the right message at the right time
  • Personalize at scale using generative AI

The Technical Stack: Essential Building Blocks

Here is the production stack we deploy at Otomy for SMB clients across France and Algeria:

Component Tool Purpose
Database Supabase (PostgreSQL) Store contacts, statuses, history
Automation n8n (self-hosted) Orchestrate follow-up workflows
Messaging WhatsApp Business API (Meta Cloud API) Send and receive messages
AI copywriting Claude AI (Anthropic) Generate personalized messages
Hosting OVH VPS or Vercel (dashboard) Reliability and geographic proximity

Why n8n over Make or Zapier? n8n is open-source, self-hostable (GDPR compliance), and doesn't charge per execution. For an SMB sending 500 follow-ups per day, the savings are substantial.


Step 1: Configure the WhatsApp Business API

Before anything else, you need a WhatsApp Business API account through Meta:

  1. Create a Meta Business App at developers.facebook.com
  2. Enable the WhatsApp product and obtain your Phone Number ID and Access Token
  3. Create your message templates — mandatory for business-initiated messages
  4. Submit templates for Meta review (typically 24–48 hours)

Sample follow-up template:

Hi {{1}},

Following our conversation on {{2}}, I wanted to check if you had any questions about our {{3}} offer.

Happy to discuss further. Have a great day!

Step 2: Structure the Database in Supabase

Create a leads table in Supabase:

CREATE TABLE leads (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  name TEXT NOT NULL,
  phone TEXT NOT NULL,
  email TEXT,
  status TEXT DEFAULT 'new',
  last_contact TIMESTAMP,
  follow_up_count INTEGER DEFAULT 0,
  next_follow_up TIMESTAMP,
  notes TEXT,
  created_at TIMESTAMP DEFAULT now()
);

Key statuses: newcontactedfollow_up_1follow_up_2converted / lost.

Enable Row Level Security (RLS) and add a database trigger that automatically calculates next_follow_up after each interaction.


Step 3: Build the n8n Workflow

The complete workflow in 6 nodes:

Node 1 — Cron Trigger

Fires daily at 9:00 AM (local timezone).

Node 2 — Supabase Query

Fetch all leads where next_follow_up <= NOW() and status NOT IN ('converted', 'lost').

SELECT * FROM leads
WHERE next_follow_up <= NOW()
AND status NOT IN ('converted', 'lost')
ORDER BY next_follow_up ASC
LIMIT 50;

Node 3 — Claude AI (HTTP Request)

For each lead, send a prompt to Claude AI to personalize the message:

{
  "model": "claude-sonnet-4-20250514",
  "messages": [{
    "role": "user",
    "content": "Write a short WhatsApp follow-up for {{name}}, last contacted on {{last_contact}} about {{notes}}. Friendly and professional tone. Max 160 characters."
  }]
}

Node 4 — WhatsApp Cloud API (HTTP Request)

Send the message via Meta's API:

{
  "messaging_product": "whatsapp",
  "to": "{{phone}}",
  "type": "template",
  "template": {
    "name": "follow_up_commercial",
    "language": { "code": "en" },
    "components": [{
      "type": "body",
      "parameters": [
        { "type": "text", "text": "{{name}}" },
        { "type": "text", "text": "{{contact_date}}" },
        { "type": "text", "text": "{{offer}}" }
      ]
    }]
  }
}

Node 5 — Supabase Update

Update the lead's status, increment follow_up_count, and calculate the next follow-up date (D+3, D+7, D+14 depending on the cycle).

Node 6 — Slack/Telegram Notification

Alert the sales team if a lead reaches the 3rd follow-up without a response.


Step 4: Handle Incoming Replies with a Webhook

Configure an n8n webhook as the callback URL in your Meta App. When a client responds:

  1. Parse the incoming message (text, audio, image)
  2. Analyze intent with Claude AI: interested? question? refusal?
  3. Update Supabase: change status and deactivate automated follow-ups
  4. Notify the assigned salesperson for human handoff

This hybrid AI + human approach prevents missteps while maintaining automation efficiency.


Common Pitfalls to Avoid

  • Don't spam: limit yourself to 3 spaced follow-ups maximum. Beyond that, you risk getting your WhatsApp number blocked.
  • Respect time zones: never send messages before 8 AM or after 8 PM.
  • Use only approved templates for business-initiated messages (Meta requirement).
  • Provide an opt-out: every message must include an unsubscribe option.
  • Log everything: maintain a complete history in Supabase for GDPR compliance.

Real Results from Our Clients

An e-commerce business based in Oran, Algeria deployed this system with Otomy:

  • Before: 3 hours/day of manual follow-ups, 12% response rate
  • After: 15 minutes/day of oversight, 38% response rate
  • ROI: the system paid for itself in 11 days

A consulting firm in Lyon, France reduced its sales cycle from 14 to 8 days using automated follow-ups.


Next Steps for Your Business

  1. Audit your current process: how many leads get followed up? How many are forgotten?
  2. Open a WhatsApp Business API account — the first 1,000 conversations per month are free
  3. Deploy n8n on a VPS (4 GB RAM is sufficient) or use n8n Cloud
  4. Contact Otomy for a turnkey deployment in 5 business days

Automating WhatsApp follow-ups is no longer a luxury — it's a decisive competitive advantage for SMBs that want to scale without hiring.

OTOMY

Ready to automate your business?

Book a free call — 30 minutes to identify what we can automate for you.