Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Excel till Supabase: rensad, sökbar data

Rickard Andersson Partner, Nodenordic.se

Dina data är inte ”dåliga”. De sitter bara fast i kalkylark som aldrig var byggda för felfri rapportering, snabba sökningar eller tillförlitliga dashboards. En enda felplacerad HTML-tagg, ett märkligt Excel-datum eller en duplicerad rad och plötsligt litar ingen på siffrorna.

Det här är den typen av röra som marketing ops stöter på vid lead-rensningar, och som dataanalytiker känner av när varje dashboard kräver manuella korrigeringar. Till och med småföretagare hamnar där eftersom Excel är standardvalet. Den här Supabase-dataautomationen tar de där verkliga kalkylarken och gör om dem till strukturerade, sökbara poster du faktiskt kan använda.

Du får se hur arbetsflödet hämtar rader från Excel, normaliserar dem, skapar OpenAI-embeddings och skriver allt till Supabase så att sökning och rapportering blir pålitliga.

Så fungerar den här automatiseringen

Här är hela arbetsflödet du kommer att sätta upp:

n8n Workflow Template: Excel till Supabase: rensad, sökbar data

Varför det här spelar roll: Excel-data du inte kan lita på

När team på golvet har sitt dagliga arbete i Excel får du det du får: inkonsekventa kolumner, inklistrad text med dold markup, ”datum” som importeras som siffror och dubbletter som tyst blir fler med tiden. Sedan ber någon om en rapport, eller så försöker teamet bygga en sökbar kunskapsbas, och allt saktar ner. Du lägger timmar på att städa, städa om och förklara varför förra veckans totalsumma inte matchar den här veckans. Värst är den mentala belastningen. Folk slutar lita på datan, så de slutar använda den, vilket gör att kalkylarkskaoset fortsätter vinna.

Friktionen byggs på. Här är var det oftast faller isär.

  • Rader kommer in med inkonsekvent formatering, så enkel filtrering och gruppering ger konstiga resultat.
  • Dubbletter slinker igenom eftersom ”samma post” sällan ser identisk ut i Excel.
  • Manuell rensning blir en återkommande uppgift som stjäl fokus från analys och beslutsfattande.
  • Du kan inte göra modern sökning eller AI-återhämtning utan normaliserade textfält som är redo för embeddings.

Det du bygger: pipeline för rensning från Excel till Supabase + embeddings

Det här arbetsflödet tar ditt Excel-ark ”som det är” och gör om det till felfria, strukturerade poster i Supabase, med embeddings genererade av OpenAI så att innehållet är redo för AI-sök och RAG-liknande appar. Det startar när du kör det i n8n (eller senare kan du byta trigger till ett uppladdningsdrivet flöde). n8n hämtar rader från en specifik arbetsbok och ett specifikt kalkylblad, och kombinerar dem sedan med det som redan finns lagrat i Supabase så att du slipper importera samma data igen. Därefter kommer den praktiska rensningen: ta bort markup från text, fixa Excel-datummärkligheter och standardisera fält så att de beter sig korrekt i frågor. Efter det delar arbetsflödet upp poster i batchar, skickar innehåll till separata ”fråga”- och ”svar”-spår, genererar embeddings för varje, slår ihop allt igen och lägger in en slutlig berikad rad i Supabase.

Arbetsflödet börjar med att hämta Excel-rader och läsa in befintliga rader från Supabase, så att du jobbar med hela bilden. Sedan rensar det texten och förbereder embedding-payloads till OpenAI. Till sist skriver det en strukturerad post till Supabase (inklusive vektorer) så att du kan söka med fulltextsökning och likhetssökning.

Det du bygger

Förväntade resultat

Säg att teamet lägger in en ny Excel-export varje vardag med cirka 300 rader. Manuellt är det lätt att lägga kanske 10 minuter på att fixa datum, 20 minuter på att ta bort skräpformatering och ytterligare 30 minuter på att deduplicera och omformatera innan du ens laddar in den i en databas. Det är ungefär en timme per dag, plus den där återkommande missen ”vi laddade fel version”. Med det här arbetsflödet triggar du körningen, låter n8n rensa och skapa embeddings i bakgrunden, och din Supabase-tabell uppdateras utan den repetitiva rensningsrundan.

Innan du börjar

  • n8n-instans (prova n8n Cloud gratis)
  • Självhosting om du föredrar det (Hostinger fungerar bra)
  • Microsoft Excel för åtkomst till arbetsboken och kalkylbladet.
  • Supabase för att lagra rensade rader och vektorer.
  • OpenAI API-nyckel (hämta den från API keys-sidan i OpenAI-dashboarden)

Kunskapsnivå: Medel. Du kopplar konton, mappar några fält och verifierar Supabase-tabellens schema en gång.

Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).

Steg för steg

Kör arbetsflödet när ett nytt ark är klart. I den medföljande versionen startar det med en manuell trigger, vilket är perfekt för test. När du känner dig trygg kan du gå över till en filbaserad trigger (till exempel Drive) så att det körs när den senaste Excel-filen finns tillgänglig.

Hämta nya rader och jämför mot det som redan är lagrat. n8n läser rader från Microsoft Excel, hämtar befintliga rader från Supabase och slår sedan ihop dessa flöden så att du kan avgöra vad som är nytt, vad som har ändrats och vad som ska hoppas över.

Rensa, normalisera och routa texten för embeddings. Arbetsflödet tar bort markup från textfält och standardiserar innehållet. Därefter batchar det rader och routar dem till separata spår för ”fråga” och ”svar” så att varje del får sin egen embedding-payload.

Skapa embeddings och lägg in berikade poster i Supabase. OpenAI skapar vektorerna (med en embeddings-modell som text-embedding-3-small). n8n slår ihop de berikade fälten till en enda post och lägger in den i en Supabase-tabell som är utformad för felfri rapportering och snabb sökning.

Du kan enkelt justera vilka fält som rensas och vilken måltabell som används så att det matchar ditt schema. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: konfigurera den manuella triggern

Konfigurera den manuella triggern som startar arbetsflödet och initierar de parallella importgrenarna.

  1. Lägg till noden Manual Execution Start som din trigger.
  2. Anslut Manual Execution Start till både Fetch Sheet Rows och Retrieve Stored Rows så att de körs parallellt.
  3. Bekräfta det parallella flödet: Manual Execution Start skickar utdata till både Fetch Sheet Rows och Retrieve Stored Rows parallellt.

Steg 2: anslut Microsoft Excel

Hämta källdata från Excel för att driva resten av pipelinen.

  1. Öppna Fetch Sheet Rows och ställ in Resourceworksheet.
  2. Ställ in OperationreadRows.
  3. Välj er Excel-Workbook och Worksheet i listorna.
  4. Inloggning krävs: anslut era Microsoft Excel-inloggningsuppgifter.

⚠️ Vanlig fallgrop: om kalkylbladet inte innehåller en UUID-kolumn kommer Combine Import Data inte att matcha poster korrekt.

Steg 3: anslut Supabase och förbered databasen

Läs in befintliga rader för jämförelse och säkerställ att databastabellen finns för insert-operationer.

  1. Öppna Retrieve Stored Rows och ställ in Table IDexcel_records.
  2. Ställ in OperationgetAll och aktivera Return All till true.
  3. Inloggning krävs: anslut era Supabase-inloggningsuppgifter i Retrieve Stored Rows.
  4. Om ni behöver skapa tabellen, aktivera Utility: Create Supabase Table och kör den en gång via er Postgres-anslutning.
  5. Inloggning krävs: anslut era Postgres-inloggningsuppgifter i Utility: Create Supabase Table.

Låt Utility: Create Supabase Table vara inaktiverad efter den initiala konfigureringen för att undvika oavsiktliga drop- och recreate-operationer.

Steg 4: kombinera och rensa importerad data

Slå ihop inkommande Excel-rader med befintliga databasrader och normalisera samt rensa textfälten.

  1. Konfigurera Combine Import Data med Mode satt till combine, Join Mode satt till keepNonMatches och Fields to Match satt till UUID.
  2. Säkerställ att Output Data From är satt till input1.
  3. I Strip Markup Text behåller ni den medföljande JavaScript-koden för att normalisera datum och rensa fälten Question och Answer.
  4. Verifiera att Iterate Records är ansluten efter Strip Markup Text för att bearbeta objekt i batchar.

Strip Markup Text skapar Question_clean, Answer_clean, has_Question och has_Answer—de krävs för routning- och embedding-stegen.

Steg 5: konfigurera embedding-förfrågningarna

Routa poster baserat på texttillgänglighet och skicka sedan Question- och Answer-text till OpenAI för embeddings.

  1. I Route by Condition behåller ni de två reglerna som utvärderar ={{ $json.has_Question }} och ={{ $json.has_Answer }} med All Matching Outputs aktiverat.
  2. I Prepare Question Payload behåller ni JavaScript-koden som matar ut text_to_embed från Question_clean.
  3. I Prepare Answer Payload behåller ni JavaScript-koden som matar ut text_to_embed från Answer_clean.
  4. I Question Embedding Request ställer ni in URL till https://api.openai.com/v1/embeddings och JSON Body till ={ "model": "text-embedding-3-small", "input": "{{ $json.text_to_embed }}", "encoding_format": "float" }.
  5. I Answer Embedding Request använder ni samma URL och JSON Body som ovan.
  6. Inloggning krävs: lägg till era OpenAI API-autentiseringsheaders i både Question Embedding Request och Answer Embedding Request.

⚠️ Vanlig fallgrop: saknade OpenAI-headers för auktorisering orsakar 401-fel och gör att embeddings inte returneras.

Steg 6: sammanställ och infoga poster i Supabase

Slå ihop embeddings med originaldata och skriv den slutliga raden till databasen.

  1. Bekräfta att Consolidate Streams har Number of Inputs satt till 3 för att ta emot originaldata plus två embeddings.
  2. Lämna koden i Assemble DB Insert Fields som den är för att kombinera Question_embedding och Answer_embedding med originalposten.
  3. I Insert Row to Database ställer ni in Table ID till excel_records.
  4. Mappa fälten exakt som visat, inklusive uttryck som ={{ $json.UUID }}, ={{ $json['Creation Date'] }} och ={{ $json.Question_embedding }}.
  5. Inloggning krävs: anslut era Supabase-inloggningsuppgifter i Insert Row to Database.

Eftersom Iterate Records loopar data tillbaka till Insert Row to Database, säkerställ att er tabell har en unik constraint på UUID för att förhindra dubbletter.

Steg 7: testa och aktivera ert arbetsflöde

Kör ett kontrollerat test för att bekräfta att dataflöde, embeddings och insert-operationer fungerar korrekt.

  1. Klicka på Execute Workflow för att köra Manual Execution Start och se hur både Fetch Sheet Rows och Retrieve Stored Rows körs parallellt.
  2. Verifiera att Question Embedding Request och Answer Embedding Request returnerar data[0].embedding-arrayer.
  3. Bekräfta att Insert Row to Database skapar rader i excel_records med ifyllda Question_embedding och Answer_embedding.
  4. Inaktivera Utility: Create Supabase Table efter lyckade tester och växla sedan arbetsflödet till Active för produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Felsökningstips

  • Autentisering för Microsoft Excel kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera, kontrollera det anslutna kontot under Credentials i n8n och bekräfta först att arbetsboken går att komma åt.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du redigera utdata för alltid.

Snabba svar

Hur lång tid tar det att sätta upp den här Supabase-dataautomationen?

Cirka 45 minuter om Supabase och OpenAI är redo.

Krävs det kodning för den här Supabase-dataautomationen?

Nej. Du kopplar mest konton och bekräftar att fältmappningen matchar ditt ark.

Är n8n gratis att använda för det här arbetsflödet för Supabase-dataautomation?

Ja. n8n har ett gratis självhostat alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna med OpenAI API-kostnader, som vanligtvis bara är några dollar i månaden för små importer.

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för Supabase-dataautomation för andra användningsfall?

Ja, ganska enkelt. Om ditt ark använder andra kolumnnamn justerar du fältmappningen i steget ”Assemble DB Insert Fields” så att Supabase får rätt struktur. Om du inte har fält för fråga/svar kan du hoppa över Switch-routingen och i stället skapa embeddings för ett enda kombinerat textfält. Och om Supabase inte är din destination kan du byta insert-steget mot Postgres eller en annan databas, samtidigt som du behåller samma upplägg för rensning och embeddings.

Varför misslyckas min Supabase-anslutning i det här arbetsflödet?

Oftast beror det på en utgången eller felaktig API-nyckel, eller att projekt-URL:en inte matchar nyckeln du klistrade in i n8n. Kontrollera också att tabellen finns och att service role-nyckeln används när insert kräver högre behörigheter. Om du aktiverade pgvector, bekräfta att tillägget är aktivt i rätt databas. En extra fallgrop: fälttyper. Om tabellen förväntar sig en vektorkolumn och du råkar lägga in ren text kommer Supabase att neka insert.

Vilka volymer kan det här arbetsflödet för Supabase-dataautomation hantera?

Det beror på din n8n-plan och OpenAI:s rate limits, men hundratals till några tusen rader per körning är realistiskt för de flesta team.

Är den här Supabase-dataautomationen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här arbetsflödet behöver batchning, förgrening (fråga vs. svar) och att slå ihop strömmar, vilket blir klumpigt och dyrt i många no-code-verktyg. n8n ger dig också mer kontroll över hur du rensar datan innan du skapar embeddings, vilket spelar roll om dina Excel-exporter är stökiga. Om du självhostar betalar du inte per körd uppgift på samma sätt. Zapier eller Make kan fortfarande fungera bra för en liten pipeline som bara kopierar rader från A till B. Om du är osäker, prata med en automationsexpert och beskriv din volym och ditt schema.

När det här väl rullar kan Excel fortsätta vara ”så jobbet blir gjort”, medan Supabase blir systemet du faktiskt kan söka i, rapportera på och bygga AI ovanpå. Ärligt talat är det den bästa typen av uppgradering: nyttig nu och skalbar senare.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal