Skip to main content

Conversation Recording & CRM RAG

Record in-person conversations, meetings, and phone calls, automatically transcribe them, link them to CRM contacts/deals, and feed them into the RAG knowledge base so AI agents have full relationship context.

Recording Sources

SourceHowTech Stack
Phone callsAuto-record Twilio calls (with consent)Twilio Recording API > GCS > STT
In-person meetingsMobile app recording (mic)Device mic > GCS > STT
Video meetingsGoogle Meet, Zoom integrationMeet/Zoom API > GCS > STT
Voice memosQuick capture in Founder appDevice mic > GCS > STT
Web chatAlready captured in Minerva logsExisting Minerva pipeline
SMS/EmailAlready captured in Minerva channelsExisting Minerva pipeline

Transcription Pipeline

Audio/Video
|
v
GCS Upload
|
v
STT Service (Whisper/Gemini)
|
v
Transcript
|
+---> Speaker Diarization (who said what)
+---> Entity Extraction (names, companies, amounts, dates, action items)
+---> Sentiment Analysis (Apollo)
+---> Summary Generation (Saturn)
+---> CRM Linking (auto-match speakers to contacts)
+---> RAG Indexing (Vectorize)

STT Options

TierProviderCostQuality
FreeCloudflare Workers AI WhisperFREEStandard
StandardGoogle Cloud Speech-to-Text v2Per-minute pricingHigh
PremiumGemini multimodal (audio input)Token-basedBest

CRM Context Enrichment

Auto-Linking

  • Phone calls: Match caller ID to contact database, auto-link to contact + deal
  • Meetings: Match attendees from calendar invite to contacts
  • In-person: Founder tags contact(s) when starting recording, or AI suggests from speech

Contact Timeline

Every recording is linked to CRM entities and becomes a queryable part of the contact timeline:

Jane Smith (Acme Corp) -- Contact Timeline

2026-02-27 Phone Call (12 min)
Discussed pricing for Q3 renewal
Action Items: Send updated proposal, schedule follow-up
Sentiment: Positive (0.82)

2026-02-25 Email -- RE: Partnership Opportunity

2026-02-22 In-Person Meeting (45 min)
Product demo at their office
Key Topics: Integration requirements, timeline, budget
Sentiment: Neutral (0.61)

2026-02-20 SMS -- Confirmed meeting time

2026-02-15 Video Call (30 min)
Initial discovery call
Summary: Interested in Restaurant + Voice Agent products

RAG Integration

All conversation data is indexed in Vectorize for AI agent retrieval:

RAG Indexes

IndexContent
crm-conversationsFull transcripts, chunked by topic/speaker turn
crm-contactsContact profiles enriched with conversation summaries
crm-dealsDeal context with all related conversations

Agent Access

AgentHow They Use CRM RAG
Diana"What did we discuss with Acme Corp last week?"
Fortuna"What's the status of the Acme renewal?"
Saturn"Prep me for my call with Jane at Acme"
Minerva"What are common objections from restaurant prospects?"
Recording Consent

Recording requires explicit consent. Configuration varies by jurisdiction.

Jurisdiction TypeStates/RegionsRequirement
One-Party Consent38 US statesNotification only — one party (your side) must consent
Two-Party ConsentCA, CT, FL, IL, MA, MD, MI, MT, NH, NV, PA, WAAll parties must explicitly consent before recording
InternationalEU (GDPR), UK, Canada, AustraliaVaries — generally requires explicit consent + data processing basis

Compliance Features

  • Auto-Detection: System detects jurisdiction from phone area code or location settings
  • Consent Prompts: Two-party states auto-prompt for consent before recording starts
  • Opt-Out: Per-contact opt-out for no recording
  • Retention Policies: Configurable retention periods with automatic deletion
  • Right to Deletion: GDPR/CCPA compliant data export and deletion
  • Encryption: All recordings encrypted at rest (GCS) and in transit
  • Access Control: Only founder + authorized roles can access recordings

Recording UI

Quick Record Button

A floating action button in the Command Center:

  1. Tap "Record"
  2. "Who is this with?" — Select contacts
  3. Recording starts with consent check
  4. Stop — Auto-transcribe + link to CRM

Meeting Recorder

Within any AI conversation thread:

"Rex, record this meeting" — Starts recording with real-time transcription, action item extraction, and summary posted to thread.

Database Schema

conversation_recordings (
id STRING(36),
org_id STRING(36),
type STRING(20), -- 'phone', 'in_person', 'video', 'voice_memo'
source STRING(50),
contact_ids JSON,
deal_id STRING(36),
duration_seconds INT64,
audio_url STRING(500),
transcript_url STRING(500),
transcript_text STRING(MAX),
summary STRING(MAX),
action_items JSON,
sentiment_score FLOAT64,
speaker_diarization JSON,
consent_status STRING(20),
created_at TIMESTAMP
) PRIMARY KEY (org_id, id)

API Endpoints

EndpointMethodDescription
/api/v1/agent/founder/recordings/uploadPOSTUpload audio + metadata
/api/v1/agent/founder/recordingsGETList recordings (filter by contact, deal, date)
/api/v1/agent/founder/recordings/{id}GETRecording detail with transcript
/api/v1/agent/founder/recordings/{id}/transcriptGETFull transcript with diarization
/api/v1/agent/founder/recordings/{id}/linkPOSTLink recording to contact/deal
/api/v1/agent/founder/contacts/{id}/timelineGETFull interaction timeline
/api/v1/agent/founder/crm/searchGETRAG-powered semantic search