AutomationFlowsAI & RAG › Fadhil

Fadhil

Fadhil. Uses agent, chatTrigger, mySql, vectorStoreSupabase. Chat trigger; 25 nodes.

Chat trigger trigger★★★★☆ complexityAI-powered25 nodesAgentChat TriggerMySQLSupabase Vector StoreDocument Default Data LoaderTool WorkflowReranker CohereMemory Buffer Window
AI & RAG Trigger: Chat trigger Nodes: 25 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → Chat Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Fadhil",
  "nodes": [
    {
      "parameters": {
        "options": {
          "systemMessage": "=Anda adalah ahli dalam membuat query SQL MySQL dan juga seorang data scientist.\n\nTugas Anda adalah menerjemahkan pertanyaan pengguna menjadi query SQL MySQL yang valid, efisien, dan aman.\n\nAnda akan diberikan konteks schema database yang diambil dari sistem RAG (vector database pada tool \"VS\"). Schema ini berisi informasi tabel, kolom, relasi, dan terkadang contoh data.\n\nIkuti aturan berikut dengan ketat:\n\n1. Hanya gunakan tabel dan kolom yang tersedia dalam schema yang diberikan.\n2. Jangan mengasumsikan atau membuat tabel, kolom, atau relasi yang tidak ada.\n3. Gunakan JOIN yang tepat berdasarkan relasi (foreign key) jika diperlukan.\n4. Pastikan query yang dihasilkan valid secara sintaks MySQL.\n5. Hanya buat query SELECT. Dilarang membuat INSERT, UPDATE, DELETE, DROP, ALTER, atau query yang mengubah data.\n6. Batasi hasil query secara wajar kecuali diminta (default gunakan LIMIT 100).\n7. Buat query yang efisien dan hindari subquery yang tidak perlu.\n8. Jika menggunakan agregasi (SUM, COUNT, AVG, dll), gunakan GROUP BY dengan benar.\n9. Jika pertanyaan ambigu, pilih interpretasi yang paling masuk akal berdasarkan schema dan contoh data.\n10. Jangan sertakan penjelasan, komentar, atau teks apapun selain query SQL.\n11. Jika schema tidak cukup untuk menjawab pertanyaan, berikan respon permintaan maaf dan mohon coba kembali.\n12. Lempar query ke tools \"Call_MYSQL\" , wajib! Jangan pernah tampilkan query ke user!\n13. Kalau kamu tidak menemukan hal yang di minta oleh user,maka bilang saja tidak tahu.\n14. Kalau mengalami rate limit reached tolong jangan di taampilkan\n\nFormat output:\n\n* Hanya berisi query SQL\n* Tanpa markdown\n* Tanpa penjelasan\n* Tanpa backtick\n\nStruktur table ada di vector database, pastikan gunakan nama kolom yang benar.\n\nContoh format schema yang mungkin diberikan:\n\nTable: <nama_tabel>\nColumns:\n\n* nama_kolom (tipe, constraint)\n  Relationships:\n* foreign_key \u2192 tabel_referensi.kolom\n\nSample Data ada di vector database juga, 1 punya 3 sample data.\n\nGunakan informasi tersebut untuk memahami struktur data dan menghasilkan query yang akurat.\n\nOutput query MYSQL yang didapat, tolong lemparkan ke tool \"Call_MYSQL\" untuk dieksekusi.\n\nTunggu jawaban dari tool \"Call_MYSQL\", lalu sajikan data yang diminta oleh user dengan bentuk sesuai permintaan.\n\nSecara default berikan jawaban data secara naratif dan mode text.\n\nJika pemanggilan tool gagal atau query error, berikan respon permintaan maaf dan mohon coba kembali.\n"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3,
      "position": [
        0,
        0
      ],
      "id": "edc26e81-7a67-4933-9120-27d89152b038",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "public": true,
        "initialMessages": "Halo, apa yang bisa saya bantu hari ini?",
        "options": {
          "allowFileUploads": true,
          "allowedFilesMimeTypes": "application/pdf, plain/text, image/*",
          "customCss": ":root {\n  /* Colors */\n  --chat--color--primary: #e74266;\n  --chat--color--primary-shade-50: #db4061;\n  --chat--color--primary--shade-100: #cf3c5c;\n  --chat--color--secondary: #20b69e;\n  --chat--color-secondary-shade-50: #1ca08a;\n  --chat--color-white: #fff;\n  --chat--color-light: #f2f4f8;\n  --chat--color-light-shade-50: #e6e9f1;\n  --chat--color-light-shade-100: #c2c5cc;\n  --chat--color-medium: #d2d4d9;\n  --chat--color-dark: #101330;\n  --chat--color-disabled: #d2d4d9;\n  --chat--color-typing: #404040;\n\n  /* Base Layout */\n  --chat--spacing: 1rem;\n  --chat--border-radius: 0.25rem;\n  --chat--transition-duration: 0.15s;\n  --chat--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;\n\n  /* Window Dimensions */\n  --chat--window--width: 400px;\n  --chat--window--height: 600px;\n  --chat--window--bottom: var(--chat--spacing);\n  --chat--window--right: var(--chat--spacing);\n  --chat--window--z-index: 9999;\n  --chat--window--border: 1px solid var(--chat--color-light-shade-50);\n  --chat--window--border-radius: var(--chat--border-radius);\n  --chat--window--margin-bottom: var(--chat--spacing);\n\n  /* Header Styles */\n  --chat--header-height: auto;\n  --chat--header--padding: var(--chat--spacing);\n  --chat--header--background: var(--chat--color-dark);\n  --chat--header--color: var(--chat--color-light);\n  --chat--header--border-top: none;\n  --chat--header--border-bottom: none;\n  --chat--header--border-left: none;\n  --chat--header--border-right: none;\n  --chat--heading--font-size: 2em;\n  --chat--subtitle--font-size: inherit;\n  --chat--subtitle--line-height: 1.8;\n\n  /* Message Styles */\n  --chat--message--font-size: 1rem;\n  --chat--message--padding: var(--chat--spacing);\n  --chat--message--border-radius: var(--chat--border-radius);\n  --chat--message-line-height: 1.5;\n  --chat--message--margin-bottom: calc(var(--chat--spacing) * 1);\n  --chat--message--bot--background: var(--chat--color-white);\n  --chat--message--bot--color: var(--chat--color-dark);\n  --chat--message--bot--border: none;\n  --chat--message--user--background: var(--chat--color--secondary);\n  --chat--message--user--color: var(--chat--color-white);\n  --chat--message--user--border: none;\n  --chat--message--pre--background: rgba(0, 0, 0, 0.05);\n  --chat--messages-list--padding: var(--chat--spacing);\n\n  /* Toggle Button */\n  --chat--toggle--size: 64px;\n  --chat--toggle--width: var(--chat--toggle--size);\n  --chat--toggle--height: var(--chat--toggle--size);\n  --chat--toggle--border-radius: 50%;\n  --chat--toggle--background: var(--chat--color--primary);\n  --chat--toggle--hover--background: var(--chat--color--primary-shade-50);\n  --chat--toggle--active--background: var(--chat--color--primary--shade-100);\n  --chat--toggle--color: var(--chat--color-white);\n\n  /* Input Area */\n  --chat--textarea--height: 50px;\n  --chat--textarea--max-height: 30rem;\n  --chat--input--font-size: inherit;\n  --chat--input--border: 0;\n  --chat--input--border-radius: 0;\n  --chat--input--padding: 0.8rem;\n  --chat--input--background: var(--chat--color-white);\n  --chat--input--text-color: initial;\n  --chat--input--line-height: 1.5;\n  --chat--input--placeholder--font-size: var(--chat--input--font-size);\n  --chat--input--border-active: 0;\n  --chat--input--left--panel--width: 2rem;\n\n  /* Button Styles */\n  --chat--button--padding: calc(var(--chat--spacing) * 5 / 8) var(--chat--spacing);\n  --chat--button--border-radius: var(--chat--border-radius);\n  --chat--button--font-size: 1rem;\n  --chat--button--line-height: 1;\n  --chat--button--color--primary: var(--chat--color-light);\n  --chat--button--background--primary: var(--chat--color--secondary);\n  --chat--button--border--primary: none;\n  --chat--button--color--primary--hover: var(--chat--color-light);\n  --chat--button--background--primary--hover: var(--chat--color-secondary-shade-50);\n  --chat--button--border--primary--hover: none;\n  --chat--button--color--primary--disabled: var(--chat--color-light);\n  --chat--button--background--primary--disabled: #81bbb1;\n  --chat--button--border--primary--disabled: none;\n  --chat--button--color--secondary: var(--chat--color-light);\n  --chat--button--background--secondary: hsl(0, 0%, 58%);\n  --chat--button--border--secondary: none;\n  --chat--button--color--secondary--hover: var(--chat--color-light);\n  --chat--button--background--secondary--hover: hsl(0, 0%, 51%);\n  --chat--button--border--secondary--hover: none;\n  --chat--button--color--secondary--disabled: var(--chat--color-light);\n  --chat--button--background--secondary--disabled: hsl(0, 0%, 78%);\n  --chat--button--border--secondary--disabled: none;\n  --chat--close--button--color-hover: var(--chat--color--primary);\n\n  /* Send and File Buttons */\n  --chat--input--send--button--background: var(--chat--color-white);\n  --chat--input--send--button--color: var(--chat--color--secondary);\n  --chat--input--send--button--background-hover: var(--chat--color--primary-shade-50);\n  --chat--input--send--button--color-hover: var(--chat--color-secondary-shade-50);\n  --chat--input--file--button--background: var(--chat--color-white);\n  --chat--input--file--button--color: var(--chat--color--secondary);\n  --chat--input--file--button--background-hover: var(--chat--input--file--button--background);\n  --chat--input--file--button--color-hover: var(--chat--color-secondary-shade-50);\n  --chat--files-spacing: 0.25rem;\n\n  /* Body and Footer */\n  --chat--body--background: var(--chat--color-light);\n  --chat--footer--background: var(--chat--color-light);\n  --chat--footer--color: var(--chat--color-dark);\n}\n\n\n/* You can override any class styles, too. Right-click inspect in Chat UI to find class to override. */\n.chat-message {\n\tmax-width: 50%;\n}",
          "responseMode": "streaming"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.4,
      "position": [
        -352,
        32
      ],
      "id": "e2ee0c9f-b897-4bb8-9e5b-0171001e3d03",
      "name": "When chat message received"
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "SELECT concat('SHOW CREATE TABLE `', TABLE_NAME, '`;') AS QUERIES, concat('SELECT * from `', TABLE_NAME, '` LIMIT 3;') AS SAMPLE\nFROM information_schema.tables where TABLE_SCHEMA LIKE '%archive%' and TABLE_TYPE LIKE '%BASE TABLE%';",
        "options": {}
      },
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.5,
      "position": [
        -160,
        688
      ],
      "id": "cf39351d-4a82-491f-8258-b03c35db48ba",
      "name": "Cari schema",
      "credentials": {
        "mySql": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -384,
        688
      ],
      "id": "e7836fbd-6899-41e8-9e10-e190316b66b8",
      "name": "Manual eksekusi schema db"
    },
    {
      "parameters": {
        "mode": "insert",
        "tableName": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1.3,
      "position": [
        944,
        608
      ],
      "id": "82a26dfa-1d6d-4d79-aaa4-028dd34e2034",
      "name": "Supabase Vector Store",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "typeVersion": 1.1,
      "position": [
        1056,
        864
      ],
      "id": "4de27648-c053-4f6a-bea7-f87edeb11f2f",
      "name": "Default Data Loader"
    },
    {
      "parameters": {
        "mode": "combine",
        "combineBy": "combineAll",
        "options": {}
      },
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        624,
        736
      ],
      "id": "d102a72e-4154-45e0-94ff-afd2c5b6761b",
      "name": "Merge",
      "alwaysOutputData": false,
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        144,
        608
      ],
      "id": "6e487e57-a9dc-4e27-a5f0-8a69ea1c752d",
      "name": "Loop Over Items"
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "{{ $json.QUERIES }}",
        "options": {}
      },
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.5,
      "position": [
        416,
        624
      ],
      "id": "fd9598f8-40ec-45b9-9203-d5ca5c09b56e",
      "name": "Table Schema",
      "credentials": {
        "mySql": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "description": "Panggil tools ini \"Call_MYSQL\" untuk melakukan query data ke database dari query yang dihasilkan agent.\n\nInput berupa query MYSQL, masukan ke workflow inputs.",
        "workflowId": {
          "__rl": true,
          "value": "SFjryqhViQgeeRIi",
          "mode": "list",
          "cachedResultName": "My Sub-Workflow 1",
          "cachedResultUrl": "/workflow/SFjryqhViQgeeRIi"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {},
          "matchingColumns": [],
          "schema": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        160,
        208
      ],
      "id": "caa06c0a-892c-4e48-b0d1-62743fd05736",
      "name": "Call_MYSQL"
    },
    {
      "parameters": {
        "mode": "retrieve-as-tool",
        "toolDescription": "Vector store ini berisi representasi schema database MySQL yang digunakan untuk membantu sistem dalam menghasilkan query SQL secara akurat.\n\nSetiap dokumen di dalam vector store merepresentasikan satu tabel dalam database, yang mencakup:\n\n* Nama tabel\n* Daftar kolom beserta tipe data dan constraint (PRIMARY KEY, FOREIGN KEY, dll)\n* Relasi antar tabel (foreign key)\n* Deskripsi tabel (jika tersedia)\n* Contoh data (sample rows) untuk membantu memahami konteks isi tabel\n\nTujuan utama vector store ini adalah:\n\n* Membantu model memahami struktur database\n* Mengidentifikasi tabel dan kolom yang relevan terhadap pertanyaan pengguna\n* Mendukung pembuatan query SQL yang tepat dan efisien\n\nSaat digunakan dalam sistem RAG:\n\n* Sistem akan melakukan pencarian semantik terhadap vector store berdasarkan pertanyaan pengguna\n* Dokumen schema yang paling relevan akan dikembalikan sebagai konteks\n* Model akan menggunakan konteks tersebut untuk menyusun query SQL\n\nCatatan penting:\n\n* Informasi dalam vector store adalah satu-satunya sumber kebenaran untuk schema database\n* Model tidak boleh mengasumsikan struktur di luar yang tersedia dalam vector store\n* Relasi antar tabel harus digunakan sebagai acuan dalam melakukan JOIN\n\nFormat umum dokumen dalam vector store:\n\nTable: <nama_tabel>\n\nDescription: <deskripsi tabel>\n\nColumns:\n\n* <nama_kolom> (<tipe_data>, constraint)\n\nRelationships:\n\n* <kolom> \u2192 <tabel_referensi>.<kolom>\n\nSample Data:\n\n* (nilai1, nilai2, ...)\n\nDokumen disusun agar mudah dipahami secara semantik oleh model dan optimal untuk proses embedding.",
        "tableName": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "topK": 20,
        "useReranker": true,
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1.3,
      "position": [
        352,
        224
      ],
      "id": "f494b5dc-d674-4ee6-a4ea-95cbc7b0fe71",
      "name": "VS",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelName": "rerank-multilingual-v3.0"
      },
      "type": "@n8n/n8n-nodes-langchain.rerankerCohere",
      "typeVersion": 1,
      "position": [
        592,
        352
      ],
      "id": "a0765de6-bf30-41b5-b4c3-c94e02b667b9",
      "name": "Reranker Cohere",
      "credentials": {
        "cohereApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "contextWindowLength": 10
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        16,
        208
      ],
      "id": "f740b576-4daa-4e88-bd01-82d884f452c8",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        -656,
        288
      ],
      "id": "868f9203-bb69-442a-aa9c-6a87b9da45e8",
      "name": "Google Gemini Chat Model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "{{ $json.SAMPLE }}",
        "options": {}
      },
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.5,
      "position": [
        400,
        752
      ],
      "id": "f083da9c-cd55-40ad-9e9e-1abbd3053e1b",
      "name": "Sample Data",
      "credentials": {
        "mySql": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "SELECT concat('SHOW CREATE TABLE `', TABLE_NAME, '`;') AS QUERIES, concat('SELECT * from `', TABLE_NAME, '` LIMIT 3;') AS SAMPLE\nFROM information_schema.tables where TABLE_SCHEMA LIKE '%archive%' and TABLE_TYPE LIKE '%BASE TABLE%' and TABLE_NAME LIKE '%stores%';",
        "options": {}
      },
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.5,
      "position": [
        -384,
        896
      ],
      "id": "9f87423c-f874-4f5a-b7ca-28364ee89e60",
      "name": "Cari schema1",
      "credentials": {
        "mySql": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1",
          "mode": "list",
          "cachedResultName": "gpt-4.1"
        },
        "builtInTools": {},
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [
        -128,
        208
      ],
      "id": "2e597e03-8db3-40f5-83d7-c4fddcd355b8",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1.2,
      "position": [
        880,
        864
      ],
      "id": "e292dc18-9ca0-4051-96d0-c2660e1bcfc2",
      "name": "Embeddings OpenAI",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "claude-opus-4-6",
          "mode": "list",
          "cachedResultName": "Claude Opus 4.6"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "typeVersion": 1.3,
      "position": [
        -656,
        432
      ],
      "id": "13d40b97-e546-4d14-a9a5-52bfbffa3ede",
      "name": "Anthropic Chat Model",
      "credentials": {
        "anthropicApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "tableName": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1.3,
      "position": [
        1392,
        928
      ],
      "id": "5a1a6be6-15a3-4881-b069-0c50e37bf390",
      "name": "Supabase Vector Store1",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "typeVersion": 1.1,
      "position": [
        1584,
        1152
      ],
      "id": "74647a16-3703-4a54-b0d5-20e0c1ecc8f2",
      "name": "Default Data Loader1"
    },
    {
      "parameters": {
        "modelName": "models/gemini-embedding-001"
      },
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "typeVersion": 1,
      "position": [
        1360,
        1136
      ],
      "id": "346a32f8-69b8-49ba-98e8-9f75f8879b43",
      "name": "Embeddings Google Gemini",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "retrieve-as-tool",
        "toolDescription": "Vector store ini berisi representasi schema database MySQL yang digunakan untuk membantu sistem dalam menghasilkan query SQL secara akurat.\n\nSetiap dokumen di dalam vector store merepresentasikan satu tabel dalam database, yang mencakup:\n\n* Nama tabel\n* Daftar kolom beserta tipe data dan constraint (PRIMARY KEY, FOREIGN KEY, dll)\n* Relasi antar tabel (foreign key)\n* Deskripsi tabel (jika tersedia)\n* Contoh data (sample rows) untuk membantu memahami konteks isi tabel\n\nTujuan utama vector store ini adalah:\n\n* Membantu model memahami struktur database\n* Mengidentifikasi tabel dan kolom yang relevan terhadap pertanyaan pengguna\n* Mendukung pembuatan query SQL yang tepat dan efisien\n\nSaat digunakan dalam sistem RAG:\n\n* Sistem akan melakukan pencarian semantik terhadap vector store berdasarkan pertanyaan pengguna\n* Dokumen schema yang paling relevan akan dikembalikan sebagai konteks\n* Model akan menggunakan konteks tersebut untuk menyusun query SQL\n\nCatatan penting:\n\n* Informasi dalam vector store adalah satu-satunya sumber kebenaran untuk schema database\n* Model tidak boleh mengasumsikan struktur di luar yang tersedia dalam vector store\n* Relasi antar tabel harus digunakan sebagai acuan dalam melakukan JOIN\n\nFormat umum dokumen dalam vector store:\n\nTable: <nama_tabel>\n\nDescription: <deskripsi tabel>\n\nColumns:\n\n* <nama_kolom> (<tipe_data>, constraint)\n\nRelationships:\n\n* <kolom> \u2192 <tabel_referensi>.<kolom>\n\nSample Data:\n\n* (nilai1, nilai2, ...)\n\nDokumen disusun agar mudah dipahami secara semantik oleh model dan optimal untuk proses embedding.",
        "tableName": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "topK": 20,
        "useReranker": true,
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1.3,
      "position": [
        1360,
        464
      ],
      "id": "61a28cf6-970e-40f9-bdec-aa5cd1a1a1f7",
      "name": "VS1",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelName": "rerank-multilingual-v3.0"
      },
      "type": "@n8n/n8n-nodes-langchain.rerankerCohere",
      "typeVersion": 1,
      "position": [
        1552,
        640
      ],
      "id": "c71da05e-d5d7-4c6f-9629-630d0895293b",
      "name": "Reranker Cohere1",
      "credentials": {
        "cohereApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        224,
        864
      ],
      "id": "40663288-1f10-4745-bb40-b305e9f69067",
      "name": "Wait"
    }
  ],
  "connections": {
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cari schema": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual eksekusi schema db": {
      "main": [
        [
          {
            "node": "Cari schema",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "main",
            "index": 0
          },
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Table Schema",
            "type": "main",
            "index": 0
          },
          {
            "node": "Sample Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Table Schema": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call_MYSQL": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "VS": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Reranker Cohere": {
      "ai_reranker": [
        [
          {
            "node": "VS",
            "type": "ai_reranker",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        []
      ]
    },
    "Sample Data": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Cari schema1": {
      "main": [
        []
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "ai_embedding",
            "index": 0
          },
          {
            "node": "VS",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        []
      ]
    },
    "Default Data Loader1": {
      "ai_document": [
        [
          {
            "node": "Supabase Vector Store1",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Google Gemini": {
      "ai_embedding": [
        [
          {
            "node": "Supabase Vector Store1",
            "type": "ai_embedding",
            "index": 0
          },
          {
            "node": "VS1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Reranker Cohere1": {
      "ai_reranker": [
        [
          {
            "node": "VS1",
            "type": "ai_reranker",
            "index": 0
          }
        ]
      ]
    },
    "Supabase Vector Store": {
      "main": [
        []
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "versionId": "f7b66292-30f2-421c-8c50-ca7a0f1bc9df",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "sIUB3a6ADlaxWaOY",
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Fadhil. Uses agent, chatTrigger, mySql, vectorStoreSupabase. Chat trigger; 25 nodes.

Source: https://github.com/RodaBelakang/hohoho/blob/2aee60dac1f86b5a39e418f01f369c213f2e7508/nah.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow acts as a 24/7 sales agent, engaging leads across WhatsApp, Instagram, Facebook, Telegram, and your website. It intelligently transcribes audio messages, answers questions using a knowle

Chat Trigger, Memory Postgres Chat, Tool Workflow +20
AI & RAG

• Create a Google Drive folder to watch. • Connect your Google Drive account in n8n and authorize access. • Point the Google Drive Trigger node to this folder (new/modified files trigger the flow).

Agent, Chat Trigger, Memory Buffer Window +14
AI & RAG

⚡AI-Powered YouTube Playlist & Video Summarization and Analysis v2. Uses lmChatGoogleGemini, agent, splitOut, chainLlm. Chat trigger; 72 nodes.

Google Gemini Chat, Agent, Chain Llm +11
AI & RAG

This n8n workflow transforms entire YouTube playlists or single videos into interactive knowledge bases you can chat with. Ask questions and get summaries without needing to watch hours of content. 🔗

Google Gemini Chat, Agent, Chain Llm +11
AI & RAG

Agente_RAG. Uses supabase, embeddingsOpenAi, documentDefaultDataLoader, textSplitterCharacterTextSplitter. Chat trigger; 50 nodes.

Supabase, OpenAI Embeddings, Document Default Data Loader +9