RexRuby· Training Guide

RexRuby Platform

Complete Training Guide & Feature Reference

Everything you need to understand the platform — products, architecture, integrations, data model, and how it all works together.

60+
Routes
90+
API Endpoints
27
Background Jobs
15+
Integrations

1. Platform Overview

RexRuby is a two-product AI SaaS platform for service businesses — salons, medspas, dental, legal, and more.

Product Architecture
RexRuby ├── REX ── Inbound AI agent │ Answers, qualifies, books, collects deposits │ Channels: SMS · Voice · Instagram · WhatsApp · Facebook · TikTok · Email │ ├── RUBY ── Outbound retention engine │ Identifies at-risk clients, sends personalized re-engagement messages │ Triggers: Lapsed · No-show · Birthday · First-visit followup │ └── CORE ── Shared infrastructure Dashboard · Clients · Campaigns · Billing · Integrations · Compliance
18s
Rex avg response time
5.4%
Ruby reactivation rate
0.8%
Industry average
6.75×
Ruby vs. generic SMS
LayerTechnologyPurpose
FrontendNext.js 14, React, Framer MotionApp Router, SSR, animated UI
DatabaseSupabase (PostgreSQL + RLS)Data storage with row-level security per org
AuthClerkUser + organization sessions, SSO
Background JobsInngestDurable workflows, cron, event-driven jobs
SMS / VoiceTwilioA2P SMS, voice calls, WhatsApp
AI ModelsAnthropic Claude (Sonnet + Haiku)Message generation, intent detection, summaries
PaymentsStripe + Stripe ConnectSubscriptions + deposit collection on behalf of org
EmailSendGridTransactional + drip campaigns
Dashboard Variants
simple
Solo practitioners — warm gold, core features
full
Agencies & medspas — all features, multi-location
medical
Doctors/dentists — HIPAA, document intake, BAA
legal
Law firms — case value, referral network, legal intake
hospital
Hospitals — triage, pre-registration, multi-dept

2. Rex — AI Inbound Agent

Rex is always-on AI that handles every inbound inquiry and converts it into a confirmed, paid booking.

Omnichannel Intake9 channels

Handles SMS, voice, Instagram DMs, Facebook Messenger, WhatsApp, TikTok, email, and embedded webchat — same AI logic across all channels.

Intent DetectionClaude Haiku

Claude classifies every message: booking request, cancellation, question, feedback, or escalation. Extracts service type, date/time, client name.

Live Calendar Check7 systems

Queries the connected booking system (Acuity, Mindbody, etc.) for real-time availability before offering slots — never double-books.

Deposit CollectionGemma

Sends a Stripe payment link before confirming the booking. No payment = no slot held. Eliminates no-shows for first-time and high-risk clients.

No-Show Recovery55% rebook

Rex auto-texts the client 7 minutes after a missed appointment — the optimal window. 55% rebook within the hour.

Human Escalationsmart handoff

When Rex detects frustration, complex requests, or explicit asks for a human, it transfers with full conversation context so staff can pick up seamlessly.

Channel Webhook Map
SMS
/api/rex/sms
Twilio inbound SMS webhook
Voice
/api/rex/voice/status
Post-call transcript + summarization
WhatsApp
/api/rex/whatsapp
Twilio WhatsApp webhook
Instagram
/api/rex/instagram
Meta DM webhook
Facebook
/api/rex/facebook
Facebook Messenger webhook
TikTok
/api/rex/tiktok
TikTok comment/message handler
Email
/api/rex/email
Inbound email handler
Webchat
/api/rex/webchat
Embedded widget chat
Voice Capabilities

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.

3. Ruby \u2014 AI Retention Engine

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.

TriggerWhen it firesWhat it sends
Lapsed 60-dayClient hasn't returned in 60 daysPersonalized reactivation message
Lapsed 90-dayClient hasn't returned in 90 daysStronger win-back with urgency
No-show recovery7 min after missed appointment"Everything okay?" + rebook offer
BirthdayClient's birthdayPersonalized birthday offer
First-visit followup3 days after first appointmentThank you + next visit invite
Manual triggerStaff-initiated from dashboardCustom message to selected client
Ruby Personalization Stack
Last service receivedReferences the exact treatment — "your last facial" not "your appointment"
Visit frequency patternKnows the normal cycle (e.g., every 21 days) and detects deviation
Optimal send timePer-client: sends when that individual historically opens messages (80% open-rate window)
Tone matchingVertical-aware: spa = relaxed/warm, legal = professional/formal, medical = clinical/clear
A/B variant testing50/50 split on message variants, tracks which converts — auto-optimizes over time
5.4%
Ruby reactivation rate
0.8%
Industry average (generic SMS)
6.75\u00D7
Ruby vs. mass blast

4. Dashboard Views

The dashboard is organized into views. Each view is a focused workspace for a specific job.

Home / Overviewall tiers

Real-time stats strip (bookings today, revenue recovered). Recent conversations list with channel filter. Monthly ROI trend chart. Welcome tour for first-time users.

Conversationsall tiers

Filter by channel, intent, outcome. Full message history. Sentiment + intent badge per conversation. Manual takeover button. Bulk mark as booked/escalated.

Campaigns (Ruby)ruby tier

Campaign builder with AI message suggestions. Segment selector (lapsed days, churn risk). A/B variant editor. Schedule picker. Performance metrics (send, open, convert).

Clientsall tiers

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.

Settingsowner only

Org details, business hours, services. Team member roles. Booking system integration connect. SMS cooldown rules. API keys + webhooks. Notification preferences.

Agency Viewfull tier

Multi-location management. View and manage child organizations. Unified billing across locations. Agency-wide reporting.

Control Centerinternal

Integration health status. Webhook test form. Feature flag toggles. Manual background job triggers. System diagnostics.

Admin Panel (/admin)rexruby staff

All orgs list, search/filter. Billing disputes, usage, invoices. Revenue recovery metrics. Webhook dead-letter queue. Bulk org import. Quote composer.

5. Route Map

Complete map of all pages and their access requirements.

PUBLIC (no authentication required) ├── / Homepage (problem, Rex/Ruby overview, social proof) ├── /pricing Plans, pricing table, feature comparison ├── /demo Live Rex demo + opt-in ├── /rex Rex product detail page ├── /ruby Ruby product detail page ├── /blog Blog index ├── /blog/[slug] Individual blog post ├── /faq, /about Info pages ├── /compare Competitor comparison table ├── /industries Industry use cases ├── /intelligence AI features breakdown ├── /technology Tech stack explanation ├── /medical Medical vertical landing ├── /medical/* Healthcare-specific sub-pages ├── /legal Legal vertical landing ├── /legal/* Legal-specific sub-pages (BAA, case value, etc.) ├── /hospital Hospital enterprise landing ├── /hospital/* Hospital sub-pages (triage, pre-register, etc.) ├── /yaser Farsi pitch page (Iran / *780# partnership) ├── /nipon Japanese pitch page (Japan infrastructure) ├── /privacy, /terms Legal documents └── /sign-up, /sign-in Auth (Clerk) ONBOARDING (authenticated, setup wizard) ├── /onboarding Start (business type, vertical) ├── /onboarding/location Business address ├── /onboarding/checkout Payment setup ├── /onboarding/complete Success screen └── /onboarding/draft Resume mid-setup DASHBOARD (authenticated, org member required) ├── /dashboard Main overview + live stats ├── /dashboard/campaigns Campaign builder & manager ├── /dashboard/clients Client list & profiles ├── /dashboard/clients/[phone] Client detail ├── /dashboard/settings Org settings + integrations ├── /dashboard/agency Multi-location view (full tier) ├── /dashboard/cancel Cancellation flow ├── /dashboard/control-center Admin/debug tools └── /dashboard/faq In-app help PUBLIC PORTALS (unauthenticated, org-scoped by ID) ├── /intake/[orgId] Custom intake/consent form ├── /book/[orgId] Booking page ├── /booking/confirm/[token] Appointment confirmation └── /widget/[orgId] Embeddable booking widget INTERNAL ADMIN └── /admin System-wide ops panel (internal staff only)

6. Integrations

RexRuby connects to 15+ external systems. Each integration is handled via dedicated API routes.

CategorySystemWhat it does
BookingAcuity SchedulingOAuth connect, real-time availability, appointment sync
BookingMindbodyClasses + appointments, client history sync
BookingBoulevardSalon booking sync, staff scheduling
BookingJane AppMedical practice appointments (HIPAA-aware)
BookingVagaroSalon/spa appointments + POS
BookingZenotiEnterprise salon management
BookingSquarePOS + appointments (small business)
CalendarGoogle CalendarAvailability sync, booking confirmation events
CalendarMicrosoft OutlookAlternative calendar for Windows-native orgs
SocialMeta (FB + Instagram)Instagram DM + Facebook Messenger via Rex
SocialTikTokTikTok comment/message replies via Rex
CRMHubSpotContact + deal sync for sales orgs
MarketingGoogle Business ProfilePost updates, reviews, photos via Ruby
PaymentsStripeSubscriptions, invoices, metered billing
PaymentsStripe Connect (Gemma)Deposit collection on behalf of the business
SMS/VoiceTwilioA2P SMS, voice calls, WhatsApp Business
EmailSendGridTransactional + drip campaign emails
AuthClerkUser + org authentication, SSO

7. Data Model

30+ Supabase tables with Row-Level Security. Every query is scoped to org_id \u2014 tenants cannot see each other's data.

CORE ENTITIES ┌─ organizations 1 row per business location │ ├── tier trial · rex · ruby · both · enterprise · cancelled │ ├── vertical medspa · salon · medical · dental · legal · lending · solo │ ├── variant simple · full · medical · legal · hospital │ ├── capabilities JSON feature flags per org │ ├── rex_number Twilio phone number for this org's Rex │ ├── booking_system acuity · mindbody · boulevard · jane · vagaro · square │ ├── stripe_* Customer + subscription IDs │ └── hipaa_baa_signed Healthcare compliance flag │ ├─ clients Business's contact list │ ├── phone Primary key (E.164 format) │ ├── name, email, birthday │ ├── last_visit_at Last appointment date │ ├── total_spend Lifetime value (USD) │ ├── churn_risk low · medium · high │ └── preferred_language For multilingual responses │ ├─ conversations Message threads (SMS, voice, DM, etc.) │ ├── channel sms · voice · instagram · facebook · tiktok · whatsapp · email │ ├── intent booking · cancellation · question · feedback · escalation │ ├── outcome booked · cancelled · escalated · unanswered · resolved │ ├── summary AI-generated conversation summary (Claude) │ └── assigned_to Staff member if taken over │ ├─ conversation_messages Individual messages within a thread │ ├── role user · assistant · system │ └── content Message body │ └─ client_events Immutable event log (append-only) ├── event_type booking · first_visit · no_show · lapsed · reactivated · birthday └── ruby_processed Whether Ruby has acted on this event CAMPAIGNS & OUTREACH ├─ campaigns Ruby campaign definitions │ ├── segment lapsed_60 · lapsed_90 · no_show · birthday · first_visit │ ├── channel sms · email │ ├── status draft · active · paused · completed │ └── variants A/B message variants (JSON) │ ├─ campaign_sends Individual send records │ └── variant Which A/B variant was sent │ └─ ruby_messages_sent Full audit trail of all outbound messages BILLING & ATTRIBUTION ├─ attribution_events Revenue Rex/Ruby drove │ ├── event_type booking · no_show_recovery · reactivation │ ├── revenue_recovered Amount in USD │ ├── performance_fee Fee owed (1-3%) │ └── invoice_status pending · invoiced │ └─ sms_usage Monthly Twilio usage per org (for metered billing) COMPLIANCE ├─ opted_out TCPA opt-out list (checked before every SMS) ├─ hipaa_log Healthcare access audit log └─ audit_log System-wide action log

8. Background Jobs (Inngest)

27 durable background functions. Inngest handles retries, scheduling, and event-driven orchestration.

Daily Automation
rubyTriggersFanOutDaily cronFan-out: kick off Ruby evaluation for every active org in parallel
rubyRunOrgPer orgEvaluate churn risk, select clients for outreach, send Ruby messages
nightlyAgentReport2am ESTPre-compute AI intelligence report — powers instant dashboard load
dailyDigestFanOutNightlyFan-out for daily digest emails if enabled
Campaigns
processScheduledCampaignsEvery hourFind campaigns scheduled for next hour, dispatch send events
sendCampaignOn eventBatch SMS send: TCPA check, A/B split, concurrency 1/org
Inbound Processing
processInboundSmsOn SMS eventRoutes inbound SMS → Claude → Rex reply via Twilio
summarizeVoiceTranscriptPost-callClaude Haiku summarizes call, extracts intent + outcome
Reporting
weeklyReportFanOutMonday morningFan-out weekly ROI email generation per org
weeklyReportSendOrgPer orgClaude writes personalized ROI summary email, sends via SendGrid
Billing
collectPerformanceFeesMonthlyRead attribution events, calculate + invoice performance fees via Stripe
dunningSequenceOn failed paymentRetry sequence with escalating reminder emails
syncSmsUsageMonthlySync Twilio SMS usage counts to Stripe metered billing
Onboarding
onboardingEmailSequenceNew signupDrip campaign: setup tips on days 1, 3, 7
retryOnboardingProvisionOn failureRetry Twilio number provisioning (exponential backoff: 5m → 30m → 2h → 90m)
Maintenance
dataRetentionCronSunday 3amArchive old conversations, enforce data retention policies
dlqProcessorOn eventRetry failed outbound webhooks from dead-letter queue
cronHealthMonitorEvery 30 minSystem health check — alerts if Inngest jobs are stalling

9. User Roles & Permissions

RoleWhoAccess
OwnerBusiness owner (Clerk org owner)Everything: settings, integrations, billing, team management, all dashboard views
StaffEmployees added by ownerConversations (view + reply), client list, campaign results (read-only), escalations
AdminInternal RexRuby team/admin panel: all orgs, billing, feature flags, bulk ops, DLQ, manual job triggers
PublicUnauthenticated visitorsHomepage, pricing, blog, intake forms, booking widget, demo opt-in

10. Compliance & Security

AuthenticationClerk + JWT

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.

Data IsolationSupabase RLS

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.

HIPAA Compliancemedical tier

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.

TCPA ComplianceSMS

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.

GDPR / PrivacyEU

Data export endpoint for right-of-access requests. Configurable data retention periods. Right-to-erasure flow available via /api/clients/data-request.

Webhook SecurityTwilio + Stripe

Every inbound webhook (Twilio, Stripe, Meta) has its signature verified before processing. Stripe uses idempotency keys on all charge operations to prevent double-billing.

11. Subscription Tiers

TierPriceWhat's included
TrialFree · 14 daysAll features unlocked — full platform access to evaluate
Rex$199/moInbound AI across all channels + deposit collection via Gemma
Ruby$199/moOutbound retention campaigns + all automated triggers
Both$349/moFull Rex + Ruby stack — recommended for most businesses
EnterpriseCustomMulti-location, custom SLA, white-label, HIPAA BAA, dedicated support
Performance Fee

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.

RexRuby · Internal Training Document · 2026
RexRuby Training — How to Set Up Rex, Ruby & Your Dashboard | RexRuby