Two n8n workflows are included. Together they handle auto-ingestion, AI classification, and timeline organization of your system’s metadata.
| Workflow | Trigger | What it does |
|---|---|---|
| WF-01 — Ingestion Pipeline | Webhook (POST) | Receives content → filters noise → classifies with Claude → stores in Supabase → triggers cross-linking |
| WF-04 — Timeline Engine | Webhook or manual | Scans all entries → clusters by time period → detects narrative arc → bulk-updates timeline_group field |
File: WF-01-ingestion-pipeline.json
Receives any content via webhook and processes it into a structured metadata entry.
Webhook → Extract Content → Filter Messages → Claude Classify → Parse → Supabase Insert → Trigger WF-02 → Respond
Webhook Trigger — Listens on POST /webhook/wf01-ingest. Accepts JSON with text, source, user_id, timestamp, and optional metadata.
Extract Content — Normalizes the payload. Extracts message_text, source, user_id, and timestamp regardless of how the sender structured the POST body.
Filter Messages — Drops messages shorter than 10 characters and slash commands. Prevents noise from getting classified.
claude-sonnet-4-20250514. The prompt extracts:
tags (3–5 keywords)entities (people, companies, concepts)summary (1–2 sentences)narrative_role (symbol |
system | pilot | origin | exploration | setup | conflict | realisation | integration) |
date_estimated (YYYY-MM-DD or YYYY)timeline_group (1974-1990 |
2019-2023 | 2024-2026) |
Parse Classification — Extracts JSON from Claude’s response. Handles markdown code blocks gracefully. Generates a unique file_name (auto_{source}_{timestamp}).
Supabase Insert — Inserts the full classified entry into the metadata table.
Trigger WF-02 — POSTs to the cross-linking workflow endpoint (if you have one). Remove or modify this node if you don’t use WF-02.
{ "status": "success", "file_name": "..." } to the original caller.Send a POST request to your n8n instance:
curl -X POST https://YOUR-N8N-INSTANCE.onrender.com/webhook/wf01-ingest \
-H "Content-Type: application/json" \
-d '{
"text": "Deployed new RLS policies to Supabase. All security checks passing.",
"source": "github",
"user_id": "your-user-id"
}'
messages body parameter in the Claude API Classification node to extract different fields.metadata table.source field is free-text. Use it to track where content came from (slack, github, manual, twitter, etc.).File: WF-04-timeline-engine.json
Scans all entries in your metadata table and assigns them to temporal clusters based on date_estimated.
Webhook → Fetch All Entries → Temporal Clustering → Narrative Arc Detection → Split in Batches → Extract Entry → Update Timeline Group → Respond
Manual Trigger — Webhook on POST /webhook/wf04-timeline. Trigger manually or on a cron schedule (weekly recommended).
Fetch All Entries — Retrieves all rows from the metadata table via Supabase.
date_estimated and assigns a timeline_group:
1974-1990 — Origin/early period2019-2023 — Exploration period2024-2026 — Current/integration periodNarrative Arc Detection — Groups entries by timeline period and maps the dominant narrative role for each. Returns an analysis summary.
Split in Batches — Processes entries one at a time to avoid Supabase rate limits.
Extract Entry — Pulls the current entry from the batch for processing.
Update Timeline Group — Updates the timeline_group field in Supabase for the current entry.
curl -X POST https://YOUR-N8N-INSTANCE.onrender.com/webhook/wf04-timeline
groups object and the corresponding year range checks.narrative_role values are custom — change them to match your project’s taxonomy.WF-01-ingestion-pipeline.jsonpredefinedCredentialType: anthropicApi — add your API key in n8n Settings > Credentials# Required
SUPABASE_URL=https://YOUR-PROJECT.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# Optional — set in n8n credentials manager instead
ANTHROPIC_API_KEY=your-anthropic-key
# n8n configuration
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=your-secure-password
N8N_HOST=0.0.0.0
N8N_PORT=5678
WEBHOOK_URL=https://YOUR-N8N-INSTANCE.onrender.com
Workflow not triggering
https:// and your exact Render domainClaude API returning non-JSON
console.log(content) to the function to see raw output.\``json` wrappers.Supabase insert failing
metadata tableschema/supabase-schema.sql firstn8n sleeping on Render free tier
https://YOUR-N8N.onrender.com/healthz every 5 minutes