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

Supabase + Google Drive: bolagsprofiler klara

Rickard Andersson Partner, Nodenordic.se

Företagsresearch ser enkelt ut tills du faktiskt gör det. Du öppnar en webbplats, kopierar några rader till ett dokument, plockar ”Om oss”-text, letar efter tjänster och slutar på något sätt med tre olika versioner av samma ”profil” utspridda över flikar och kalkylark.

Tillväxtmarknadsförare märker det när de behöver snabb positioneringsinsikt. En sales ops-ansvarig märker det när säljare fortsätter logga röriga anteckningar. Och om du driver en byrå gör du det här sannolikt för varje ny kund och konkurrent. Den här Supabase Drive intel-automationen gör en URL till en felfri, återanvändbar företagsprofil.

Du får se hur workflowet fångar en webbplats, väljer grundläggande eller djup skrapning, extraherar konsekventa fält med AI, lagrar allt i Supabase och sparar en JSON-backup i Google Drive för att du ska kunna känna dig trygg.

Så fungerar automationen

Hela n8n-workflowet, från trigger till slutresultat:

n8n Workflow Template: Supabase + Google Drive: bolagsprofiler klara

Problemet: företagsresearch blir copy-paste-kaos

De flesta team misslyckas inte med research för att de är lata. De misslyckas för att processen är skör. En person skriver ”B2B SaaS-plattform”, en annan skriver ”mjukvaruverktyg” och en tredje klistrar in hela startsidan i ett anteckningsfält. Sedan ber någon om en lista med konkurrenter eller SEO-nyckelord och du inser att informationen är utspridd, inkonsekvent och svår att jämföra. Det är också långsamt. Gör du detta 10 gånger på en vecka har du bränt en eftermiddag på att bara flytta text, utan att lära dig något nytt.

Det blir snabbt mycket. Här är var det oftast faller isär i verkligt arbete.

  • Du lägger cirka 20–30 minuter per företag på att bara hitta samma ”kärnfakta” igen.
  • Profiler blir ofullständiga, så du återvänder till samma webbplatser senare och gör om jobbet.
  • Fria anteckningar går dåligt att söka i, vilket gör att du inte kan filtrera pålitligt på nisch, ICP eller tjänster.
  • Det finns ingen hållbar backup, så om ett ark skrivs över eller ett verktyg ändras är ”källan” borta.

Lösningen: gör valfri URL till strukturerad intel i Supabase (med Drive-backuper)

Det här workflowet börjar med en enkel formulärinlämning där du klistrar in en webbplats-URL och väljer ”grundläggande” eller ”djup” skrapning. Därifrån samlar det in innehåll från webbplatsen (antingen en snabbare crawl för grundläggande, eller en mer omfattande Firecrawl-baserad skrapning för djup), och använder sedan AI-extraktion för att omvandla rörig webbtext till en strukturerad företagsprofil. Profilen innehåller praktiska fält du kan återanvända, som mission/positionering, tjänster, kontaktuppgifter och sociala länkar (när de finns), plus SEO-nyckelord. Till sist lagras den strukturerade posten i Supabase så att du kan söka, filtrera och återanvända den, och en fullständig JSON-kopia arkiveras i Google Drive så att du alltid har en portabel backup. Om du väljer djup-läge kör den också en andra AI-agent för att hitta konkurrenter och sparar dem i Supabase som länkade poster.

Workflowet startar när en URL når webhook-formuläret. En router väljer skrapdjup, och AI normaliserar resultatet till konsekventa JSON-fält. Supabase blir ditt ”system of record”, och Google Drive håller råa JSON-filer för spårbarhet och enkel delning.

Vad du får: automation vs. resultat

Exempel: så här ser det ut

Säg att du researchar 15 företag för en nischad landningssida och en mindre outbound-lista. Manuellt, om du lägger cirka 25 minuter per webbplats på att skumma sidor, kopiera anteckningar och skapa ”någon slags” profil, blir det ungefär 6 timmar. Med det här workflowet skickar du in varje URL på under en minut, väntar på bearbetningen och granskar den strukturerade profilen i Supabase. Även om du lägger 3 minuter på att rimlighetskontrollera varje post hamnar du närmare en timme totalt, och dessutom får du en databas du kan återanvända nästa månad.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Självhostningsalternativ om du föredrar det (Hostinger fungerar bra)
  • Supabase för att lagra strukturerade företagsposter.
  • Google Drive för att arkivera JSON-backuper automatiskt.
  • Tavily API-nyckel (hämta den i din Tavily-dashboard) för konkurrentidentifiering i djup-läge.

Kunskapsnivå: Medel. Du kopplar in behörigheter, bekräftar tabellnamn i Supabase och uppdaterar en API-nyckel i en HTTP-header.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Formulärinlämningen triggar körningen. Du klistrar in en webbplats-URL och väljer skraptyp (grundläggande eller djup). Det enda valet avgör hur mycket tid och djup du vill ha.

Workflowet routar till rätt skrapare. Grundläggande läge crawlar och samlar in rå webbplatstext, och sedan formar en AI-extraktor det till en förutsägbar JSON-profil. Djup-läget använder Firecrawl-verktyg och webbsök för att skapa en rikare profil, oftast med bättre täckning av tjänster, positionering och kontaktuppgifter.

Strukturerade data sparas i Supabase. Workflowet skriver företagsposten till dina företags-tabeller och sparar även relaterade data som sociala länkar och SEO-nyckelord (så att du kan fråga efter dem senare i stället för att begrava dem i anteckningar).

Google Drive får en komplett JSON-backup. Workflowet konverterar profilen till en fil och laddar upp den till en Drive-mapp du väljer. Djup-läget kör också konkurrentidentifiering och lagrar konkurrentrader länkade till company_id.

Du kan enkelt ändra extraktionsschemat så att det matchar dina Supabase-tabeller utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera formulärtriggern

Konfigurera det inkommande formuläret som samlar in webbplatsens URL och inställningar för scraping, och routa sedan begäran baserat på valt läge.

  1. Öppna Form Submission Trigger och ställ in Form Title till profiler.
  2. Ställ in Form Description till create am profile for the company.
  3. Bekräfta att formulärfälten inkluderar Website url och rullgardinsmenyer för Scrapping type , Competitor anaylsis och Social Media scraping med de listade alternativen.
  4. I Route Scrape Mode, behåll regelvillkoren som kontrollerar att ={{ $json['Scrapping type '] }} är lika med basic eller deep scraping.
  5. Koppla Form Submission Trigger till Route Scrape Mode som första exekveringssteg.

⚠️ Vanlig fallgrop: Fältetiketten som används i uttryck är Scrapping type med ett avslutande mellanslag. Om ni ändrar etiketten, uppdatera uttrycken i Route Scrape Mode.

Steg 2: anslut Supabase

Konfigurera Supabase-lagring för företagsprofiler, konkurrenter, sociala länkar och SEO-nyckelord. Det här arbetsflödet använder flera Supabase-noder—säkerställ att de delar samma databasanslutning och schema.

  1. I Store Company Record, ställ in Table till companies och mappa fält med uttryck som ={{ $json.output.company_name }} och ={{ $json.output.about_summary.mission }}.
  2. I Store Basic Profile, ställ in Table till company_basicprofiles och mappa fält med uttryck som ={{ $json.output['Company Summary'] }}.
  3. I Save Social Links, ställ in Table till social_links och mappa company_id till ={{ $('Store Company Record').item.json.id }}.
  4. I Record SEO Keywords, ställ in Table till seo_keywords och mappa company_id till ={{ $json.company_id }} och keyword till ={{ $('Store Company Record').item.json.seo_keywords }}.
  5. I Save Competitor Row, ställ in Table till competitors och mappa company_id till ={{ $('Store Company Record').item.json.id }}.
  6. Inloggningsuppgifter krävs: Anslut era supabaseApi-uppgifter i Save Competitor Row.

Steg 3: konfigurera AI-scraping och parsning

Konfigurera agenten för djup scraping, upptäckt av konkurrenter och tillhörande parsningverktyg för strukturerad dataextraktion.

  1. I Deep Firecrawl Scraper, ställ in Text till ={{ $json['Website url'] }} och behåll Prompt Type som define med hasOutputParser aktiverat.
  2. Säkerställ att Mistral Chat Deep är ansluten som språkmodell för Deep Firecrawl Scraper med Model inställt på mistral-small-latest.
  3. Verifiera att Parse Profile JSON är ansluten som output parser för Deep Firecrawl Scraper; lägg till eventuella LLM-inloggningsuppgifter i Mistral Chat Deep, inte i parsern.
  4. Öppna Web Search Request och ställ in värdet för headern Authorization till er Tavily-token i stället för [CONFIGURE_YOUR_TOKEN]; behåll JSON-body som angivet.
  5. I Discover Competitors, ställ in Text till ={{ $json.name }} {{ $json.location.headquarters }} och behåll Prompt Type som define.
  6. Säkerställ att Mistral Chat Core är ansluten som språkmodell för Discover Competitors med Model inställt på mistral-small-latest.
  7. Bekräfta att Parse Competitor JSON är ansluten som output parser för Discover Competitors; parser-noder lagrar inte inloggningsuppgifter.

Steg 4: konfigurera profilbearbetning och filutdata

Konvertera strukturerade utdata till filer och ladda upp dem till Google Drive, samtidigt som ni hanterar flödet för extrahering av grundprofil.

  1. I Convert Profile File, ställ in Operation till toJson och File Name till ={{ $json.output.company_name }}.
  2. I Upload Detailed File, ställ in Name till ={{ $json.output.company_name }}(detailed) och behåll Drive inställt på My Drive.
  3. Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-uppgifter i Upload Detailed File.
  4. I Basic Web Analyzer, ställ in Text till ={{ $json.data.text }} och säkerställ att Mistral Chat Basic är den anslutna språkmodellen.
  5. I Extract Brand Details, ställ in Text till ={{ $json.output }} och behåll det angivna JSON-schemaexemplet.
  6. I Convert Basic File, ställ in Operation till toJson och File Name till ={{ $json.output.NAME }}.
  7. I Upload Basic File, ställ in Name till ={{ $('Extract Brand Details').item.json.output.NAME }} och behåll Drive inställt på My Drive.
  8. Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-uppgifter i Upload Basic File.

Tips: Om ni planerar att använda den grundläggande scraping-vägen, koppla Route Scrape Mode-utdata for crawlee till er kedja för crawl och analys (till exempel Utility: Crawl Site ContentBasic Web Analyzer).

Steg 5: konfigurera grenar för konkurrenter och SEO

Hantera parallell lagring av konkurrenter, sociala länkar och SEO-nyckelord efter att företagsraden har skapats.

  1. Säkerställ att Deep Firecrawl Scraper skickar utdata till både Store Company Record och Convert Profile File parallellt.
  2. Verifiera att Store Company Record skickar utdata till Discover Competitors, Save Social Links och Record SEO Keywords parallellt.
  3. Bekräfta att Discover Competitors kopplas till Save Competitor Row, och att båda sedan routar till No-Op Terminus för att avsluta arbetsflödet.
  4. Verifiera att Extract Brand Details skickar utdata till både Store Basic Profile och Convert Basic File parallellt.
  5. Använd No-Op Terminus som sista mottagare för alla parallella grenar (konkurrenter, SEO-nyckelord, sociala länkar och filuppladdningar).

Steg 6: testa och aktivera ert arbetsflöde

Kör ett manuellt test, bekräfta utdata och aktivera arbetsflödet för användning i produktion.

  1. Klicka på Execute Workflow och skicka in Form Submission Trigger med en giltig Website url och Scrapping type inställd på deep scraping.
  2. Bekräfta att Store Company Record skapar en rad i companies och att Save Social Links och Record SEO Keywords skriver relaterade poster parallellt.
  3. Verifiera att Save Competitor Row lagrar konkurrentdata i competitors och att Upload Detailed File och Upload Basic File lägger JSON-filer i Google Drive.
  4. När allt fungerar, slå om arbetsflödet till Active för att möjliggöra realtidsbearbetning av nya formulärinskick.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Supabase-credentials kan löpa ut eller kräva specifika behörigheter. Om saker skapar fel, kontrollera först API-inställningarna i ditt Supabase-projekt och n8n:s credential-koppling på varje Supabase-nod.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på tomma svar.
  • Google Drive-uppladdningar misslyckas oftare än man tror när mapp-ID:t är fel eller åtkomst gavs till fel Google-konto. Bekräfta mappens delningsinställningar och vald Drive-credential.

Vanliga frågor

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

Räkna med ungefär en timme om dina Supabase-tabeller redan finns.

Behöver jag kunna koda för att automatisera Supabase Drive intel?

Nej. Du kopplar främst konton och matchar fält mot ditt Supabase-schema. Den enda ”tekniska” delen är att klistra in din Tavily API-nyckel i workflowets header.

Är n8n gratis att använda för det här Supabase Drive intel-workflowet?

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 volym. Du behöver också räkna med AI- och skrapkostnader från leverantörer som Tavily, Mistral eller Firecrawl, beroende på hur djupt du skrapar.

Var kan jag hosta n8n för att köra automationen?

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 klarar n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här Supabase Drive intel-workflowet för ett annat schema och extra fält?

Ja, men gör det medvetet. Uppdatera JSON-schemat som används av extraktions-/parsningsnoderna (structured output parser och information extractor), och spegla sedan ändringarna i Supabase insert-noderna som ”Store Company Record”, ”Store Basic Profile” och de relaterade inserterna för ”Save Social Links” och ”Record SEO Keywords”. Vanliga anpassningar är att lägga till ett ”target_personas”-fält, spara anteckningar om prismodell och dela upp kontakter i en separat tabell. Om du bara ändrar fältnamn på ett ställe får du tomma kolumner och tror att skraparen misslyckades fast den inte gjorde det.

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

Oftast är det fel nyckel eller fel projekt-URL i din Supabase-credential.

Hur många företag klarar den här Supabase Drive intel-automationen?

På n8n Cloud beror det på planens månadsvisa körningar, och djupa skrapningar kan förbruka fler körningar eftersom de kör extra steg som konkurrentidentifiering. Om du självhostar finns inget körningstak från n8n i sig, men serverresurser och skrap-/AI-leverantörernas rate limits blir flaskhalsen. I praktiken börjar många team med några dussin företag per dag och skalar därifrån när de är nöjda med schemat. Om du planerar att processa hundratals per dag, lägg in throttling och håll koll på leverantörsgränser.

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

Ofta, ja, om du bryr dig om strukturerad extraktion och databasskrivningar. n8n är mer bekvämt för flersteglogik (routing mellan grundläggande och djup, parsa JSON, spara till flera tabeller) och straffar dig inte för förgreningar. Självhosting är också viktigt när du vill köra många flöden utan att bevaka task counts. Zapier eller Make kan fortfarande vara bra för ett lätt ”URL in, rad ut”-flöde. Om du är osäker, prata med en automationsexpert och beskriv din volym och dina schemabehov.

När det här väl rullar blir ”researcha ett företag” en snabb infångning, inte en halvtimmes omväg. Workflowet tar hand om de repetitiva delarna, och din Supabase-databas förblir tillräckligt felfri för att du ska kunna lita på den.

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

Launch login modal Launch register modal