Back to Alchemy
Alchemy RecipeIntermediateautomation

Corporate training module creation from employee handbook

24 March 2026

Introduction

Your HR team spent weeks drafting a thorough employee handbook. It covers everything from benefits eligibility to remote work policies. Now you need to turn it into training content that employees will actually complete instead of skimming a PDF. The conventional approach means hiring video producers, scriptwriters, and talent. The bill arrives at several thousand pounds, and you are still waiting six weeks for the first module. There is a faster way. By combining a PDF dialogue tool, text-to-speech synthesis, and automated video generation, you can produce professional training modules directly from your handbook in hours, not weeks. The workflow runs almost entirely on its own; your team uploads the PDF, specifies which sections to cover, and receives finished videos ready to publish. This is precisely the kind of task that benefits from automation. Each tool handles what it does best: extracting and summarising content, generating natural-sounding narration, and assembling video with a presenter. Connecting them removes the manual steps that usually bog down this process.

Prerequisites

  • Access to an API platform that supports audio generation and file storage (free tiers often allow 10,000 to 50,000 requests per month; check your provider's rate limits and pricing page before beginning)
  • Basic understanding of API requests, JSON formatting, and how to manage authentication keys securely in your environment
  • Familiarity with batch processing concepts and the ability to write or modify simple scripts to handle retries and error responses
  • Approximately 1 to 2 hours to set up credentials, test sample employee handbook sections, and configure storage for generated audio files
  • A text editor or integrated development environment for reviewing API responses and monitoring costs during test runs
  • Your employee handbook in digital format (plain text or PDF) ready for conversion into discrete training modules

The Automated Workflow

We will use n8n as the orchestration tool because it offers solid webhook support, good error handling, and a visual workflow builder that makes debugging straightforward. The flow moves like this: a trigger initiates the workflow, Chat With PDF extracts key training points from your handbook, ElevenLabs converts that text into audio, and Hour One generates a video with a virtual presenter speaking that audio.

Step 1: Triggering the workflow

Start with a simple webhook that your HR system or a manual form submission can call. In n8n, create a new workflow and add a Webhook node.

POST /webhook/training-module-trigger
Content-Type: application/json
{
  "handbook_url": "https://your-storage.com/employee-handbook.pdf",
  "module_title": "Remote Work Policy",
  "sections_to_cover": ["overview", "eligibility", "equipment_allowance", "hours_and_expectations"],
  "target_audience": "All employees",
  "presenter_preference": "professional_female"
}

Configure the webhook to accept POST requests and parse the JSON payload. This gives you flexibility; you can trigger workflows from Zapier, a Google Form, or directly from your HRIS system.

Step 2: Extracting content from the handbook

Add an HTTP Request node to call the Chat With PDF API. You will need a Chat With PDF account and API credentials; the service supports uploading PDFs and querying them via REST endpoints.

POST https://api.chatwithpdf.com/v1/documents/query
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
{
  "file_url": "{{$json.handbook_url}}",
  "query": "Summarise the following sections for training: {{$json.sections_to_cover.join(', ')}}. Create a script suitable for a corporate training video, with clear learning objectives at the start and key takeaways at the end. Target audience: {{$json.target_audience}}",
  "response_format": "text"
}

Store the API response (the extracted and summarised script) in a variable. This script becomes your narration text for the video.

Step 3: Generating audio narration

Pass the script to ElevenLabs Turbo v2.5, which generates studio-quality speech. ElevenLabs offers pre-built voices; select one that matches your presenter_preference from the webhook payload.

POST https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM
Content-Type: application/json
xi-api-key: YOUR_ELEVENLABS_API_KEY
{
  "text": "{{$json.extracted_script}}",
  "model_id": "eleven_turbo_v2_5",
  "voice_settings": {
    "stability": 0.5,
    "similarity_boost": 0.75
  }
}

The response contains a URL to your generated audio file. Download it and store the file path; you will reference this in the next step.

Step 4: Creating the video

Hour One accepts a script and audio file, then renders a video with a virtual presenter. Their API documentation specifies that you upload the audio separately or provide a URL.

POST https://api.hourone.com/v1/videos
Content-Type: application/json
Authorization: Bearer YOUR_HOURONE_API_KEY
{
  "title": "{{$json.module_title}}",
  "script": "{{$json.extracted_script}}",
  "audio_file_url": "{{$json.audio_url}}",
  "presenter": {
    "type": "virtual",
    "gender": "{{$json.presenter_preference}}",
    "style": "professional"
  },
  "output_format": "mp4",
  "quality": "1080p"
}

Hour One will process the video asynchronously. Store the job ID returned in the response; you will poll for completion in the next step.

Step 5: Polling for completion and delivery

Add a Polling node in n8n set to check the Hour One job status every 30 seconds for up to 10 minutes.

GET https://api.hourone.com/v1/videos/{{$json.video_job_id}}/status
Authorization: Bearer YOUR_HOURONE_API_KEY

When status returns "completed", the final step triggers: upload the video file to your learning platform or cloud storage, and send a notification to your HR team.

POST https://api.slack.com/api/chat.postMessage
Content-Type: application/json
Authorization: Bearer YOUR_SLACK_TOKEN
{
  "channel": "#hr-training",
  "text": "Training module '{{$json.module_title}}' is ready. Video link: {{$json.video_url}}"
}

Error handling and retries

Configure n8n to retry the ElevenLabs and Hour One API calls if they fail. Set retry logic to 3 attempts with exponential backoff; occasional timeouts happen, particularly during peak usage windows. For Chat With PDF failures, log the error and send a Slack message requesting manual review of the handbook section.

Full workflow summary

The complete n8n workflow looks like this:

  1. Webhook receives the handbook URL and module parameters
  2. HTTP Request queries Chat With PDF to extract and summarise content
  3. HTTP Request sends the script to ElevenLabs for audio generation
  4. HTTP Request creates a video job in Hour One
  5. Polling loop checks for completion
  6. On success, store the video URL and notify the team

No human intervention happens between the initial webhook call and the Slack notification. The video is ready to download, review, and publish.

The Manual Alternative

If you prefer more control over the final output, you can skip the Hour One automation and instead download the audio file, then use Hour One's web interface directly. This takes an extra 10 minutes per module but gives you options to edit the script, select different presenters, or adjust video branding before rendering. The trade-off is clear: you sacrifice speed for flexibility. Some teams also prefer to use Claude Opus 4.6 or GPT-4o for script generation instead of Chat With PDF, because they can prompt the model to match their internal training style guide more precisely. You would still automate everything downstream, but you replace the Chat With PDF step with a direct call to your chosen LLM, passing the handbook PDF content in the system prompt.

Pro Tips

Rate limits and batching

ElevenLabs Turbo v2.5 has a request limit; if you schedule multiple modules in one day, space them out by at least 30 seconds to avoid throttling. n8n's built-in delay nodes make this trivial.

Audio file storage

ElevenLabs returns audio as temporary URLs that expire after a few hours. Download the audio file immediately and store it in your own cloud storage (AWS S3, Google Cloud Storage, or Azure Blob Storage) before calling Hour One. This prevents workflow failures caused by expired URLs.

Video quality trade-offs

Hour One's 1080p rendering takes longer than 720p. If you are producing dozens of modules, consider using 720p for initial publication and reserving 1080p for videos that will be reused in marketing or certification programmes. You can always re-render later.

Testing with sample data

Before automating your actual handbook, test the workflow with a short sample PDF (a single policy page). This catches configuration issues early and shows you realistic processing times without wasting API calls on your full handbook.

Costs during testing

Disable the Slack notification node and use a development webhook URL until you are confident in the workflow. Small adjustments to the Chat With PDF query or ElevenLabs voice settings can dramatically improve output quality, so you may re-run the same section several times.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
Chat With PDFProfessional£30Supports multiple file uploads and extended querying
ElevenLabsCreator£99250,000 characters per month; most modules use 3,000–5,000
Hour OneGrowth£299Includes 25 video renders monthly; additional renders at £12 each
n8nCloud Pro£20Covers 2,000 workflow executions; well within monthly module volume
Total£448Produces ~20 modules monthly; cost per module drops as volume increases

If you produce only 5 modules monthly, your per-module cost is roughly £90. At 25 modules, it falls to £18 per module. Compare this to the traditional approach of £500–£1,500 per video from a production agency, and the business case becomes clear within the first month.