Vapi / Implementation guide

Vapi patient intake and Zenoti consultation booking

Vapi can handle permitted front-desk scheduling conversations while n8n coordinates Zenoti Booking API availability and an approved Claude deployment structures administrative intent. For Medical Aesthetics & Dermatology, keep the agent out of diagnosis and treatment advice. Redacting a transcript before an LLM call is useful minimization, but does not make a complete voice pipeline HIPAA compliant: the original audio, telephony, logs and every processor may still handle protected health information.

Tools: Vapi; n8n, Claude 3.5 Sonnet, Zenoti Booking API
01

The industry-specific problem

Repeated pricing and rescheduling calls interrupt reception during patient check-in. The risk is not only a missed booking; it is an agent quoting an unsuitable procedure or exposing a patient's appointment details before verifying identity.

02

Step-by-step workflow

  1. Map which locations, procedures and appointment fields the Zenoti Booking API actually exposes under your account permissions.
  2. Configure Vapi for administrative intake with minimal identifiers. Verify identity before discussing existing appointments; transfer medical concerns to staff.
  3. Use n8n to replace identifiers with a short-lived reference before any permitted Claude processing. Keep the identity mapping outside workflow execution logs.
  4. Select a supported, organization-approved Claude model. The row names Claude 3.5 Sonnet; do not assume that legacy model is still available or covered by your required agreements.
  5. Re-read the Zenoti slot immediately before booking, honor deposits and resource requirements, then send a neutral confirmation through the approved channel.
03

Visual workflow

Patient call → Vapi identity/intent
  clinical concern → front desk/clinician
  scheduling → n8n minimal reference → Claude intent → Zenoti slot recheck → booking
04

Specific configuration example

This n8n Code-node fragment consumes a normalized, authenticated event from preceding integration steps. It demonstrates the decision boundary, not a complete API client. Fields are workflow-local mappings, not claimed vendor field names. Upstream credentials, schema validation, permissions, durable reservations and provider operations must be implemented separately. Numeric policy examples are illustrative, not Imperio service terms.

// n8n Code node: allowlisted administrative payload, not PHI detection
const call = $json;
const allowedIntents = ["new_consultation", "reschedule", "cancel"];
return [{ json: {
  llmInput: { requestRef: call.request_ref,
    intent: allowedIntents.includes(call.intent) ? call.intent : "staff_review",
    locationCode: call.location_code,
    preferredDay: call.preferred_day },
  bookingGate: call.identity_verified === true &&
    call.slot_rechecked === true && call.deposit_rule_satisfied === true
} }];
05

Outcome to measure

Illustrative planning metrics only. Not verified client results.

Track abandoned inbound calls, staff-handled administrative minutes and confirmed consultations that actually attend. An illustrative 150 scheduling calls × four minutes shifted away from reception is ten staff hours; exclusions and transfers reduce the achievable total.

06

Compared with manual work or other tools

A standard IVR can route calls cheaply but struggles with conversational date changes. A trained receptionist remains necessary for clinical questions, safeguarding and exceptions. Automation should remove repetitive scheduling, not patient judgment.

07

Work with Imperio Automation

Have Imperio scope an administrative-only Zenoti voice pilot and a processor-by-processor privacy review.

Scope this workflow
08

Frequently asked questions

Does stripping names guarantee HIPAA compliance?

No. Context may re-identify a patient, and recordings or earlier processors still contain PHI. Required agreements and safeguards must cover the full path.

Can it recommend Botox dosage or assess symptoms?

No. Restrict it to approved administrative information and escalate clinical questions.

What happens when two callers choose the same slot?

Recheck availability at commit time, handle the booking conflict and offer a fresh option rather than confirming a stale slot.

09

Technical and regulatory references