Answer restaurant voice queries with ElevenLabs, OpenAI, Qdrant, and Google Drive

Go to Workflow
0 views
Built by Redowan Ahmed Farhan Redowan Ahmed Farhan
Created on July 23, 2026

Description

Quick overview
This workflow rebuilds a Qdrant-based knowledge base from Google Drive documents and then answers ElevenLabs voice-assistant questions using an OpenAI-powered RAG agent with conversation memory, returning the response via webhook.

How it works
Runs manually to (re)build the knowledge base by creating a Qdrant collection and clearing its existing points.
Lists files in a specified Google Drive folder and downloads each document, converting Google Docs to plain text.
Splits each document into token-based chunks, loads them as LangChain documents, and generates OpenAI embeddings.
Inserts the embedded chunks into the Qdrant collection to create a searchable vector index.
Receives an ElevenLabs webhook POST request containing a spoken question in body.question.
Uses an OpenAI chat model agent with windowed conversation memory and a Qdrant-backed vector search tool to retrieve relevant context and generate an answer.
Returns the generated answer to ElevenLabs as the webhook response.

Setup
Configure Qdrant by replacing QDRANTURL and COLLECTION in the HTTP requests and Qdrant vector store nodes, and add an HTTP header auth credential for your Qdrant API key.
Connect Google Drive credentials and set the source folder ID/name in the Google Drive “Get folder” configuration.
Add OpenAI credentials for the embeddings nodes and chat model nodes used by the agent and retrieval tool.
Copy the production webhook URL from the ElevenLabs listener endpoint (test_voice_message_elevenlabs) into your ElevenLabs Conversational AI tool configuration.
Run the manual reindex once (and whenever documents change) before enabling the webhook-based Q&A flow.

Nodes Used (10)

AI Agent
@n8n/n8n-nodes-langchain.agent
Default Data Loader
@n8n/n8n-nodes-langchain.documentDefaultDataLoader
Embeddings OpenAI
@n8n/n8n-nodes-langchain.embeddingsOpenAi
Google Drive
n8n-nodes-base.googleDrive
HTTP Request
n8n-nodes-base.httpRequest
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi
Qdrant Vector Store
@n8n/n8n-nodes-langchain.vectorStoreQdrant
Simple Memory
@n8n/n8n-nodes-langchain.memoryBufferWindow
Token Splitter
@n8n/n8n-nodes-langchain.textSplitterTokenSplitter
Vector Store Question Answer Tool
@n8n/n8n-nodes-langchain.toolVectorStore