Spotlight
Turns the clinic's appointment calendar into personalized owner conversations — and sends the answers back so every vet walks in briefed.
live
What it is
Spotlight is a pre-visit intake system for veterinary clinics. Every morning it looks at upcoming appointments, decides which ones should receive a questionnaire, and sends the owner a personal text or email with a secure link. The owner fills out a mobile-friendly form — typically in three to four minutes — answering questions about what they have observed at home. When they submit, the answers are written back to the clinic so the veterinarian and front desk can see a brief before the pet walks through the door. The clinic never has to ask the owner to fill out paper forms in the waiting room, and the vet is not starting from zero at the exam table.
Why it exists
Veterinarians regularly walk into exam rooms with no context beyond an appointment type. Owners repeat themselves, forget things under stress, or cannot articulate clinical patterns quickly. Spotlight kills the blank-slate problem: it captures the owner's observations in a calm, at-home moment — specific, structured, and already in the vet's hands before the visit starts.
How it works
The backend (a .NET API, repo: spotlight-backend / VIPBackend) runs a scheduled job every morning at 8 AM Pacific. It pulls appointments from each clinic's PIMS — the practice management software that runs the clinic's calendar — through a webhook integration that keeps a local copy of appointments, clients, and patients current. The eligibility engine then walks every upcoming appointment and asks: does this clinic have a form configured for this appointment type and this species? If yes, the appointment is queued for notification.
The notification engine sends the owner an email via SendGrid or a text via Twilio, with a time-limited secure link (the link expires automatically, and there is a one-hour grace window after the appointment start time). The link opens the front-end form application (repo: spotlight-forms-frontend, an Angular app). For wellness visits the form is a linear questionnaire covering the pet's health, lifestyle, and behavior. For sick visits the form is modular: the owner first describes what they have observed in free text, and the AI routing step — calling GPT-5.2 — reads that description and suggests which of 14 clinical specialty modules fits best (GI, skin and ears, breathing, behavior, and so on). The owner confirms or overrides the AI's choice, then answers five targeted questions for that module plus a set of shared questions about severity, duration, handling behavior, and visit goals.
When the owner submits, the answers are saved and processed in the background. The system generates a structured subjective note — the kind of summary a vet can scan in thirty seconds — and can email a completion notification to configured clinic staff. A separate briefing job, also scheduled per clinic, compiles the day's completed forms into a morning briefing email so the team arrives knowing which owners responded and what they said.
The parts
Webhook data intake (ClinicDataWebhookEndpoints + queue pipeline) — Receives real-time pushes from the PIMS integration layer (DataHub) — appointments, clients, patients, species, breeds. Enqueues them for async processing so the local database stays current without blocking the webhook caller.
Form eligibility engine (FormEligibilityService) — For each upcoming appointment, checks whether the clinic has a form configured for that combination of appointment type and species. If matched, the appointment becomes a candidate for a notification.
Notification scheduler (FormNotificationJob + FormNotificationService) — Runs daily at 8 AM Pacific via Quartz (the scheduler embedded in the backend). Processes four notification types in order: same-day reminders, one-day-before reminders, three-day-before reminders, and initial invitations. Sends via email (SendGrid) or SMS (Twilio) depending on what the clinic has enabled. Tracks status so owners are not contacted twice.
Secure form delivery (FormAccessTokenService + JWT guard) — Generates a time-limited signed token for each form link. The Angular front-end validates this token on every request, so a link cannot be reused after expiration and cannot be guessed.
Wellness form (Angular form engine — linear) — A step-by-step mobile form covering the pet's health history, lifestyle, and behavior. Owners answer question by question; the form engine tracks answers in state and builds a structured payload for submission.
Sick visit form — AI symptom routing (SymptomModuleDetectionService) — Takes the owner's free-text description of what they have observed, sends it to GPT-5.2 with a veterinary triage prompt, and returns a recommended clinical module (one of 14: GI, skin/ears, breathing, urinary, and so on) with a confidence score. If confidence is above 65%, the module is auto-selected; below that, the owner chooses manually from a ranked list. Every detection — including the final module the owner actually used — is logged for future review.
Sick visit form — modular question engine (Angular, module-selector + form-engine) — Displays the AI-suggested module (or the one the owner picked) and loads five targeted questions for that specific condition. Conditional visibility rules show or hide follow-up questions based on prior answers — for example, vomit-frequency questions only appear if the owner checked 'vomiting.'
Answer processing and writeback (FormProcessingOrchestrator + background processor) — On submission, saves the raw answers, fires a completion email to the clinic, then runs background processing to generate the structured subjective note. The note is formatted in SOAP style (the standard clinical note format) so it drops naturally into the vet's workflow.
Morning briefing (ClinicBriefingService + ClinicBriefingJobScheduler) — Each clinic can configure a scheduled briefing email. Before the day starts, the system compiles all completed forms for that day's appointments and emails a summary to the configured recipients — a single at-a-glance brief for the whole team.
Where it fits
→PIMS / DataHub (clinic practice management software) — Receives webhook pushes of appointments, clients, and patients in real time, keeping Spotlight's local database current.live
→Twilio (SMS delivery) — Sends text message notifications with the secure form link to pet owners.live
→SendGrid (email delivery) — Sends email notifications, reminder sequences, form completion confirmations, and morning briefings.live
→OpenAI GPT-5.2 (AI routing) — Analyzes the owner's free-text symptom description and returns a recommended clinical module with a confidence score.live
→AWS S3 (file storage) — Stores form answer attachments (photos, audio recordings owners may submit with their answers).live
→Neuron / Fides (downstream consumers) — The completed, structured form answers feed downstream into the broader Digital Empathy platform — the practice intelligence layer and the client-relationship agent.designed
Its job in the loop: Spotlight is the primary sensing surface for the company loop. Before a single pet arrives, it reaches into the clinic's scheduling system, identifies which appointments deserve a form, contacts the owner, and collects structured observations from the person who lives with the animal. That information — what the owner noticed, when, how severe, what worries them most — is the raw reality the rest of the system acts on. Nothing in the loop can respond intelligently if this sensing step fails.