A patient arrives for their first appointment. The receptionist hands them a clipboard. The clinician takes handwritten notes during the visit. Someone transcribes those notes into the EHR. Then a nurse manually writes a patient education document, often duplicating information the clinician already documented. The patient leaves with outdated printed materials or, worse, nothing at all. This fragmented approach wastes staff time and confuses patients. Education materials don't match the clinical conversation. Follow-up questions go unanswered because the patient never received clear guidance. Many clinics accept this friction as inevitable, but it isn't. You can automate the entire path from intake meeting to personalised patient education video, all without a single manual handoff. The workflow we'll build here captures clinical meetings automatically, extracts key information, generates custom patient education scripts, produces narrated videos, and delivers them to patients before they leave the clinic. It's practical, HIPAA-friendly when implemented correctly, and works with tools built for healthcare environments.
The Automated Workflow
Start with your clinic's video conferencing setup. When a clinician meets a patient, Cogram joins the video call and records automatic notes. Cogram identifies action items and extracts clinical summaries that become the foundation for everything downstream. These notes flow into your orchestration layer. We'll use n8n for this workflow because it offers direct integrations with Cogram, supports webhook-based triggering, and handles complex conditional logic without rate-limiting penalties. Here's the architecture: 1. Cogram captures the appointment and generates notes automatically.
-
A webhook from Cogram triggers your n8n workflow when notes are ready.
-
n8n extracts the clinical summary and formats it for the next stage.
-
Claude Opus 4.6 generates a personalised patient education script based on diagnosis, treatment plan, and medication information from the notes.
-
ElevenLabs Turbo v2.5 converts the script into narrated audio with a professional voice.
-
Hour One creates a video with a virtual presenter speaking the audio.
-
The final video is sent to the patient via a secure link.
Setting up the webhook trigger
Begin by configuring Cogram to send webhook notifications when meeting notes are processed.
POST https://cogram.com/api/v1/webhooks
{ "event": "meeting_notes_completed", "url": "https://your-n8n-instance.com/webhook/clinic-intake", "auth_type": "bearer", "token": "your_cogram_api_key"
}
This webhook fires automatically after Cogram finishes transcribing and summarising the meeting. Your n8n instance receives the payload containing the meeting ID, transcript, and extracted summary.
Building the n8n workflow
In n8n, create a workflow with these nodes: 1. Webhook trigger node: receives the Cogram webhook payload.
-
HTTP request node: fetches the full meeting details from Cogram's API using the meeting ID.
-
Claude node: processes the clinical notes and generates an education script.
-
ElevenLabs node: converts the script to audio.
-
Hour One node: produces the final video.
-
Email or SMS node: delivers the patient link. Node configuration: Fetch meeting details
GET https://api.cogram.com/v1/meetings/{meeting_id}
Headers: Authorization: Bearer your_cogram_api_key Content-Type: application/json
The response includes the transcript, attendees, and the extracted summary that Cogram generated. Store the patient's email address from the attendee list for later delivery.
Node configuration: Generate education script with Claude
Create a Claude node using GPT-4.1 for this task (it's faster than Opus for straightforward script generation, though Opus works if you need deeper reasoning):
system_prompt: | You are a healthcare patient educator. Convert clinical meeting notes into a clear, friendly patient education script. Include: - What the diagnosis means in simple terms - Why the recommended treatment works - Medication names, dosages, and timing - When to contact the clinic (red flags) - Expected outcomes and timeline Keep language at an 8th-grade reading level. Keep the script to 90-120 seconds of speech. user_prompt: | Clinical notes from today's appointment: {meeting_summary} Patient name: {patient_name} Generate a personalised education script.
Claude returns a clean, conversational script ready for voice synthesis. No markdown, no asterisks; just readable text.
Node configuration: Convert to audio
Use an ElevenLabs node with Turbo v2.5 for speed and cost efficiency:
POST https://api.elevenlabs.io/v1/text-to-speech/{voice_id}
Headers: xi-api-key: your_elevenlabs_api_key Content-Type: application/json Body:
{ "text": "{education_script}", "model_id": "eleven_turbo_v2_5", "voice_settings": { "stability": 0.5, "similarity_boost": 0.75 }
}
Request a professional, calm voice ID from ElevenLabs (they provide preset voices designed for healthcare). The response is audio in MP3 format, which you'll pass directly to Hour One.
Node configuration: Create the video
Hour One's API accepts audio and generates a video with a virtual presenter:
POST https://api.hourone.ai/api/v2/avatars/videos
Headers: Authorization: Bearer your_hourone_api_key Content-Type: application/json Body:
{ "script": { "input": "{education_script}", "type": "text" }, "avatar": { "preset_id": "calm-healthcare-presenter" }, "voice": { "input": "{audio_url_from_elevenlabs}", "type": "audio" }, "output": { "format": "mp4", "quality": "1080p" }
}
Hour One processes asynchronously. Store the video job ID and poll their status endpoint every 10 seconds until the video is ready. Most healthcare videos render within 2-3 minutes.
Node configuration: Deliver the video link
Once the video is ready, use an email node to send the patient a secure link:
To: {patient_email}
Subject: Your personalise care plan video from {clinic_name}
Body: | Hi {patient_name}, Here's your personalised education video about your visit today. Video link: {secure_video_url} This video will remain available for 30 days. If you have questions, reply to this email or call us at {clinic_number}. {clinic_name} team
Use a secure link shortener or proxy if you're protecting video access within your patient portal. Never embed the video URL directly unless it's already behind authentication.
Error handling within n8n
Add conditional logic to handle failures: - If Cogram notes are incomplete, trigger a manual review task and notify the clinician.
-
If Claude returns an unusually short script (fewer than 300 characters), log the issue and try again.
-
If Hour One's video generation fails, email the patient a text version and retry the video asynchronously. Use n8n's error handler nodes to catch API failures and log them to a Slack channel so your team knows when intervention is needed.
The Manual Alternative
If your clinic needs more control over the education content, skip the Claude automation. Instead, have a staff member review Cogram's notes immediately after the appointment, write the education script manually in a Google Doc or your EHR, then paste it into ElevenLabs and Hour One. This takes 10-15 minutes per patient but gives you full editorial control. You lose the automation benefit but maintain quality assurance at a real cost. Alternatively, run Cogram and Claude but skip Hour One videos. Just send patients the audio file plus a written transcript. This eliminates video production time and cost but reduces engagement; video completion rates are typically 3-4 times higher than audio alone.
Pro Tips
Test with real patient data first.
Before rolling this out, run it on 5-10 appointments with your clinicians reviewing the output.
Tweak the Claude prompt based on real clinical notes, not hypothetical ones. Different specialties (pediatrics, orthopedics, cardiology) need different education levels and terminology.
Set rate limits and batching.
ElevenLabs charges per 1,000 characters. If you process 50 patients daily, that's manageable. But if you're tempted to regenerate videos on a whim, costs escalate fast. Build approval gates into n8n so only finalised scripts reach ElevenLabs.
Use Cogram's speaker identification wisely.
Cogram tracks who said what. Use this data to ensure the script only includes information the clinician provided, not patient questions or off-topic remarks. Filter the transcript before sending it to Claude.
Monitor ElevenLabs voice consistency.
Select a single voice ID across all patient videos so the experience is consistent. Switching voices mid-stream confuses patients. Test your chosen voice on different script lengths; some voices sound better on shorter scripts.
Schedule video generation off-peak.
Hour One's queue fills during clinic hours. Trigger video generation during evening or overnight hours if your workflow allows a slight delay. This reduces processing time and often improves rendering speed.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| Cogram | Professional | £300–400 | Includes up to 100 meeting recordings; per-minute pricing above that. |
| n8n | Self-hosted or Cloud Pro | £0–150 | Self-hosted is free; Cloud Pro at £25/month per user if you need Slack integration. |
| Claude | Pay-as-you-go via API | £50–100 | GPT-4.1 at $3/$15 per 1M tokens; budget 2,000 tokens per script. |
| ElevenLabs | Scale plan | £99–199 | Turbo v2.5 at $2.50 per 1M characters; 50 patients daily at ~1,500 chars each = ~75,000 chars/month. |
| Hour One | Scale plan | £200–400 | £12 per video at scale; 50 patients daily = 1,500 videos monthly. |
| Total | £650–1,250 | Scales down for 10–20 patients daily; scales up for 100+ daily. |