SchoonMaak Pro
AI SaaS · Business Automation · Production

SchoonMaak Pro

AI-powered booking automation for Dutch cleaning businesses — handles WhatsApp and email enquiries 24/7 so owners never miss a booking again.

TimelineApr 24–25, 2026
CategoryAI SaaS
TypeIndependent Project
StackNode.js · Claude API · Twilio
DeploymentRender
RegionNetherlands
Status● Live · Customer Validation

What SchoonMaak Pro does.

In 2 days, I built a fully automated booking system for Dutch cleaning businesses. It responds to WhatsApp and email enquiries with AI, collects booking details conversationally, saves them to a database, notifies the owner, and reminds the customer 24 hours before their appointment.

Enquiry handling, booking collection, notifications, reminders, and follow-up workflows are automated. Owners can monitor activity through the dashboard and take over conversations whenever manual intervention is required.

Why this market needed automation.

Small cleaning businesses in the Netherlands manage all bookings manually on WhatsApp. They reply to every message themselves, miss enquiries when they're busy cleaning, have no overview of their schedule, and lose customers to competitors who respond faster. There is no affordable done-for-you solution built specifically for this market.

Market gap. Shipped in 2 days.

I identified that many Dutch cleaning businesses rely heavily on WhatsApp for customer communication and booking management, making them a strong fit for automation. SchoonMaak Pro was built to validate that fit with a working, production-ready system.

How WhatsApp, email automation, AI, scheduling, and owner workflows connect.

Customer
Input Channels
WhatsApp Channel
Twilio Business API
Email Inbox
Gmail API · OAuth2
Core Engine
Conversation Orchestrator
Node.js · Express.js · Webhooks · Scheduling
AI Decision Engine
Claude
claude-sonnet-4-6 · Conversational booking · Dutch + English
Booking Logic
Validation · Duplicate prevention · 5-min window check
Data & Integrations
Rate Limiter
express-rate-limit
Supabase
PostgreSQL · Bookings · Customers · Sessions
Human Takeover
Pause · Resume bot
Output Services
Owner Notification
Instant WhatsApp alert
Owner Dashboard
Bookings · Revenue · DM · Takeover
Reminder Scheduler
node-cron · 24h before
Customer Reminder
WhatsApp · Appointment confirmation
Monitored 24/7 · UptimeRobot · Render.com

Three systems. One automated pipeline.

WhatsApp Flow
01Customer messages the business WhatsApp number
02AI responds instantly in Dutch or English
03Collects service type, home size, date, time, and address conversationally
04Confirms booking with full details
05Owner receives instant WhatsApp notification
06Customer receives a reminder 24 hours before their appointment
Email Flow
01Customer emails the business
02System reads it via Gmail API
03Claude AI replies intelligently — handling both enquiries and booking requests
04Booking saved to database → owner notified on WhatsApp
Owner Dashboard
01Password-protected URL — no login system required
02Total bookings, today's bookings, monthly revenue overview
03Full bookings table with customer details
04Take Over button pauses the bot — owner replies manually. Resume Bot hands control back to AI
05WhatsApp DM button — message any customer directly from the dashboard
06Monthly revenue breakdown. Fully mobile responsive

See it in action.

What you'll see in the demo
WhatsApp conversation with the AI assistant
Booking details collected conversationally
Booking saved to Supabase automatically
Owner notification workflow
Dashboard updates in real time
Human takeover and resume workflow

Where it stands.

2
Days — built and deployed
24/7
Running on Render
3
Channels — WhatsApp, Email, Owner Dashboard

End-to-end booking workflows were successfully tested, including enquiry handling, booking creation, owner notifications, and automated reminders. The platform is deployed and ready for customer validation. Customer acquisition is ongoing.

Where this project stands.

The platform has been deployed and tested end-to-end. Customer validation and outreach are ongoing.

What was actually hard to build.

01
Twilio sandbox delivery failures
Responses were being generated correctly but never delivered. The root cause was Twilio sandbox international restrictions and daily limits affecting Nigerian numbers during development — required moving to a production number and restructuring the delivery flow.
02
Server crash on new customers
A .single() Supabase call was throwing an unhandled error when no booking existed for a new phone number — silently crashing the server on every new conversation. Fixed by switching to .maybeSingle() with explicit null handling.
03
Duplicate booking prevention
Claude would sometimes generate the BOOKING confirmation tag multiple times in edge cases. Field-matching alone wasn't reliable — solved with a 5-minute time window check that prevents duplicate bookings from the same number within the same session.
04
Railway SIGTERM handler bug
Adding a SIGTERM handler for graceful shutdown caused the server to shut down on every incoming request in Railway's environment. Required removing the handler entirely and relying on Railway's native process management.
05
Dutch date accuracy
Claude was calculating booking dates incorrectly because it had no awareness of today's actual date. Fixed by injecting the real-time Netherlands timezone date into every system prompt call — ensuring all date calculations are grounded in the correct local time.
06
Conversation memory leak
Storing unlimited conversations in memory caused a potential memory leak on long-running servers. Fixed with hourly cleanup that removes all conversations older than 24 hours — keeping memory usage stable across uptime.

The stack behind it.

AI
Claude API (claude-sonnet-4-6)
Backend & Runtime
Node.js Express.js node-cron express-rate-limit
Integrations
Twilio WhatsApp Business API Gmail API (googleapis) Nodemailer
Database & Deployment
Supabase (PostgreSQL) Render.com UptimeRobot GitHub

What I bring to a team.

SchoonMaak Pro demonstrates the design and deployment of a production-ready business automation platform integrating conversational AI, messaging systems, scheduling, customer notifications, human takeover workflows, and operational dashboards.

The project was built and deployed in two days, with a focus on reliability, usability, and real-world business workflows rather than a prototype-only implementation.