Skip to content
Is there an AI for this?

Self-hosted

Meeting and call transcription to CRM notes

faster-whisper or WhisperX transcribes and separates speakers on your own GPU, a local model writes the summary and the action items against a fixed schema, and n8n files the result against the right CRM record with a person approving before it is saved.

Source
Editorial recipe — no step evidence has been fetched yet
Verified
Evidence not verified
Confidence
Low

01Objective


02Recommended stack

6 components
RoleComponent
InferenceQwen2.5-14B-Instruct for summaries
InferenceWhisper large-v3
Ingestionfaster-whisper
IngestionoptionalWhisperX
Orchestrationn8n
StoragePostgreSQL

Architecture and data flow

Architecture for Meeting and call transcription to CRM notes10 components in 6 layers. Trust boundaries: COMPANY NETWORK; PRIVATE CLOUD · Your cloud tenancy. External data transfer: SOME. Some data leaves the boundary drawn here.Meeting owners (approval queue)Recording drop / calendar triggern8n workflow + approval screenTranscription (faster-whisper / WhisperX) → summarisationPostgreSQL (transcripts, summaries, retention)Recording store (short retention)vLLM + Whisper large-v3 on the GPUWhisper large-v3 · Qwen2.5-14B-InstructCompany GPU server (24 GB)Meeting owners (approval queue)Meeting owners (approva…PEOPLERecording drop / calendar triggerRecording drop / calend…STORAGEn8n workflow + approval screenn8n workflow + approval…APPLICATIONTranscription (faster-whisper / WhisperX) → summarisationTranscription (faster-w…RETRIEVALCRMEXTERNAL APIPostgreSQL (transcripts, summaries, retention)PostgreSQL (transcripts…DATABASERecording store (short retention)Recording store (short …STORAGEvLLM + Whisper large-v3 on the GPUvLLM + Whisper large-v3…INFERENCE SERVERWhisper large-v3 · Qwen2.5-14B-InstructWhisper large-v3 · Qwen…MODELCompany GPU server (24 GB)Company GPU server (24 …HARDWARECOMPANY NETWORKPRIVATE CLOUD · Your cloud tenancyHTTPSCONFIDENTIALdocuments to indexCONFIDENTIALquestion + user groupsCONFIDENTIALdocuments + permissionsCONFIDENTIALchats, users, settingsPERSONALoriginal filesCONFIDENTIALprompt + retrieved passagesCONFIDENTIALloaded weightsGPU memoryGPU memoryapproved note (summary and action items)CONFIDENTIALEXTERNAL DATA TRANSFER · SOME

Components

  • Meeting owners (approval queue) — people
  • Recording drop / calendar trigger — storage
  • n8n workflow + approval screen — application
  • Transcription (faster-whisper / WhisperX) → summarisation — retrieval
  • CRM — external api
  • PostgreSQL (transcripts, summaries, retention) — database
  • Recording store (short retention) — storage
  • vLLM + Whisper large-v3 on the GPU — inference server
  • Whisper large-v3 · Qwen2.5-14B-Instruct — model
  • Company GPU server (24 GB) — hardware

Connections

  • Meeting owners (approval queue) to n8n workflow + approval screen — HTTPS (confidential data)
  • Recording drop / calendar trigger to Transcription (faster-whisper / WhisperX) → summarisation — documents to index (confidential data)
  • n8n workflow + approval screen to Transcription (faster-whisper / WhisperX) → summarisation — question + user groups (confidential data)
  • Transcription (faster-whisper / WhisperX) → summarisation to PostgreSQL (transcripts, summaries, retention) — documents + permissions (confidential data)
  • n8n workflow + approval screen to PostgreSQL (transcripts, summaries, retention) — chats, users, settings (personal data)
  • Transcription (faster-whisper / WhisperX) → summarisation to Recording store (short retention) — original files (confidential data)
  • Transcription (faster-whisper / WhisperX) → summarisation to vLLM + Whisper large-v3 on the GPU — prompt + retrieved passages (confidential data)
  • vLLM + Whisper large-v3 on the GPU to Whisper large-v3 · Qwen2.5-14B-Instruct — loaded weights
  • Whisper large-v3 · Qwen2.5-14B-Instruct to Company GPU server (24 GB) — GPU memory
  • vLLM + Whisper large-v3 on the GPU to Company GPU server (24 GB) — GPU memory
  • n8n workflow + approval screen to CRM — approved note (summary and action items) (confidential data)

External data transfer · SOME

  • confidential content leaves your premises for your own cloud tenancy ("CRM"). You keep control of the account; the provider is a processor, so a DPA and a documented region apply.
  • Audio and transcripts never leave your network. Only the approved note is written out, and only into your own CRM tenancy.
  • If the CRM is a SaaS product, that final hop inherits the CRM vendor's terms — state it explicitly in the review.

03Suitable for

Organisation size
10–500 employees
Data classes
confidential, personal
Constraints
recordings already exist, or you have a lawful basis and a consent process to create them; a CRM with an API; a 24 GB GPU handles transcription and summarisation for a small sales or advisory team; multilingual or accented audio needs testing before anyone is promised accuracy
Industries
Professional services, Financial services, Insurance, Real estate, Technology
Jurisdictions
any

04Hardware

  • On-premise single 24 GB GPU server

    GPU
    NVIDIA RTX 4090 24 GB (or NVIDIA L4 24 GB for a rack-mounted, 72 W alternative)
    VRAM
    24 GB
    System RAM
    64 GB
    Storage
    2000 GB
    CPU
    16-core x86 server CPU (AMD EPYC 7003/9004 or Intel Xeon Scalable)
    Form factor
    Tower server

    Indicative costUS$4,000 – US$9,000

    indicative build cost for the complete machine, USD, Aug 2026 — verify with a local supplier

    The default box for a 20–60 person firm. Fits a 14B model at 4-bit with roughly 8 GB of KV cache left for concurrent chat, or an 8B model at fp16. NVMe storage sized for the model cache plus a document corpus and its embeddings. Add a UPS and an offsite backup target — this machine holds the whole knowledge base.

  • Cloud GPU instance — 1 × NVIDIA L4 24 GB

    GPU
    NVIDIA L4 24 GB (AWS G6, Azure NVadsA10/NCads equivalents, GCP G2)
    VRAM
    24 GB
    System RAM
    64 GB
    Storage
    1000 GB
    CPU
    8–16 vCPU
    Form factor
    Cloud instance

    Indicative costUS$1 – US$2

    indicative on-demand rental, USD per hour, Aug 2026 — verify against the provider price list for your region

    The private-cloud counterpart of `onprem-small-24gb`: same model sizes, no capital outlay, and a region you choose explicitly. Running it continuously for a year usually costs more than buying the equivalent box, so it suits pilots, bursts and firms without a server room. The cloud provider becomes a data processor — a DPA and a documented region are required.

  • Apple Silicon workstation (unified memory)

    GPU
    Apple M4 Max (up to 128 GB unified) or M3 Ultra (up to 256 GB unified)
    VRAM
    96 GB
    System RAM
    128 GB
    Storage
    2000 GB
    CPU
    Apple M4 Max / M3 Ultra
    Form factor
    Workstation

    Indicative costUS$4,500 – US$12,000

    indicative build cost for the complete machine, USD, Aug 2026 — verify with a local supplier

    Quiet, standard-socket power draw, and a large memory pool — about 75% of installed unified memory is addressable by the GPU, which is where the 96 GB figure comes from on a 128 GB M4 Max. Memory bandwidth, not capacity, sets the ceiling: excellent for a pilot, a partner workstation or a single heavy user, weak for 40 people at once. Runs Ollama, llama.cpp and MLX; does not run CUDA builds of vLLM.

Indicative costUSD · one-off plus monthly

Software licences
All components are open source and self-installed. Check each licence for use limits.
US$0
Model usage
Open weights served locally: no per-token charge. The GPU cost sits under infrastructure.
US$0
GPU server (24 GB class)
Hardware profile onprem-small-24gb — indicative build cost, Aug 2026, verify locally.
US$4,000 – US$9,000
Implementation (6–15 FDE-days)
6–15 FDE-days at US$760–1940 per day, converted from the HK$6,000–15,000 band at the HKMA Linked Exchange Rate band of HK$7.75–7.85 to one US dollar. One-off; excludes internal staff time.
US$4,560 – US$29,100
  • 10–50 people recording meetings, one CRM, one language plus occasional others.
  • Excludes legal advice on recording consent, which is a prerequisite rather than an option.
  • Every figure is an assessment from the inputs listed, not a quotation.

05Difficulty

3 / 5

A project week with Linux, Docker and GPU experience


06Skills

API integrationapi-integration
development
Compliance and governancecompliance-governance
compliance
Dockerdocker
infrastructure
Linuxlinux
operations
LLM inferencellm-inference
ml
Pythonpython
development
Speech to textspeech-to-text
ml
Workflow automationworkflow-automation
operations

07Deployment steps

7 steps

Commands are copied from each project’s own documentation, and the page they came from is linked under the step. 0 of 7 steps currently open an evidence record. The rest are linked to their source; §10 says which of those documents were fetched and which were fetched without their anchor being found — two different states, named differently there.

  1. 01

    Settle recording consent and retention before building

    Assessment

    Who may be recorded, how they are told, how consent is captured and how long recordings and transcripts are kept. This is a legal question with a different answer in each jurisdiction you operate in, and it determines what the pipeline is allowed to do. Get it answered in writing first; everything below is cheaper than rebuilding around it later.

  2. 02

    Transcribe with faster-whisper on the GPUversion-sensitive

    Assessment

    Install faster-whisper and run the large-v3 model with float16 on GPU (or int8 to save memory). Turn on the VAD filter to drop silence, and use batched transcription for throughput on a backlog of recordings.

    pip install faster-whisper
    from faster_whisper import WhisperModel
    
    model_size = "large-v3"
    
    # Run on GPU with FP16
    model = WhisperModel(model_size, device="cuda", compute_type="float16")

    from the faster-whisper README

    Source documentation

  3. 03

    Add speaker labels where the summary needs themversion-sensitive

    Assessment

    WhisperX adds alignment and diarisation on top of Whisper. "The easiest way to install WhisperX is through PyPi." Diarisation needs a separate model and, for some pipelines, accepting the model licence — check that before assuming it will run offline.

    pip install whisperx

    Source documentation

  4. 04

    Summarise against a schemaversion-sensitive

    Assessment

    Decide the fields the CRM actually needs — summary, decisions, action items with owners and dates, next step, sentiment if it is genuinely used — and generate them under constrained decoding so every note has the same shape. Keep the transcript so any claim in the summary can be traced back to what was said.

    docker run --runtime nvidia --gpus all \
        -v ~/.cache/huggingface:/root/.cache/huggingface \
        --env "HF_TOKEN=$HF_TOKEN" \
        -p 8000:8000 \
        --ipc=host \
        vllm/vllm-openai:latest \
        --model Qwen/Qwen3-0.6B

    from the vLLM docs — substitute the summarisation model

    Source documentation

  5. 05

    Match the recording to the right CRM recordversion-sensitive

    Assessment

    Matching is where these projects fail quietly. Use the calendar invitee list or the dialled number rather than name matching on the transcript, and send anything ambiguous to a human queue. A note filed against the wrong client is worse than no note.

    docker volume create n8n_data
    
    docker run -it --rm \
     --name n8n \
     -p 5678:5678 \
     -e GENERIC_TIMEZONE="<YOUR_TIMEZONE>" \
     -e TZ="<YOUR_TIMEZONE>" \
     -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
     -e N8N_RUNNERS_ENABLED=true \
     -v n8n_data:/home/node/.n8n \
     docker.n8n.io/n8nio/n8n

    from the n8n docs

    Source documentation

  6. 06

    Require approval before anything reaches the CRM

    Assessment

    The person who was in the meeting reviews the note and presses save. It takes thirty seconds, it catches the misattributed action item, and it is the difference between a useful tool and a CRM full of plausible fiction.

  7. 07

    Automate deletion

    Assessment

    Recordings, transcripts and summaries each need a retention period and an actual deletion job — usually the recording goes first and the approved note stays. Store the timestamps so the deletion can be proved, not just asserted.

    CREATE EXTENSION vector;

    only if you also want semantic search over transcripts

    Source documentation


08Compliance considerations

Structured issue-spotting to support your own review — not legal advice. Verify against the cited primary sources and your counsel.

Applies everywhere

  • Consent · Personal data · Transparencyhigh

    Recording a conversation is processing personal data about everyone in it, including the people who are not your employees. Consent or another lawful basis, and clear notice, are prerequisites — not a later refinement. Requirements differ materially by jurisdiction.

  • Retentionhigh

    Three artefacts, three lifetimes: recording, transcript, approved note. Keeping recordings indefinitely because storage is cheap is the most common failure here.

  • Confidentiality · Professional secrecyhigh

    Transcripts of client meetings inherit the confidentiality of the meeting. Restrict access to the people who were entitled to be in the room.

  • Human oversight · Bias and fairnessmedium

    Transcription accuracy varies by accent and language, so a summary of a heavily accented speaker can be systematically worse. Measure per language before rollout, and require human approval regardless.


09Alternatives

  • A meeting-notes SaaS product

    Joins the call, transcribes, summarises and writes to the CRM with no infrastructure at all. The right answer when the conversations are not sensitive.

    • Working within a day
    • Every recorded conversation goes to a processor — consent, retention and residency questions
    • Per-seat pricing that grows with the team

    firefliesotter

  • Transcription only, no CRM integration

    Transcribe and summarise into a shared folder, and let people paste what matters. Removes the matching problem and most of the build.

    • A fraction of the work
    • Nothing is filed automatically; adoption depends on habit

    faster-whisperwhisperx

No alternative recipe is published yet.


10Evidence

0 of 6 fetched

11Community

Deployed this stack, or hit something this page does not cover? Corrections, sources and implementation reports are what keep a recipe worth reading.

Improve this page

Sign in to contribute

From the field

0 deployments · 0 questions

Nobody has reported deploying this here yet, and no question has been opened against this page. Both appear once a reviewer accepts them.


12Hire an FDE

If you would rather not build it, we can introduce a forward-deployed engineer who has deployed this stack before. The enquiry form starts from this recipe.