Health & Fitness · Happilates · Pilates studio (US)
Two Booking Platforms, Zero Manual Entry
A continuously running sync bot that mirrors class schedules from Momoyoga into PuraPass in near real time — with Discord alerts, database-backed state, and Docker deployment.
How it works
The system, end to end.
- 01Read Momoyogaevery 60s
- 02Detect changeadd · edit · cancel
- 03Diff statevs PuraPass
- 04Mirror to PuraPasscreate · update · delete
- 05Discord alertsummary · errors
The problem
Happilates ran its studio on Momoyoga for internal scheduling and PuraPass for client-facing bookings — two platforms with no native integration. Every class added, changed, or cancelled in Momoyoga had to be retyped into PuraPass by hand. Slow, repetitive, and easy to get wrong.
The build
I built a persistent Python bot that polls Momoyoga on a configurable interval (60 seconds by default), detects class creates, updates, and cancellations, and mirrors each change into PuraPass through its API.
Momoyoga has no public API, so the bot reads it the way a person would — through an authenticated browser session — then normalises titles, times, capacity, and instructors before comparing against the live PuraPass state. Capacity counts are converted between each platform’s different inventory scales, and a configurable blacklist keeps selected classes out of the sync.
The operations layer is what makes it dependable: sync state persists in a database so restarts don’t re-sync everything, Discord webhooks report every sync summary and error (with deduplication, so a recurring fault sends one alert instead of one per minute), and a circuit breaker keeps the sync loop alive even if the database goes down. The whole thing ships in Docker and runs unattended.
The result
Schedule changes now propagate automatically within one poll cycle. No more double data entry, no more missed updates between platforms.
“One of the best contractor experiences I’ve had on Fiverr.” — Regan LaBelle, owner, Happilates
Built for more than one platform
I’ve since extended the same pattern to Momence → PuraPass as a cleaner, API-first integration — proving the architecture isn’t tied to a single source system. Whatever studio software you run, the sync layer adapts: scrape or call the source, diff against the destination, and keep them in lockstep.
Services used
Tools used in the build.
More work
Other case studies.
Same problem? Let's talk.
Stop running your business by hand.
Work directly with me on the workflow you want to improve. I'll agree the scope, timeline, and price with you before the build starts.
No commitment. Just a conversation.