Back to Projects
AI/SaaSPublic

Voice-Driven CRM Assistant

Drop a voice note in Slack — the assistant transcribes it with Whisper, uses Claude tool-use to decide the right CRM action (create contact, log activity, query, or answer), runs it against Supabase, and replies with a spoken confirmation. Short-term memory keeps multi-turn context across requests.

n8nAnthropic Claude (tool use)Whisper STTElevenLabs TTSSupabaseSlack Events APIFunction callingConversational memory

Loop

STT → LLM → Action → TTS

Tools

3 Claude tool definitions

Memory

10-turn Supabase context

Interface

Slack voice note → spoken reply

Project Overview

Full conversational loop: Slack file_shared event → Whisper STT → Claude with three tool definitions (create_contact, log_activity, query_contact) → Switch node dispatches to the right Supabase action → spoken reply synthesized with ElevenLabs and returned as a Slack file. Short-term memory via Supabase: last 10 turns per user replayed into Claude's message array for follow-up requests. Defensive handling for Slack URL verification, mime-type gating, Whisper hallucination detection, and error sub-workflow.

Challenge

CRM data entry is slow and context-switching. Sales reps want to log calls and look up contacts from their phone without opening a dashboard.

Solution

Built a voice-first CRM interface in n8n using Claude's tool-use API to classify intent and dispatch the right database action, with Whisper for transcription and ElevenLabs for spoken confirmation — all triggered from a Slack voice note.

Results

Working voice CRM loop with multi-turn memory, three LLM-dispatched tools, production-grade error handling, and all the defensive edge cases handled — Slack handshake, hallucination detection, mime-type gating.

Voice-Driven CRM Assistant | Nasir Nasir-Ameen