echo

AI-powered call recording and text conversation analysis for automotive service centers. Ingests audio and text from any source, transcribes, analyzes sentiment, and delivers results via API and webhooks.

System Specs

Processing Time

1-3 minutes average per call recording

Variable based on audio duration and queue depth

Sentiment Scoring

0-100 scale

Higher = more positive interaction

AI Models

Gemini 2.5 Flash (transcription)

Claude 3.5 Sonnet for analysis

Current Features

Built to serve as a single integration point for communication analytics across Vehlo products.

Call Recording Analysis
  • Full transcription with speaker diarization
  • Sentiment scoring (0-100)
  • Keyword extraction
  • AI-generated summary
  • ROI metrics and phone coaching scores
Text Conversation Processing
  • SMS and chat analysis
  • One-shot or incremental mode
  • Auto-close on inactivity (1hr default)
  • Structured conversation parsing
  • Sentiment and summary extraction
Multi-Integrator Support
  • Multiple third-party integrations
  • Separate API keys per integrator
  • Webhook configuration per integration
  • Independent processing queues
Master Account Linking
  • Cross-reference external account IDs
  • Link data to Vehlo master accounts
  • Unified reporting across integrators
  • Location-level granularity
Web Dashboard
  • View all recordings and transcripts
  • Sentiment analytics
  • Token usage tracking
  • Integration management UI
AI Usage Tracking
  • Real-time cost tracking
  • Optimized financial queries
  • Track by integration/account/location
  • Token usage analytics

Processing Flow

Call Recording
  1. POST recording metadata and MP3 URL
  2. Status: pending → download audio file
  3. Status: processing → transcribe via Gemini 2.5 Flash
  4. Status: transcribed → analyze with Claude 3.5 Sonnet
  5. Status: completed → store results
  6. POST webhook to integrator with full analysis
Text Conversation
  1. POST conversation (one-shot or incremental)
  2. Parse and structure messages
  3. Track inactivity (auto-close after 1hr default)
  4. Status: completed on close → analyze with AI
  5. POST webhook with sentiment, summary, and ROI

API Documentation

Example Request
POST /api/v1/recordings
Headers: X-API-Key: {your_key}

{
  "recording_url": "https://cdn.example.com/call.mp3",
  "external_account_id": "shop_123",
  "external_location_id": "north_location",
  "tracking_number": "15555551234",
  "duration": 180
}

Tech Stack

Laravel 12
MySQL
OpenRouter AI
Bootstrap 5
Alpine.js
Chart.js

Integration Requirements

Authentication

All API requests require an X-API-Key header. Contact your administrator to receive an API key and integrator configuration.

Webhooks

Configure a webhook URL to receive analysis results. Webhooks are POST requests containing the complete analysis payload.