Back to Alchemy
Alchemy RecipeBeginnerworkflow

Healthcare clinic patient education video creation

24 March 2026

Introduction

Creating patient education videos is one of those tasks that healthcare clinics know they should do, but rarely do. The friction is real: you need a script, voiceover talent, video production, and editing expertise. That's multiple people, weeks of coordination, and budget approval meetings. So most clinics either skip it entirely or commission expensive video production companies.

What if you could produce a professional patient education video in under an hour, for less than a tenner, with zero human handoff between tools? This workflow takes a patient education topic (diabetes management, post-op care, medication adherence, whatever your clinic needs) and transforms it into a polished video with natural-sounding voiceover and professional visuals. The entire process runs automatically from a single trigger.

We're going to wire together ElevenLabs for AI voiceover, Hour One for video avatar generation, and Pika AI for dynamic visual elements. An orchestration tool ties it all together so that when you drop a script into a folder or submit a form, everything happens automatically.

The Automated Workflow

Which Orchestration Tool to Choose

For this workflow, I'd recommend n8n as your primary choice. It's self-hosted, has excellent HTTP request flexibility, and handles long-running processes better than Zapier's timeout constraints. If you're on a tighter budget or prefer cloud-hosted simplicity, Zapier works but you'll need to split this into multiple short zaps. Make sits in the middle; it's cloud-hosted but more flexible than Zapier.

The workflow structure is straightforward: a trigger receives your script, ElevenLabs generates the audio, Hour One creates the video with voiceover, Pika AI optionally generates supplementary footage, and then everything gets packaged together.

Workflow Architecture

The data flow looks like this:

  1. Trigger: Script submission (form, webhook, or file upload).

  2. ElevenLabs API Call: Convert script text to natural-sounding voiceover with timing metadata.

  3. Parse Audio Duration: Extract the exact length of the generated audio file.

  4. Hour One API Call: Create a video avatar performance synced to the audio.

  5. Optional Pika AI Call: Generate supplementary visuals if needed (anatomical animations, procedures).

  6. Combine Assets: Fetch the final video and prepare it for delivery.

  7. Output: Save to cloud storage or notify the clinic staff.

Let me walk through each step with actual API calls.

Step 1:

The Trigger

You'll set this up in your orchestration tool. For simplicity, assume a JSON webhook receives:

{
  "script": "Today we're discussing diabetes management. Proper blood glucose monitoring is essential...",
  "topic": "Diabetes Management",
  "voice_id": "21m00Tcm4TlvDq8ikWAM",
  "avatar_style": "professional"
}

The voice_id comes from ElevenLabs' pre-generated voice library. You can browse available voices or create a custom clone of a clinic staff member.

Step 2:

ElevenLabs Text-to-Speech

ElevenLabs converts your script into professional audio with exact timing information.

API Endpoint:


POST https://api.elevenlabs.io/v1/text-to-speech/{voice_id}

Request in n8n HTTP node or equivalent:

{
  "method": "POST",
  "url": "https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM",
  "headers": {
    "xi-api-key": "YOUR_ELEVENLABS_API_KEY",
    "Content-Type": "application/json"
  },
  "body": {
    "text": "Today we're discussing diabetes management. Proper blood glucose monitoring is essential...",
    "model_id": "eleven_monolingual_v1",
    "voice_settings": {
      "stability": 0.5,
      "similarity_boost": 0.75
    }
  }
}

The API returns audio data and metadata. Store this as a file in your intermediate storage. In n8n, you'd use a "Write Binary File" node or pass it directly to the next step.

Important: Set stability between 0.3 and 0.9. Lower values mean more variation (natural), higher values mean more consistent (robotic). For healthcare, 0.5 is a sensible middle ground.

The response includes the audio file. Before moving to Hour One, you need the audio duration. You can calculate this from the response metadata or use ffprobe if you're self-hosting. For simplicity, ElevenLabs also provides audio length estimation.

Step 3:

Hour One Video Creation

Hour One generates a video of a human avatar speaking your script, perfectly lip-synced to the ElevenLabs audio.

API Endpoint:


POST https://api.hourone.com/api/videos

Request:

{
  "method": "POST",
  "url": "https://api.hourone.com/api/videos",
  "headers": {
    "Authorization": "Bearer YOUR_HOURONE_API_KEY",
    "Content-Type": "application/json"
  },
  "body": {
    "script": "Today we're discussing diabetes management...",
    "avatar_id": "amy_en",
    "voice": {
      "provider": "elevenlabs",
      "voice_id": "21m00Tcm4TlvDq8ikWAM",
      "audio_url": "https://your-storage.s3.amazonaws.com/audio_file.mp3"
    },
    "quality": "high",
    "background": "professional_medical"
  }
}

This is where the orchestration gets important. The audio file you generated in Step 2 must be accessible via a URL. If you're using n8n, write the audio to S3, Google Cloud Storage, or another cloud bucket. Then pass the URL to Hour One.

Hour One processes the video and returns a job ID. You'll need to poll this endpoint until the video is ready:


GET https://api.hourone.com/api/videos/{video_id}

In your orchestration tool, set up a loop that checks every 10 seconds until the status is "completed". This typically takes 2-5 minutes.

Step 4:

Optional Pika AI for Supplementary Visuals

If your script mentions procedures or anatomical concepts, you can generate short video clips with Pika AI. This is optional but adds production value.

API Endpoint:


POST https://api.pika.art/v1/videos/generations

Request:

{
  "method": "POST",
  "url": "https://api.pika.art/v1/videos/generations",
  "headers": {
    "Authorization": "Bearer YOUR_PIKA_API_KEY",
    "Content-Type": "application/json"
  },
  "body": {
    "prompt": "Medical animation showing insulin injection technique, close-up of hands, clear lighting, professional medical training style",
    "duration": 5,
    "aspect_ratio": "16:9"
  }
}

Like Hour One, Pika returns a job ID requiring polling. Check status at:


GET https://api.pika.art/v1/videos/generations/{generation_id}

This step is entirely optional. If your script is primarily dialogue, skip it. If it describes procedures or techniques, Pika adds authenticity.

Step 5:

Assembly

Once your Hour One video is complete, download it. If you used Pika clips, you'll need to extract segments and composite them into the main video. For most healthcare education videos, the avatar-only Hour One output is sufficient.

Suggested assembly workflow in n8n:

  1. Download the final video from Hour One.

  2. If using Pika clips, use FFmpeg to insert them at specified timestamps.

  3. Add a lower third graphic with your clinic logo and topic title (optional).

  4. Save the final MP4 to cloud storage or a local archive.

Here's a sample FFmpeg command if you're compositing videos:

ffmpeg -i hourone_video.mp4 -i pika_clip.mp4 -filter_complex \
"[0]scale=1920:1080[v0]; [1]scale=1280:720[v1]; \
[v0][v1]overlay=320:680:enable='between(t,15,20)'[out]" \
-map "[out]" -c:v libx264 -crf 20 final_video.mp4

In n8n, use the "Execute Command" node to run FFmpeg, or use a containerised FFmpeg service if you prefer not to manage dependencies.

Step 6:

Notification

Once the video is ready, send it to your clinic. Common options:

  • Email: Attach or link to the video.

  • Cloud Storage: Drop it into a clinic shared folder (Google Drive, OneDrive, S3).

  • Slack: Post a message with the video link to a designated channel.

Example Slack notification in n8n:

{
  "method": "POST",
  "url": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
  "body": {
    "text": "Patient education video ready",
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": "*Diabetes Management Video*\nTopic: Diabetes Management\n<https://your-storage.com/video.mp4|View Video>"
        }
      }
    ]
  }
}

Complete n8n Workflow JSON

Here's a simplified structure showing how these nodes connect:

{
  "nodes": [
    {
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [100, 200]
    },
    {
      "name": "ElevenLabs TTS",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 2,
      "position": [300, 200]
    },
    {
      "name": "Save Audio to S3",
      "type": "n8n-nodes-base.aws-s3",
      "typeVersion": 1,
      "position": [500, 200]
    },
    {
      "name": "Hour One Video",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 2,
      "position": [700, 200]
    },
    {
      "name": "Poll Hour One Status",
      "type": "n8n-nodes-base.loop",
      "typeVersion": 1,
      "position": [900, 200]
    },
    {
      "name": "Download Final Video",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 2,
      "position": [1100, 200]
    },
    {
      "name": "Slack Notification",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 1,
      "position": [1300, 200]
    }
  ],
  "connections": {
    "Webhook Trigger": {
      "main": [["ElevenLabs TTS"]]
    },
    "ElevenLabs TTS": {
      "main": [["Save Audio to S3"]]
    },
    "Save Audio to S3": {
      "main": [["Hour One Video"]]
    },
    "Hour One Video": {
      "main": [["Poll Hour One Status"]]
    },
    "Poll Hour One Status": {
      "main": [["Download Final Video"]]
    },
    "Download Final Video": {
      "main": [["Slack Notification"]]
    }
  }
}

The Manual Alternative

Some clinics prefer more control over the final product. If that's your situation, you can run each tool individually:

  1. Write your script in a document.

  2. Use the ElevenLabs website or API to generate voiceover, download the MP3.

  3. Upload the script and audio to Hour One's web interface, customise the avatar and background, download the video.

  4. If you want custom visuals, use Pika's web interface separately and composite the footage manually in DaVinci Resolve or Premiere Pro.

  5. Add your clinic branding, lower thirds, and music using a traditional video editor.

This approach gives you pixel-perfect control but requires technical staff to manage each step and takes considerably longer. It's only worth doing if you have specific visual requirements that the automated workflow can't meet. For standard educational content, the automated version is faster and costs less overall.

Pro Tips

Error Handling and Retries

Set up retry logic in your orchestration tool. ElevenLabs and Hour One occasionally hit processing delays. In n8n, use the "Try" node to catch failed API calls and retry after a short delay. Example:

{
  "max_retries": 3,
  "retry_delay": 5000,
  "exponential_backoff": true
}

Rate Limiting Awareness

ElevenLabs free tier allows 10,000 characters per month. Hour One's free tier supports 5 videos monthly. If your clinic plans to produce videos regularly, budget for paid plans early. Batching videos (generating 3-4 at a time during off-hours) reduces per-video overhead.

Audio File Management

Don't store temporary audio files permanently. Set your cloud storage to auto-delete files older than 7 days. This keeps costs low and your bucket clean. In AWS S3, use lifecycle policies:

{
  "Rules": [
    {
      "Id": "DeleteOldAudio",
      "Filter": {
        "Prefix": "temp_audio/"
      },
      "Expiration": {
        "Days": 7
      }
    }
  ]
}

Voice Customisation

ElevenLabs lets you create voice clones from a 1-minute sample. If your clinic has a particular staff member (nurse, physician assistant, patient educator) with a trusted voice, clone it. This adds authenticity and consistency across all videos. Cost is negligible, and patients respond better to familiar voices.

Testing Your Workflow

Before running live, test with a short 200-word script. This costs minimal credits and lets you verify that the audio duration matches the video timing, that file paths resolve correctly, and that notifications hit the right people. Create a test version of your script:


Script: "Blood pressure management is important. Check your pressure daily. Keep a log. Report readings above 140/90 to your clinic."

This 25-second script tests the entire pipeline quickly.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
ElevenLabsPay-as-you-go£3-10100K characters ≈ 10-15 videos
Hour OneStarter£20-505-15 videos monthly depending on length
Pika AIPay-as-you-go£0-15Only if generating supplementary visuals; optional
n8n (self-hosted)Free£0Requires a small server (£5-10/month) or local machine
Cloud Storage (S3)Pay-as-you-go£0.50-2For temporary audio and video files
Total£23-77/monthPer 10-15 videos

If you use Zapier instead of n8n, add £20-50 monthly depending on task volume. For Make, add £10-30.

For a healthcare clinic producing 2-3 patient education videos monthly, this costs roughly £25-35 per month with room to scale. Compare that to outsourcing to a video production agency at £500-2,000 per video.

Getting Started

  1. Sign up for free tier accounts on all three tools (ElevenLabs, Hour One, Pika AI).

  2. Generate one test video manually through each platform's web interface to understand the workflow.

  3. Get API keys from each service and store them as encrypted environment variables in your orchestration tool.

  4. Build the n8n workflow step-by-step, testing each node independently before connecting them.

  5. Start with 2-3 test videos to validate timing, file delivery, and notification accuracy.

  6. Iterate on script length (4-6 minutes is ideal for patient education videos).

Once it's running smoothly, your clinic can produce a professional patient education video in under an hour with zero manual handoff. That's genuinely useful infrastructure for patient outcomes.