- Type
- Automation concept · voice commerce
- Role
- Solo builder: voice workflow, vector store, prompts, deployment
- Timeline
- 2026
- Client context
- Nova Technology Gadget Store · consumer electronics retail
- Architecture
- Google Sheets ETL → Supabase vector store → ElevenLabs voice ↔ n8n AI agent
“Every product answer is pulled from the store's own catalogue, so the voice agent never invents a price or a spec.”
The problem
Small electronics stores handle product enquiries over the phone, but a live person has to answer every call, repeat specifications, check stock, and write down orders. During busy hours, customers wait or hang up. After hours, the store simply stops selling.
The store already kept product data in Google Sheets. What was missing was a voice layer that could answer in plain language without making up prices, specs, or availability. A generic LLM will confidently recommend products that do not exist. The system needed to ground every answer in the store's own catalogue.
Before the assistant
Every order required a staff member to answer the phone, read the sheet, explain options, collect name, phone, address, and confirm payment. Calls stacked up, details were misheard, and out-of-hours traffic was lost. There was no way to automate the conversation while keeping answers tied to the live catalogue.
What I built
An n8n ETL pipeline chunks and vectorizes the Google Sheets catalogue into Supabase, then an ElevenLabs voice call retrieves grounded answers through RAG before capturing the order.
I built Stella, a voice agent that handles the entire phone sales flow. The agent does not rely on model memory for product facts. Instead, an n8n ETL pipeline extracts the store's Google Sheets catalogue, cleans and chunks each product row, generates OpenAI embeddings, and loads them into a Supabase vector store. When a customer calls, the agent performs RAG over that store and returns only products, prices, and specs that exist in the live catalogue.
This grounding matters because the assistant must never invent a model, a price, or a warranty. Every recommendation is retrieved from vectorized customer data, not from the LLM's training set. The conversation layer lives in ElevenLabs; the knowledge layer lives in the vector store and is refreshed through the same ETL pipeline.
- ETL ingestion. An n8n workflow polls the Google Sheets catalogue, normalises columns, splits each product into searchable chunks, and prepares structured metadata for embedding.
- Chunking and vectorizing. Each product chunk is passed to OpenAI embeddings and stored in Supabase pgvector, so similarity search returns the most relevant catalogue items for any customer query.
- RAG grounding. The AI agent retrieves from the vector store on every product question. Prices, names, and warranty details come from the store's own data, not from the model's memory.
- Voice webhook. An ElevenLabs phone number streams the caller's speech to n8n, where the conversation agent interprets intent, retrieves grounded context, and responds in natural speech.
- Order capture. Name, phone, delivery address, and product choice are collected and confirmed before the call ends, with details drawn from the same grounded product record.
The outcome
The assistant is live for Nova Technology Gadget Store. Because every product answer is grounded in the vectorized catalogue through RAG, the intended outcome is not just more completed calls, but calls where the customer receives accurate, store-specific information from start to finish.
Stack
Next improvements
- Payment integration. Add a pay-on-delivery or card-link step so the agent can confirm payment during the call.
- Stock awareness. Sync real-time availability from the sheet or POS so the agent never promises an out-of-stock item.
- Order dashboard. Give store staff a simple view of voice orders, status, and fulfilment handoffs.
Automation flow snapshot
AI Shopping Assistant voice flow
The ETL pipeline, architecture overview, and voice integration workflow.