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.
- 01 Read Momoyoga every 60s
- 02 Detect change add · edit · cancel
- 03 Diff state vs PuraPass
- 04 Mirror to PuraPass create · update · delete
- 05 Discord alert summary · 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
We 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
We’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
How we built it.
More work
Other case studies.
Same problem? Let's talk.
Stop running your business by hand.
The first call is free. The audit you leave with is yours. Even if you don't hire us.
No commitment. Just a conversation.