Inspiration

Med spas often lose revenue quietly: clients who were once regular visitors stop booking, but the signals are buried in inconsistent appointment exports. One clinic may use “TOX 50u,” another “Neuro-toxin,” and another “Botox.” Dates, payments, duplicate rows, and client identifiers are often inconsistent too. Winback Ops was inspired by the idea that the hard problem is not writing a marketing email. The hard problem is making messy operational data trustworthy enough to decide who should be contacted, when, and why.

What it does

Winback Ops turns a clinic booking CSV into an approval-gated win-back workflow. It: Uploads a raw clinic booking export. Profiles the schema and maps client, service, date, payment, and notes fields. Identifies service aliases, treatment cadence, and conservative dormancy rules. Filters duplicates, invalid dates, missing identities, and unclassified services. Segments dormant clients and estimates recoverable revenue. Drafts service-specific win-back campaigns. Requires explicit human approval before a mocked send. The result is not “send an email to everyone.” It is a transparent, prioritized list of revenue-recovery opportunities.

How we built it

Winback Ops uses a Next.js and TypeScript dashboard with a FastAPI and SQLite backend. The live profiling path uses GPT-5.6 Sol through the OpenAI Responses API to interpret unfamiliar clinic-export schemas and infer service cadence. Codex accelerated the implementation of the full workflow, including the FastAPI API, dashboard, sample-data fixtures, sandbox validation, tests, and run-visible agent activity. For reproducible local demonstrations, the app also has a clearly labelled deterministic demo mode. It runs the same upload, segmentation, validation, revenue, campaign, and approval workflow without an API call. Generated segmentation routines run in a subprocess with a timeout, import allowlist, strict Pydantic output schema, validation checks, bounded repair orchestration, and a visible run log streamed to the UI.

Challenges we ran into

The main challenge was adapting to data that is messy in different ways for every clinic: different column names, semicolon-delimited files, mixed dates, currency formatting, service aliases, duplicate appointments, missing values, and free-text notes. We also had to balance flexibility and safety. A system should adapt to unfamiliar exports, but it should not silently produce unreliable campaign targets. That led to data-quality reporting, strict output validation, bounded retries, and a human approval gate. Finally, we separated live GPT-5.6 profiling from deterministic demo execution so the project could be tested consistently without sending real client data or triggering real outreach.

Accomplishments that we're proud of

A complete upload → profile → segmentation → revenue → campaign → approval workflow. Live GPT-5.6 Sol profiling demonstrated through the OpenAI Responses API. Four intentionally different clinic-export fixtures, including an adversarial CSV with a semicolon delimiter, unusual headers, mixed formats, duplicates, and an invalid date. A visible data-quality audit that explains what was excluded and why. Sandbox execution, validation, run logging, and a bounded repair flow instead of a black-box result. Human approval as a hard gate, with sending mocked by default.

What we learned

Operational AI needs both intelligence and constraints. It is not enough to generate a plausible answer: the data mapping, segmentation output, revenue totals, and campaign audience all need to be inspectable and validated. We also learned that AI is most useful here before copywriting. The highest-value step is turning an unfamiliar, messy export into a trustworthy operational model that a clinic can review and act on.

What’s next for Winback Ops

Next, we plan to complete the live GPT-5.6 path for code generation, repair, and campaign drafting in an isolated production worker. For RelayOps, future work includes: Clinic user accounts and access controls. Consent, unsubscribe, and suppression-list management. Secure encrypted data storage and deletion controls. Integration with clinic booking systems and CRM platforms. Email delivery through each clinic’s verified domain or existing marketing system. Real-world validation of treatment cadence and recovery assumptions with consented clinic partners. The long-term goal is a managed revenue-recovery operator that helps local service businesses recover value from relationships they already earned.

Built With

Share this project:

Updates