Everything you need to understand the platform — products, architecture, integrations, data model, and how it all works together.
RexRuby is a two-product AI SaaS platform for service businesses — salons, medspas, dental, legal, and more.
Rex is always-on AI that handles every inbound inquiry and converts it into a confirmed, paid booking.
Handles SMS, voice, Instagram DMs, Facebook Messenger, WhatsApp, TikTok, email, and embedded webchat — same AI logic across all channels.
Claude classifies every message: booking request, cancellation, question, feedback, or escalation. Extracts service type, date/time, client name.
Queries the connected booking system (Acuity, Mindbody, etc.) for real-time availability before offering slots — never double-books.
Sends a Stripe payment link before confirming the booking. No payment = no slot held. Eliminates no-shows for first-time and high-risk clients.
Rex auto-texts the client 7 minutes after a missed appointment — the optimal window. 55% rebook within the hour.
When Rex detects frustration, complex requests, or explicit asks for a human, it transfers with full conversation context so staff can pick up seamlessly.
Rex handles inbound calls via Twilio. After the call ends, Claude Haiku summarizes the transcript, extracts intent and outcome (booked, cancelled, escalated, unanswered), and stores it as a conversation record. Voice cloning via ElevenLabs is available for branded voice personas. Multilingual: Rex responds in the caller's detected language across 9 languages.
Ruby watches every client's visit pattern, identifies the exact moment they're at risk of churning, and sends a personalized message at the optimal time \u2014 autonomously.
The dashboard is organized into views. Each view is a focused workspace for a specific job.
Real-time stats strip (bookings today, revenue recovered). Recent conversations list with channel filter. Monthly ROI trend chart. Welcome tour for first-time users.
Filter by channel, intent, outcome. Full message history. Sentiment + intent badge per conversation. Manual takeover button. Bulk mark as booked/escalated.
Campaign builder with AI message suggestions. Segment selector (lapsed days, churn risk). A/B variant editor. Schedule picker. Performance metrics (send, open, convert).
Full contact list with LTV, churn risk, NPS, last visit. CSV bulk import with field mapping. Client profile detail pane. GDPR data export per client.
Org details, business hours, services. Team member roles. Booking system integration connect. SMS cooldown rules. API keys + webhooks. Notification preferences.
Multi-location management. View and manage child organizations. Unified billing across locations. Agency-wide reporting.
Integration health status. Webhook test form. Feature flag toggles. Manual background job triggers. System diagnostics.
All orgs list, search/filter. Billing disputes, usage, invoices. Revenue recovery metrics. Webhook dead-letter queue. Bulk org import. Quote composer.
Complete map of all pages and their access requirements.
RexRuby connects to 15+ external systems. Each integration is handled via dedicated API routes.
30+ Supabase tables with Row-Level Security. Every query is scoped to org_id \u2014 tenants cannot see each other's data.
27 durable background functions. Inngest handles retries, scheduling, and event-driven orchestration.
Clerk manages all user and org sessions. API keys are hashed at rest. Every dashboard endpoint requires a valid Clerk session. Org membership is enforced server-side.
Every Supabase query is scoped to org_id via Row-Level Security policies. Tenants cannot access each other's data \u2014 enforced at the database layer, not just application code.
BAA signing flow at /legal/baa. HIPAA audit log table (hipaa_log) records every access. PII is masked in server logs. Document intake forms are encrypted.
Opt-out table (opted_out) is checked before every outbound SMS \u2014 no exceptions. STOP/START keywords are handled automatically. Consent is logged with timestamp.
Data export endpoint for right-of-access requests. Configurable data retention periods. Right-to-erasure flow available via /api/clients/data-request.
Every inbound webhook (Twilio, Stripe, Meta) has its signature verified before processing. Stripe uses idempotency keys on all charge operations to prevent double-billing.
In addition to the base subscription, RexRuby charges a 1\u20133% performance fee on revenue directly attributed to Rex or Ruby \u2014 booked appointments, no-show recoveries, and client reactivations. This is calculated monthly via collectPerformanceFees (Inngest) and invoiced via Stripe metered billing.