Back to Catalog

Build a knowledge-based WhatsApp assistant with RAG, Gemini, Supabase & Google Docs

iamvaariamvaar
189 views
2/3/2026
Official Page

Workflow Execution Link:

Watch Execution Video

Workflow Pre-requisites

Step 1: Supabase Setup

First, replace the keys in the "Save the embedding in DB" & "Search Embeddings" nodes with your new Supabase keys. After that, run the following code snippets in your Supabase SQL editor:

  1. Create the table to store chunks and embeddings:

    CREATE TABLE public."RAG"
    (
        id bigserial PRIMARY KEY,
        chunk text NULL,
        embeddings vector(1024) NULL
    )
    TABLESPACE pg_default;
    
  2. Create a function to match embeddings:

    DROP FUNCTION IF EXISTS public.matchembeddings1(integer, vector);
    
    CREATE OR REPLACE FUNCTION public.matchembeddings1(
        match_count integer,
        query_embedding vector
    )
    RETURNS TABLE (
        chunk text,
        similarity float
    )
    LANGUAGE plpgsql
    AS $$
    BEGIN
        RETURN QUERY
        SELECT
            R.chunk,
            1 - (R.embeddings <=> query_embedding) AS similarity
        FROM public."RAG" AS R
        ORDER BY R.embeddings <=> query_embedding
        LIMIT match_count;
    END;
    $$;
    

Step 2: Create Knowledge Base

Create a new Google Doc with the complete knowledge base about your business and replace the document ID in the "Content for the Training" node.

Step 3: Get Together AI API Key

Get a Together AI API key and paste it into the "Embedding Uploaded document" node and the "Embed User Message" node.

Step 4: Setup Meta App for WhatsApp Business Cloud

  1. Go to https://business.facebook.com/latest/settings/apps, create an app, and select the use case "Connect with customer through WhatsApp". Copy the Client ID and Client Secret and add them to the first node.

  2. Go to that newly created META app in the app dashboard, click on the use case, and then click on "customise...". Go to the API setup, add your number, and also generate an access token on that page. Now paste the access token and the WhatsApp Business Account ID into the send message node.

Part A: Document Preparation (One-Time Setup)

1. When clicking ‘Execute workflow’

  • Type: manualTrigger
  • Purpose: Manually starts the workflow for preparing training content.

2. Content for the Training

  • Type: googleDocs
  • Purpose: Fetches the document content that will be used for training.

3. Splitting into Chunks

  • Type: code
  • Purpose: Breaks the document text into smaller pieces for processing.

4. Embedding Uploaded document

  • Type: httpRequest
  • Purpose: Converts each chunk into embeddings via an external API.

5. Save the embedding in DB

  • Type: supabase
  • Purpose: Stores both the chunks and embeddings in the database for future use.

Part B: Chat Interaction (Realtime Flow)

1. WhatsApp Trigger

  • Type: whatsAppTrigger
  • Purpose: Starts the workflow whenever a user sends a WhatsApp message.

2. If

  • Type: if
  • Purpose: Checks whether the incoming WhatsApp message contains text.

3. Embend User Message

  • Type: httpRequest
  • Purpose: Converts the user’s message into an embedding.

4. Search Embeddings

  • Type: httpRequest
  • Purpose: Finds the top matching document chunks from the database using embeddings.

5. Aggregate

  • Type: aggregate
  • Purpose: Merges retrieved chunks into one context block.

6. AI Agent

  • Type: langchain agent
  • Purpose: Builds the prompt combining user’s message and context.

7. Google Gemini Chat Model

  • Type: lmChatGoogleGemini
  • Purpose: Generates the AI response based on the prepared prompt.

8. Send message

  • Type: whatsApp
  • Purpose: Sends the AI’s reply back to the user on WhatsApp.

Build a Knowledge-Based WhatsApp Assistant with RAG, Gemini, Supabase, and Google Docs

This n8n workflow creates a sophisticated WhatsApp assistant that leverages Retrieval Augmented Generation (RAG) with Google Gemini, stores knowledge in Supabase, and manages content via Google Docs. It allows users to ask questions on WhatsApp and receive intelligent, context-aware responses based on your defined knowledge base.

What it does

This workflow automates the following steps:

  1. Listens for new WhatsApp messages: Triggers whenever a user sends a message to your WhatsApp Business account.
  2. Processes incoming messages: Extracts the message content and sender's phone number.
  3. Initializes AI Agent: Sets up an AI agent (likely a LangChain agent) to handle conversational logic and tool utilization.
  4. Retrieves context from Supabase: Queries a Supabase database to fetch relevant information based on the user's query. This acts as the RAG component, ensuring responses are grounded in your knowledge base.
  5. Generates response with Google Gemini: Uses the Google Gemini Chat Model to generate a natural language response, incorporating the retrieved context.
  6. Sends response via WhatsApp: Delivers the AI-generated answer back to the user on WhatsApp.
  7. Manages Google Docs content (implied for knowledge base): Although not directly triggered by a WhatsApp message, the presence of the Google Docs node suggests it's used to manage or update the knowledge base that Supabase then uses. This likely happens in a separate, linked workflow or is a manual step.
  8. Conditional Logic: The If node suggests there might be branching logic, for example, to handle different types of queries or to check for specific keywords before invoking the AI agent.
  9. Data Aggregation: The Aggregate node indicates that data from various sources (e.g., Supabase query results) might be combined or formatted before being passed to subsequent nodes.
  10. Custom Code Execution: The Code node allows for custom JavaScript logic, which could be used for data manipulation, advanced filtering, or integrating with other services not directly supported by n8n nodes.

Prerequisites/Requirements

To use this workflow, you will need:

  • n8n Instance: A running n8n instance (self-hosted or cloud).
  • WhatsApp Business Cloud API Account: Configured with a phone number to send and receive messages.
  • Google Gemini API Key: For accessing the Google Gemini Chat Model.
  • Supabase Account: A Supabase project with a database configured to store your knowledge base.
  • Google Docs Account: To manage the content that populates your Supabase knowledge base.
  • n8n Credentials: Appropriate credentials configured in n8n for WhatsApp, Google Gemini, Supabase, and Google Docs.

Setup/Usage

  1. Import the Workflow: Download the provided JSON and import it into your n8n instance.
  2. Configure WhatsApp Trigger:
    • Set up your WhatsApp Business Cloud API credential.
    • Configure the webhook URL in your WhatsApp Business account to point to the n8n webhook URL provided by the WhatsApp Trigger node.
  3. Configure Supabase Node:
    • Set up your Supabase credential (API Key and Project URL).
    • Configure the node to query your knowledge base table based on the incoming WhatsApp message.
  4. Configure Google Gemini Chat Model Node:
    • Set up your Google Gemini credential (API Key).
    • Ensure the model is configured to use the context retrieved from Supabase.
  5. Configure WhatsApp Business Cloud Node:
    • Use your WhatsApp Business Cloud API credential.
    • Configure the message to send the output from the Google Gemini Chat Model back to the user.
  6. Configure Google Docs Node:
    • Set up your Google Docs credential.
    • (Optional, if used for dynamic content) Configure this node to read/write information from/to your Google Docs, which might then be used to update Supabase.
  7. Review and Adjust Logic:
    • Examine the If node conditions and Code node logic. Adjust them to fit your specific requirements for filtering messages or processing data.
    • Ensure the Aggregate node correctly combines data if multiple sources are used.
  8. Activate the Workflow: Once all credentials and nodes are configured, activate the workflow.

Now, when a user sends a message to your WhatsApp Business number, the workflow will automatically process it, retrieve relevant information from Supabase, generate a response using Google Gemini, and send it back to the user.

Related Templates

Two-way property repair management system with Google Sheets & Drive

This workflow automates the repair request process between tenants and building managers, keeping all updates organized in a single spreadsheet. It is composed of two coordinated workflows, as two separate triggers are required — one for new repair submissions and another for repair updates. A Unique Unit ID that corresponds to individual units is attributed to each request, and timestamps are used to coordinate repair updates with specific requests. General use cases include: Property managers who manage multiple buildings or units. Building owners looking to centralize tenant repair communication. Automation builders who want to learn multi-trigger workflow design in n8n. --- ⚙️ How It Works Workflow 1 – New Repair Requests Behind the Scenes: A tenant fills out a Google Form (“Repair Request Form”), which automatically adds a new row to a linked Google Sheet. Steps: Trigger: Google Sheets rowAdded – runs when a new form entry appears. Extract & Format: Collects all relevant form data (address, unit, urgency, contacts). Generate Unit ID: Creates a standardized identifier (e.g., BUILDING-UNIT) for tracking. Email Notification: Sends the building manager a formatted email summarizing the repair details and including a link to a Repair Update Form (which activates Workflow 2). --- Workflow 2 – Repair Updates Behind the Scenes:\ Triggered when the building manager submits a follow-up form (“Repair Update Form”). Steps: Lookup by UUID: Uses the Unit ID from Workflow 1 to find the existing row in the Google Sheet. Conditional Logic: If photos are uploaded: Saves each image to a Google Drive folder, renames files consistently, and adds URLs to the sheet. If no photos: Skips the upload step and processes textual updates only. Merge & Update: Combines new data with existing repair info in the same spreadsheet row — enabling a full repair history in one place. --- 🧩 Requirements Google Account (for Forms, Sheets, and Drive) Gmail/email node connected for sending notifications n8n credentials configured for Google API access --- ⚡ Setup Instructions (see more detail in workflow) Import both workflows into n8n, then copy one into a second workflow. Change manual trigger in workflow 2 to a n8n Form node. Connect Google credentials to all nodes. Update spreadsheet and folder IDs in the corresponding nodes. Customize email text, sender name, and form links for your organization. Test each workflow with a sample repair request and a repair update submission. --- 🛠️ Customization Ideas Add Slack or Telegram notifications for urgent repairs. Auto-create folders per building or unit for photo uploads. Generate monthly repair summaries using Google Sheets triggers. Add an AI node to create summaries/extract relevant repair data from repair request that include long submissions.

Matt@VeraisonLabsBy Matt@VeraisonLabs
208

Send WooCommerce cross-sell offers to customers via WhatsApp using Rapiwa API

Who Is This For? This n8n workflow enables automated cross-selling by identifying each WooCommerce customer's most frequently purchased product, finding a related product to recommend, and sending a personalized WhatsApp message using the Rapiwa API. It also verifies whether the user's number is WhatsApp-enabled before sending, and logs both successful and unsuccessful attempts to Google Sheets for tracking. What This Workflow Does Retrieves all paying customers from your WooCommerce store Identifies each customer's most purchased product Finds the latest product in the same category as their most purchased item Cleans and verifies customer phone numbers for WhatsApp compatibility Sends personalized WhatsApp messages with product recommendations Logs all activities to Google Sheets for tracking and analysis Handles both verified and unverified numbers appropriately Key Features Customer Segmentation: Automatically identifies paying customers from your WooCommerce store Product Analysis: Determines each customer's most purchased product Smart Recommendations: Finds the latest products in the same category as customer favorites WhatsApp Integration: Uses Rapiwa API for message delivery Phone Number Validation: Verifies WhatsApp numbers before sending messages Dual Logging System: Tracks both successful and failed message attempts in Google Sheets Rate Limiting: Uses batching and wait nodes to prevent API overload Personalized Messaging: Includes customer name and product details in messages Requirements WooCommerce store with API access Rapiwa account with API access for WhatsApp verification and messaging Google account with Sheets access Customer phone numbers in WooCommerce (stored in billing.phone field) How to Use — Step-by-Step Setup Credentials Setup WooCommerce API: Configure WooCommerce API credentials in n8n (e.g., "WooCommerce (get customer)" and "WooCommerce (get customer data)") Rapiwa Bearer Auth: Create an HTTP Bearer credential with your Rapiwa API token Google Sheets OAuth2: Set up OAuth2 credentials for Google Sheets access Configure Google Sheets Ensure your sheet has the required columns as specified in the Google Sheet Column Structure section Verify Code Nodes Code (get paying_customer): Filters customers to include only those who have made purchases Get most buy product id & Clear Number: Identifies the most purchased product and cleans phone numbers Configure HTTP Request Nodes Get customer data: Verify the WooCommerce API endpoint for retrieving customer orders Get specific product data: Verify the WooCommerce API endpoint for product details Get specific product recommend latest product: Verify the WooCommerce API endpoint for finding latest products by category Check valid WhatsApp number Using Rapiwa: Verify the Rapiwa endpoint for WhatsApp number validation Rapiwa Sender: Verify the Rapiwa endpoint for sending messages Google Sheet Required Columns You’ll need two Google Sheets (or two tabs in one spreadsheet): A Google Sheet formatted like this ➤ sample The workflow uses a Google Sheet with the following columns to track coupon distribution: Both must have the following headers (match exactly): | name | number | email | address1 | price | suk | title | product link | validity | staus | | ---------- | ------------- | ----------------------------------------------- | ----------- | ----- | --- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | -------- | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | 850 | | Sharp Most Demanding Hoodie x Nike | https://yourshopdomain/p-img-nike | verified | sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | 850 | | Sharp Most Demanding Hoodie x Nike | https://yourshopdomain/p-img-nike | unverified | not sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | 850 | | Sharp Most Demanding Hoodie x Nike | https://yourshopdomain/p-img-nike | verified | sent | Important Notes Phone Number Format: The workflow cleans phone numbers by removing all non-digit characters. Ensure your WooCommerce phone numbers are in a compatible format. API Rate Limits: Rapiwa and WooCommerce APIs have rate limits. Adjust batch sizes and wait times accordingly. Data Privacy: Ensure compliance with data protection regulations when sending marketing messages. Error Handling: The workflow logs unverified numbers but doesn't have extensive error handling. Consider adding error notifications for failed API calls. Product Availability: The workflow recommends the latest product in a category, but doesn't check if it's in stock. Consider adding stock status verification. Testing: Always test with a small batch before running the workflow on your entire customer list. Useful Links Dashboard: https://app.rapiwa.com Official Website: https://rapiwa.com Documentation: https://docs.rapiwa.com Support & Help WhatsApp: Chat on WhatsApp Discord: SpaGreen Community Facebook Group: SpaGreen Support Website: https://spagreen.net Developer Portfolio: Codecanyon SpaGreen

RapiwaBy Rapiwa
183

Track SDK documentation drift with GitHub, Notion, Google Sheets, and Slack

📊 Description Automatically track SDK releases from GitHub, compare documentation freshness in Notion, and send Slack alerts when docs lag behind. This workflow ensures documentation stays in sync with releases, improves visibility, and reduces version drift across teams. 🚀📚💬 What This Template Does Step 1: Listens to GitHub repository events to detect new SDK releases. 🧩 Step 2: Fetches release metadata including version, tag, and publish date. 📦 Step 3: Logs release data into Google Sheets for record-keeping and analysis. 📊 Step 4: Retrieves FAQ or documentation data from Notion. 📚 Step 5: Merges GitHub and Notion data to calculate documentation drift. 🔍 Step 6: Flags SDKs whose documentation is over 30 days out of date. ⚠️ Step 7: Sends detailed Slack alerts to notify responsible teams. 🔔 Key Benefits ✅ Keeps SDK documentation aligned with product releases ✅ Prevents outdated information from reaching users ✅ Provides centralized release tracking in Google Sheets ✅ Sends real-time Slack alerts for overdue updates ✅ Strengthens DevRel and developer experience operations Features GitHub release trigger for real-time monitoring Google Sheets logging for tracking and auditing Notion database integration for documentation comparison Automated drift calculation (days since last update) Slack notifications for overdue documentation Requirements GitHub OAuth2 credentials Notion API credentials Google Sheets OAuth2 credentials Slack Bot token with chat:write permissions Target Audience Developer Relations (DevRel) and SDK engineering teams Product documentation and technical writing teams Project managers tracking SDK and doc release parity Step-by-Step Setup Instructions Connect your GitHub account and select your SDK repository. Replace YOURGOOGLESHEETID and YOURSHEET_GID with your tracking spreadsheet. Add your Notion FAQ database ID. Configure your Slack channel ID for alerts. Run once manually to validate setup, then enable automation.

Rahul JoshiBy Rahul Joshi
31