Build a restaurant voice assistant with VAPI and PostgreSQL for bookings & orders
This n8n template demonstrates how to create a comprehensive voice-powered restaurant assistant that handles table reservations, food orders, and restaurant information requests through natural language processing. Th...
Template notes
This n8n template demonstrates how to create a comprehensive voice-powered restaurant assistant that handles table reservations, food orders, and restaurant information requests through natural language processing. The system uses VAPI for voice interaction and PostgreSQL for data management, making it perfect for restaurants looking to automate customer service with voice AI technology.
Good to know Voice processing requires active VAPI subscription with per-minute billing Database operations are handled in real-time with immediate confirmations The system can handle multiple simultaneous voice requests All customer data is stored securely in PostgreSQL with proper indexing
How it works
Table Booking & Order Handling Workflow Voice requests are captured through VAPI triggers when customers make booking or ordering requests The system processes natural language commands and extracts relevant details (party size, time, food items) Customer data is immediately saved to the bookings and orders tables in PostgreSQL Voice confirmations are sent back through VAPI with booking details and estimated wait times All transactions are logged with timestamps for restaurant management tracking
Restaurant Info Provider Workflow Info requests trigger when customers ask about hours, menu, location, or services Restaurant details are retrieved from the restaurantinfo table containing current information Wait nodes ensure proper data loading before voice response generation Structured restaurant information is delivered via VAPI in natural, conversational format
Database Schema
Bookings Table bookingid (PRIMARY KEY) - Unique identifier for each reservation customername - Customer's full name phonenumber - Contact number for confirmation partysize - Number of guests bookingdate - Requested reservation date bookingtime - Requested time slot specialrequests - Dietary restrictions or special occasions status - Booking status (confirmed, pending, cancelled) createdat - Timestamp of booking creation
Orders Table orderid (PRIMARY KEY) - Unique order identifier customername - Customer's name phonenumber - Contact for order updates orderitems - JSON array of food items and quantities totalamount - Calculated order total ordertype - Delivery, pickup, or dine-in specialinstructions - Cooking preferences or allergies status - Order status (received, preparing, ready, delivered) createdat - Order timestamp