Webhook icon
Schedule icon
Log icon
Commands icon
Docker icon
If icon
Parallel icon
SlackIncomingWebhook icon
Pause icon

Multimodal Voice-to-Action Call Transcription Engine

Transcribe audio call recordings with Whisper, redact PII, extract action items with LangChain, and automate ticket routing in Kestra.

Categories
AIBusiness

Orchestrate an end-to-end multimodal audio transcription and automated action extraction pipeline that ingests customer call audio recordings, transcribes speech using Whisper, redacts sensitive customer PII, extracts structured action items with LangChain, and escalates high-churn support inquiries directly to Slack and CRM systems.

Customer support, sales, and incident management teams generate hours of unstructured voice recordings daily. Manually reviewing call audio creates bottlenecks and causes urgent customer escalations to slip through the cracks. This blueprint introduces an autonomous voice-to-action pipeline:

  1. Speech-to-Text Transcription (whisper_speech_transcription): Dispatches a containerized Whisper audio runner to transcribe multi-party call recordings with high word-level accuracy.
  2. LangChain PII Redaction & Action Extraction (langchain_pii_and_action_extractor): Automatically masks credit cards and phone numbers while extracting structured tasks with assignees and caller sentiment.
  3. Automated Urgency Gating (If): Categorizes calls into routine logs versus critical escalations based on customer sentiment and account impact.
  4. Human-in-the-Loop Governance (Pause): Automatically pauses critical escalations (urgency >= 80) for supervisor verification before marking tickets resolved.
  5. Slack Notifications: Delivers real-time escalation cards and routine call digests directly to team channels.

How it works

  1. Ingestion Triggers:
    • The inbound_audio_webhook trigger (io.kestra.plugin.core.trigger.Webhook) accepts incoming call notifications from telephony webhooks (Twilio, Zoom Phone, Aircall).
    • The scheduled_audio_batch_sweep trigger runs end-of-day batch audio processing jobs.
  2. Whisper Speech Processing (whisper_speech_transcription):
    • Runs an isolated Docker container (python:3.11-slim) to process the audio stream, outputting speech duration, language, and raw text.
  3. LangChain Synthesis (langchain_pii_and_action_extractor):
    • Sanitizes PII and generates structured JSON action items and urgency scores.
  4. Supervisor Escalation (evaluate_urgency_gate):
    • Routine calls are logged and archived. High-urgency calls trigger instant Slack alerts and a 12-hour Kestra Pause gate (pause_for_supervisor_review).

What you get

  • First-class multimodal voice and audio AI processing orchestrated inside Kestra.
  • Zero-leakage regex and LLM PII redaction protecting customer privacy.
  • Automated ticket creation and task delegation from spoken conversations.
  • Native human-in-the-loop pause governance for customer success managers.
  • Real-time Slack notifications with actionable call summaries.

Who it's for

  • Customer Support and Call Center Operations automating ticket triage.
  • SRE and Incident Management Teams transcribing war-room bridge audio recordings.
  • Sales Engineering Teams automating CRM meeting notes and action item tracking.

Why orchestrate this with Kestra

Audio AI requires coordinating compute-intensive model processing, LLM entity extraction, third-party webhook listeners, and human escalation workflows. Kestra orchestrates the complete polyglot pipeline declaratively with Docker isolation, structured outputs, conditional routing, and secrets governance without requiring complex custom microservices.

Prerequisites

  • Docker daemon accessible to Kestra for containerized speech processing.
  • Slack Incoming Webhook URL configured in Kestra secrets (if Slack notifications are enabled).

Secrets

  • AUDIO_WEBHOOK_KEY: Secret authentication key for inbound telephony webhooks.
  • SLACK_WEBHOOK_URL: Slack Incoming Webhook endpoint for team alerts.
  • GEMINI_API_KEY or OPENAI_API_KEY: API keys for foundational model access.

Inputs

Name Type Default Description
call_recording_id STRING call-rec-94821 Unique recording identifier.
audio_source_url STRING Internal storage URL Remote URI or storage link to the audio recording.
transcription_model SELECT whisper-large-v3 Speech recognition model identifier (whisper-large-v3, whisper-base, gemini-flash-audio).
urgency_threshold INT 80 Threshold (0-100) triggering supervisor escalation.
require_supervisor_review BOOL true Enforces Kestra Pause task for high-urgency calls.

Quick start runbook

  1. Configure secrets AUDIO_WEBHOOK_KEY and SLACK_WEBHOOK_URL in your Kestra namespace.
  2. Trigger the flow manually from the Kestra UI to witness speech transcription, PII redaction, and action item extraction.
  3. If urgency exceeds 80, click Resume on the interactive Pause task in Kestra to simulate supervisor sign-off.
  4. Connect the inbound webhook URL to your telephony provider (Twilio, Zoom, Vonage) recording completion webhooks.

How to extend

  • Connect Amazon S3 or Google Cloud Storage tasks to automatically fetch recordings on arrival.
  • Integrate Zendesk, Jira, or Salesforce plugins to automatically create support tickets directly from extracted action items.
  • Connect OpenLineage to trace customer satisfaction and audio analytics trends across teams.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.