AutomationFlowsAI & RAG › Verify Ingestion

Verify Ingestion

02 — Verify ingestion. Uses supabase. Webhook trigger; 3 nodes.

Webhook trigger★★★★☆ complexity3 nodesSupabase
AI & RAG Trigger: Webhook Nodes: 3 Complexity: ★★★★☆ Added:

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": "02 \u2014 Verify ingestion",
  "settings": {
    "executionOrder": "v1"
  },
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "verify-ingestion",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "a2000000-0000-4000-8000-000000000001",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        -400,
        0
      ]
    },
    {
      "parameters": {
        "operation": "getAll",
        "tableId": "documents",
        "returnAll": true,
        "orderBy": "id.asc",
        "filters": {}
      },
      "id": "a2000000-0000-4000-8000-000000000002",
      "name": "Sample Rows",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -180,
        0
      ],
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "notes": "returnAll with executeOnce. Without executeOnce this runs once per input item, and repeated full-table reads carrying 1536 floats per row trip the task runner.",
      "executeOnce": true
    },
    {
      "parameters": {
        "jsCode": "const rows = $input.all().map((r) => r.json);\nconst lengths = rows.map((r) => (r.content ?? '').length);\nconst first = rows[0] ?? {};\nconst embedding = typeof first.embedding === 'string' ? JSON.parse(first.embedding) : first.embedding;\nreturn [{ json: {\n  rowCount: rows.length,\n  embeddingDimensions: Array.isArray(embedding) ? embedding.length : null,\n  chunkChars: { min: Math.min(...lengths), max: Math.max(...lengths), mean: Math.round(lengths.reduce((a,b)=>a+b,0)/lengths.length), total: lengths.reduce((a,b)=>a+b,0) },\n  sampleChunk: (rows[1]?.content ?? first.content ?? '').slice(0, 600),\n  sampleMetadata: rows[1]?.metadata ?? first.metadata ?? null,\n} }];"
      },
      "id": "a2000000-0000-4000-8000-000000000003",
      "name": "Summarise",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        40,
        0
      ],
      "notes": "No executeOnce here: it would clamp the node to the first item and report a row count of 1."
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Sample Rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sample Rows": {
      "main": [
        [
          {
            "node": "Summarise",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

02 — Verify ingestion. Uses supabase. Webhook trigger; 3 nodes.

Source: https://github.com/BhrayanM/rag-engine/blob/main/workflows/02-verify-ingestion.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

Bread-Meat-Delivery. Uses lmChatOpenAi, agent, httpRequest, redis. Webhook trigger; 91 nodes.

OpenAI Chat, Agent, HTTP Request +14
AI & RAG

My workflow 14. Uses supabase, redis, openAi, googleCalendarTool. Webhook trigger; 91 nodes.

Supabase, Redis, OpenAI +13
AI & RAG

Hi! I’m Amanda, a creator of intelligent automations using n8n and Make. I’ve been building AI-powered workflows for over 2 years, always focused on usability and innovation. This one here is very spe

OpenAI Chat, Redis, OpenAI +11
AI & RAG

This workflow ingests incident and playbook content from GitHub into Supabase (including pgvector embeddings with Google Gemini) and, on a webhook trigger, enriches a test incident with historical mat

Document Default Data Loader, Google Gemini Embeddings, HTTP Request +9
AI & RAG

YouTube Agent. Uses supabase, agent, lmChatAnthropic, outputParserStructured. Webhook trigger; 56 nodes.

Supabase, Agent, Anthropic Chat +10