Skip to main content
Lifetime license included with every purchase
n8n automationvoicemail CRMAI transcriptionTwilio n8n

Automate Voicemail Transcription and CRM Logging with n8n

Automate voicemail transcription with n8n, AI-powered urgency tags, and HubSpot CRM logging. Stop manually replaying calls — set this up in 15 minutes.

Nn8n Marketplace Team·September 28, 2026·Updated September 28, 2026·8 min read

Every sales team has the same voicemail problem: listen, scribble, forget. The playback is slow, the notes are worse, and by the time anything reaches the CRM it's missing half the context. n8n voicemail automation breaks this loop by treating each incoming voicemail as a webhook event — transcribed by OpenAI Whisper, triaged by GPT-4o-mini, and filed in HubSpot before the rep's finished their next task.

The pipeline isn't complicated. Twilio fires a webhook the moment a recording is ready. n8n picks it up, downloads the audio, transcribes it with Whisper, extracts urgency and intent with a second AI call, then fans out to HubSpot, Google Sheets, and Telegram in parallel. The whole chain runs in under 30 seconds.

The biggest win isn't the transcript itself. It's knowing a voicemail is "high urgency, callback request" before anyone hits play — that's what actually changes how fast a rep responds.

What n8n voicemail automation handles

A complete voicemail workflow does more than capture text:

  • Calls that go unanswered during off-hours or peak coverage gaps
  • High-volume support lines where listening to every recording isn't practical
  • Field teams who take calls but can't stop to type notes into a CRM
  • Compliance use cases that need every phone interaction logged with a timestamp
  • Triage workflows where urgency determines which queue a lead enters next
The pattern in brief

Twilio receives voicemail → webhook fires → n8n downloads audio → Whisper transcribes → GPT-4o-mini triages → HubSpot note created → Sheets row appended → Telegram alert for high-priority calls. No manual steps.

The VoiceNote Pipeline

Twilio Webhook → Download Audio → Whisper → GPT-4o-mini → [HubSpot Note | Sheets Log | Telegram Alert]

Five nodes handle the core chain. The fan-out at the end runs in parallel — the Sheets log doesn't hold up the Telegram alert. Twilio fires the webhook automatically on recording completion, so you're not polling.

Step-by-step: building the workflow

1. Receive the Twilio webhook

Twilio posts to your n8n Webhook node when a voicemail recording finishes. The payload includes RecordingUrl, RecordingDuration, From, and To. Set the webhook path to something like /twilio-voicemail and paste the full URL into Twilio under Phone Numbers → Active Numbers → Voice Configuration.

One thing that trips up early setups: Twilio appends .json to RecordingUrl by default. The actual audio file lives at the same URL without that extension. A Code node (v2, jsCode) stripping .json before the download step saves a lot of debugging.

2. Transcribe with OpenAI Whisper

The HTTP Request node (v4.2) handles the Whisper API call. Download the voicemail audio as binary using the cleaned recording URL, then POST it to https://api.openai.com/v1/audio/transcriptions with model: whisper-1 and response_format: json. The transcript arrives at $json.text.

Whisper handles phone-quality audio better than most expect. Accuracy on voicemails in the 30-to-90-second range runs above 95% for clear recordings. Longer voicemails can still clip if call quality is poor, but that's a Twilio encoding issue, not a Whisper limitation.

3. AI triage with GPT-4o-mini

A second HTTP Request node calls the Chat Completions API with a structured prompt requesting urgency level (low, medium, high), intent label (callback_request, complaint, inquiry, order, other), a 2-to-3 sentence summary, and a recommended next action. Ask for JSON output.

If you're using the @n8n/n8n-nodes-langchain.openAi v2.1 node, output arrives at $json.output[0].content[0].text — a string, not an object. Add a Code node after with JSON.parse($input.first().json.output[0].content[0].text). Don't skip this parse step. The HubSpot node downstream expects structured key-value pairs; without it, the note gets created with an empty body and you won't know until you're looking at a blank CRM record.

4. Create the HubSpot note

The HubSpot node's "Create Note" action accepts a contact phone number as a lookup value. Pass $json.From from the Twilio payload as the association key. The note body should combine the transcript and triage output so any rep can read the situation cold:

VOICEMAIL — {{urgency}} urgency
From: {{From}} | Duration: {{RecordingDuration}}s
Intent: {{intent}}

Summary: {{summary}}

Recommended next action: {{recommended_action}}

Full transcript:
{{transcript}}

If no contact matches on phone number, add a HubSpot Search node first. When the search returns empty, create the contact record, then attach the note. Orphaned notes floating without a contact record are hard to find later.

5. Fan out to Sheets and Telegram

Two branches run in parallel after the HubSpot step. Google Sheets appends one row per call: timestamp, caller number, duration, urgency, intent, summary, transcript. The Telegram branch fires only when urgency is high — an If node filters before the message goes out.

That filter isn't optional. Without it, every "just checking in" voicemail pings the team at 11pm.

Implementation patterns

Pattern 1: Urgency routing via Switch

GPT-4o-mini Triage → Switch(urgency)
  high   → Telegram alert + HubSpot task (4-hour due)
  medium → HubSpot note + Sheets row
  low    → Sheets row only

A Switch node after triage creates three execution paths. High urgency triggers a Telegram alert and a HubSpot follow-up task with a deadline 4 hours out. Medium goes to note plus Sheets. Low goes to Sheets only. Teams that've tried the "alert on everything" approach switch to this pattern within a week — quieter, and the signal is cleaner.

Pattern 2: Daily digest instead of real-time pings

Schedule (8am) → Read Sheets (yesterday) → Code (group by urgency) → Slack digest

A separate workflow runs each morning and reads yesterday's voicemail rows from Google Sheets, groups them by urgency and intent, and sends one digest message. Much quieter than 12 individual Telegram pings overnight. Real-time alerts stay for high-urgency only; the digest handles everything else. Teams that field calls across multiple time zones find this pattern easier to action than real-time noise.

Pattern 3: Contact enrichment before logging

Twilio Webhook → Whisper → GPT-4o-mini → HubSpot Search → [Enrich via Apollo] → HubSpot Note → Sheets

Before creating the note, use an HTTP Request to Apollo or Clearbit to look up the caller's phone number and return company name and job title. Add those fields to the note body and the Sheets row. The note that lands in HubSpot then reads "VP of Operations at Acme Corp, high urgency, callback request" rather than just a raw phone number — which is actually useful context.

n8n nodes you'll use most

NodePurpose
Webhook (v1)Receives Twilio POST with RecordingUrl, From, To, RecordingDuration
HTTP Request (v4.2)Downloads audio binary; calls Whisper; calls GPT-4o-mini
Code (v2)Strips .json from recording URL; parses AI JSON response string
HubSpotSearches contacts by phone; creates notes; creates follow-up tasks
Google SheetsAppends one row per voicemail for team visibility and audit trail
TelegramSends high-urgency alerts to team channel
IfFilters for urgency === "high" before Telegram fires
SwitchRoutes by urgency level into parallel downstream branches

Getting started

  1. Set up a Twilio number with voicemail enabled. Under Voice Configuration, point the voicemail fallback webhook at your n8n Webhook URL.
  2. Create an OpenAI API key with Whisper and Chat Completions scopes enabled.
  3. Connect HubSpot via OAuth2 in n8n's credential manager — API key works for free-tier contact + note operations.
  4. Create a Google Sheet with columns: Timestamp, From, Duration, Urgency, Intent, Summary, Transcript.
  5. Add a Telegram bot token and configure your target chat ID.
  6. Build the workflow chain: Webhook → HTTP download → HTTP Whisper → Code parse → HTTP GPT-4o-mini → Code parse → HubSpot → If → Sheets and Telegram in parallel.
  7. Test with a real voicemail: call your Twilio number, leave a short message, then watch the n8n execution log. The transcript and HubSpot note should appear within 30 seconds of the recording completing.
Skip the build

The VoiceNote: AI Voicemail Summary to CRM template ships this end-to-end — Twilio webhook, Whisper transcription, GPT-4o-mini triage with urgency and intent tags, HubSpot note creation, Google Sheets logging, and Telegram alerting for high-priority calls. It's part of The Complete n8n Templates Bundle, a one-time lifetime license to the full catalog if you're running more than one of these automations.

Get the VoiceNote Template →

For teams applying the same AI triage approach to email inboxes, the patterns in n8n AI email auto-reply map directly — same urgency classification logic, different trigger node. The n8n HubSpot automation post covers the contact-matching and note-creation config in more depth if the CRM side is the trickier part of the build. Start with the VoiceNote template for a pre-wired version, or browse the full n8n template catalog to see what else maps to your current stack.

Browse all n8n templates →
FAQ

Common questions

How do I transcribe voicemails automatically with n8n?
Use a Twilio webhook trigger in n8n to receive the voicemail recording URL, then pipe the audio to OpenAI Whisper for transcription. The transcript flows to any CRM or notification channel in the same workflow execution.
Can n8n log voicemails to HubSpot automatically?
Yes. After Whisper transcribes the audio, a GPT-4o-mini step summarizes and tags the call by urgency and intent, and an n8n HubSpot node creates a CRM note on the matching contact — no manual data entry required.
What do I need to build n8n voicemail automation?
A Twilio account with voicemail enabled, an OpenAI API key with Whisper and Chat Completions access, and a HubSpot or Google Sheets credential. The webhook URL from n8n goes into Twilio's voicemail configuration. Setup takes under 15 minutes.
Stop reading. Start running.

Get the workflow templates this guide is built on

Import-ready n8n JSON, step-by-step setup, and tested end-to-end. One-time payment, own it forever.

Free — $40 value

Get 3 tested n8n templates, free

The full customer package for three real catalog templates — workflow JSON, step-by-step setup guide, credential checklist. Built through the same live-instance release process as everything we sell. Plus new templates and automation guides in your inbox. No spam, unsubscribe anytime.

  • 01Smart To-Do List ManagerPre-built n8n workflow template that automates productivity with OpenAI. Live in about 10 minutes.$14
  • 02Email Follow-Up AutomatorPre-built n8n workflow template that automates crm with OpenAI. Live in about 15 minutes.$12
  • 03Market Trend AnalyzerPre-built n8n workflow template that automates data processing with OpenAI. Live in about 10 minutes.$14