Din databas är full av ”leads” som i praktiken bara är LinkedIn-URL:er. Sedan måste någon öppna varje profil, kopiera namn, roll, företag, kanske en e-postadress, och klistra in allt tillbaka i din tabell (och hoppas att inget skapar fel när LinkedIn lägger till emojis eller märkliga tecken).
Den här Apify NocoDB-integration slår hårdast mot Sales Ops, men marknadsteam som strukturerar eventgästlistor och rekryterare som bygger kandidatpipelines känner av den också. Resultatet är enkelt: dina NocoDB-poster kommer tillbaka med korrekt formaterade namn, aktuella roller, företag och resten av profilfälten du faktiskt behöver.
Nedan ser du hur automatiseringen körs, vad den åtgärdar i din process och vad du behöver för att implementera den utan att göra det till ett IT-projekt.
Så fungerar automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Apify + NocoDB: komplettera LinkedIn-profiler
flowchart LR
subgraph sg0["Manual Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Trigger", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/nocodb.svg' width='40' height='40' /></div><br/>Get Guests with LinkedIn"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Run Apify LinkedIn Scraper"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Wait for Completion"]
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Run Status", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Get Scraper Results"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Transform Data"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/nocodb.svg' width='40' height='40' /></div><br/>Update Guest Success"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Clear Broken LinkedIn URL"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/nocodb.svg' width='40' height='40' /></div><br/>Update Guest - Clear URL"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Handle Scraper Error"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/nocodb.svg' width='40' height='40' /></div><br/>Update Guest - Error Status"]
n12@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n0 --> n1
n6 --> n7
n4 --> n5
n4 --> n10
n12 --> n1
n5 --> n6
n5 --> n8
n3 --> n4
n10 --> n11
n1 --> n2
n8 --> n9
n2 --> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0,n12 trigger
class n4 decision
class n2,n3 api
class n5,n6,n8,n10 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n5,n6,n7,n8,n9,n10,n11 customIcon
Utmaningen: LinkedIn-URL:er utan användbar kontaktdata
Att samla in LinkedIn-profiler är enkelt. Att omvandla dem till felfria, konsekventa kontaktposter är det som i tysthet äter upp din vecka. En person kopierar en rubrik, någon annan hämtar ”nuvarande företag”, en tredje klistrar in ett namn med stylade Unicode-tecken, och plötsligt går exporter sönder eller fält matchar inte. Än värre: det blir snabbt inaktuellt. En lead byter jobb, och ditt CRM eller din databas behåller den gamla rollen eftersom ingen har tid att kontrollera om hundratals profiler. Den manuella versionen misslyckas ärligt talat inte högljutt. Den skapar bara dålig data som saboterar outreach, rapportering och överlämningar.
Det eskalerar snabbt. Här är var det vanligtvis faller isär.
- Kopiera/klistra-berikning stjäl cirka 5 minuter per profil, och det är en ”bra” dag.
- Text från LinkedIn innehåller ofta specialtecken som senare kraschar filter, exporter eller verktyg för kopplad utskick.
- Ofullständiga poster tvingar teamet att gissa eller hoppa över personalisering, vilket syns i svarsfrekvensen.
- Det finns inget tillförlitligt sätt att hantera borttagna eller ogiltiga profiler i stor skala, så dåliga länkar lever kvar i databasen för alltid.
Lösningen: skrapa, sanera och uppdatera NocoDB automatiskt
Det här flödet börjar med att hämta NocoDB-poster som redan har en LinkedIn-URL men saknar berikade fält (som rubrik eller fullständigt namn). För varje post skickar det LinkedIn-URL:en till Apifys LinkedIn-skrap-actor via en HTTP-begäran och väntar sedan på att körningen ska bli klar. När Apify returnerar profildatan mappar flödet de fält du bryr dig om till dina kolumnnamn i NocoDB och städar bort problematisk text så att databasen fortsätter vara exportvänlig. Om en profil är ogiltig eller borttagen så misslyckas den inte bara och går vidare. Den rensar den trasiga länken (eller loggar felorsaken), uppdaterar statusfält för skrapning och håller din tabell tillförlitlig.
Flödet kan köras manuellt när du behöver det, och det kan också köras enligt schema (månadsvis som standard). Det är ett praktiskt sätt att hålla kontaktposter kompletta utan att göra någon till ”personen som kopierar från LinkedIn”.
Vad som förändras: före vs. efter
| Detta elimineras | Effekten du ser |
|---|---|
|
|
Praktisk effekt i verkligheten
Säg att du har 200 eventgäster i NocoDB med bara en LinkedIn-URL. Manuellt blir även 5 minuter per profil ungefär 16 timmar av klickande, kopierande, städning och inklistring. Med det här flödet startar du körningen en gång, låter Apify skrapa i bakgrunden och uppdateringarna hamnar tillbaka i NocoDB automatiskt. Du gör fortfarande en snabb stickprovskontroll av några poster, absolut, men du får tillbaka större delen av en arbetsvecka utan att kompromissa med datakvaliteten.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- NocoDB för att lagra leads och berikade fält.
- Apify för att skrapa LinkedIn-profildata.
- Apify API-token (hämta den i Apify Settings → Integrations → API).
Kompetensnivå: Medel. Du kopplar mest ihop konton och mappar fält, men du bör vara bekväm med att kontrollera kolumnnamn i tabellen och redigera ett filter.
Behöver du hjälp att implementera detta? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Flödets steg
En manuell körning eller ett schema startar det. Du kan klicka på ”Execute Workflow” för en engångsstädning, eller låta Schedule Trigger köra månadsvis för att hålla profiler aktuella.
NocoDB filtreras för att hitta ofullständiga poster. Flödet hämtar rader där LinkedIn-URL finns men viktiga berikningsfält (som rubriken) fortfarande är tomma, så att du inte processar om allt i onödan.
Apify skrapar profilen, sedan validerar n8n resultatet. En HTTP-begäran startar skrapningen, en annan kontrollerar att den är klar, och ett IF-steg skickar flödet vidare till antingen tolkning av resultat eller ren felhantering.
Profilfält mappas, saneras och skrivs tillbaka. Kodsteg formar om Apify-output till dina kolumnnamn i NocoDB (fullständigt namn, nuvarande roll, företag, kompetenser, erfarenheter med mera), och sedan sparar NocoDB-uppdateringsnoderna det tillsammans med status och tidsstämplar.
Du kan enkelt modifiera NocoDB-filtret för att rikta in dig på olika segment (som ”VIP-gäster” eller ”leads tillagda denna vecka”) utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera de manuella och schemalagda triggrarna
Sätt upp både manuella och schemalagda startpunkter så att ni kan köra arbetsflödet vid behov eller med ett återkommande intervall.
- Lägg till triggernoden Manual Launch Start för körningar vid behov.
- Lägg till triggernoden Planned Schedule Start och definiera ert schema i Rule så att det matchar ert önskade intervall.
- Anslut både Manual Launch Start och Planned Schedule Start till Retrieve LinkedIn Guests som visas i arbetsflödet.
Steg 2: Anslut NocoDB och hämta gästposter
Hämta gästposter från NocoDB som har LinkedIn-URL:er och som saknar berikningsdata.
- Lägg till noden Retrieve LinkedIn Guests och ställ in Operation på
getAll. - Ställ in Project ID på
NOCODB_PROJECTIDoch Table påNOCODB_TABLEID. - Ställ in Limit på
15och filtret i Options → Where på(LinkedIn,isnot,null)~and(linkedin_headline,is,null). - Behörighet krävs: Anslut era nocoDbApiToken-uppgifter till Retrieve LinkedIn Guests.
Steg 3: Starta och övervaka LinkedIn-scrapern
Skicka varje LinkedIn-URL till Apify-scrapern och vänta sedan på att körningen blir klar.
- Lägg till Launch LinkedIn Scraper och ställ in URL på
https://api.apify.com/v2/acts/dev_fusion~linkedin-profile-scraper/runs. - Ställ in Method på
POST, aktivera Send Body och ställ in JSON Body på={"profileUrls": ["{{$json.LinkedIn}}"]}. - Behörighet krävs: Anslut era httpQueryAuth-uppgifter till Launch LinkedIn Scraper.
- Lägg till Await Scraper Finish och ställ in URL på
=https://api.apify.com/v2/acts/dev_fusion~linkedin-profile-scraper/runs/{{$json.data.id}}. - Ställ in Query Parameters → waitForFinish på
240och låt Send Query vara aktiverad. - Behörighet krävs: Anslut era httpQueryAuth-uppgifter till Await Scraper Finish.
- Anslut Launch LinkedIn Scraper → Await Scraper Finish → Validate Run Status.
Steg 4: Validera körningen och hantera scraper-utfall
Routa lyckade scraper-körningar till datatolkning och misslyckanden till felhantering.
- I Validate Run Status lägger ni till ett villkor där Left Value är
={{ $json.data.status }}och Right Value ärSUCCEEDED. - Anslut grenen true från Validate Run Status till Fetch Scraper Output.
- Anslut grenen false från Validate Run Status till Process Scraper Failure.
Steg 5: Tolka och mappa scraper-utdata
Hämta Apify-datasetet, validera det och mappa fälten till ert NocoDB-schema.
- I Fetch Scraper Output behåller ni Mode som
runOnceForEachItemoch uppdaterar platshållarna för Apify-token i koden:[CONFIGURE_YOUR_API_KEY]och[CONFIGURE_YOUR_TOKEN]. - Säkerställ att Fetch Scraper Output fortsätter vid fel (den routar till Clear Invalid LinkedIn Link på felutgången).
- Anslut lyckad utgång från Fetch Scraper Output till Map Profile Fields.
- I Map Profile Fields behåller ni Mode som
runOnceForEachItemoch säkerställer att den refererar till Retrieve LinkedIn Guests förId.
Steg 6: Uppdatera poster för lyckade körningar, ogiltiga länkar och fel
Skriv tillbaka mappad LinkedIn-data till NocoDB och hantera trasiga länkar eller scraper-misslyckanden.
- Lägg till Update Guest Record Success och ställ in Operation på
update, Project ID påNOCODB_PROJECTIDoch Table påNOCODB_TABLEID. - Ställ in ID i Update Guest Record Success till
={{$json.Id}}och behåll Data to Send somautoMapInputData. - Behörighet krävs: Anslut era nocoDbApiToken-uppgifter till Update Guest Record Success.
- Anslut Map Profile Fields → Update Guest Record Success.
- För ogiltiga LinkedIn-URL:er ansluter ni felutgången från Fetch Scraper Output till Clear Invalid LinkedIn Link och sedan till Update Record Clear Link (ID:
={{$json.Id}}). - Behörighet krävs: Anslut era nocoDbApiToken-uppgifter till Update Record Clear Link.
- Anslut Process Scraper Failure till Update Record Error Status (ID:
={{$json.Id}}). - Behörighet krävs: Anslut era nocoDbApiToken-uppgifter till Update Record Error Status.
Steg 7: Testa och aktivera ert arbetsflöde
Kör ett manuellt test och verifiera uppdateringar i NocoDB innan ni aktiverar den schemalagda triggern.
- Klicka på Execute Workflow med Manual Launch Start för att köra ett test med en känd LinkedIn-URL.
- Bekräfta att Update Guest Record Success uppdaterar fält som
linkedin_full_nameochlinkedin_headlinevid lyckade körningar. - Verifiera felhanteringen: ogiltiga URL:er ska routas till Clear Invalid LinkedIn Link och uppdateras i Update Record Clear Link; misslyckade körningar ska uppdateras via Update Record Error Status.
- När allt är verifierat aktiverar ni arbetsflödet så att Planned Schedule Start körs med ert valda intervall.
Se upp med
- NocoDB-inloggningsuppgifter kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera, börja med att kontrollera NocoDB → User Settings → API Tokens.
- Om du använder Wait-noder eller extern rendering varierar processtider. Öka väntetiden om nedströmsnoder misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Räkna med cirka en timme om dina NocoDB-fält redan är skapade.
Ja, men någon behöver vara noggrann med fältmappningen. Du kopplar ihop Apify och NocoDB och matchar sedan Apifys output mot dina kolumnnamn i NocoDB.
Ja. n8n har ett gratis alternativ för egen hosting 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 in Apifys API-kostnader (cirka 0,01 USD per skrapad LinkedIn-URL).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Du kan justera filtret ”Retrieve LinkedIn Guests” så att du bara berikar vissa segment (som nya leads eller eventtalare). Om dina kolumnnamn i NocoDB skiljer sig, uppdatera mappningen i steget ”Map Profile Fields” så att värden hamnar i rätt fält. Vanliga justeringar är att ta bort fält du inte använder (publikationer, kompetenser), ändra schemat från månadsvis till veckovis och lägga till en notifiering när ”linkedin_scrape_status” sätts till error.
Oftast beror det på en utgången eller felaktig Apify API-token i HTTP Request-autentiseringen. Det kan också vara ett rate- eller kvotproblem på ditt Apify-konto, särskilt om du kör stora batcher. En till klassiker: om flödet kontrollerar resultat innan Apify-körningen faktiskt är klar ser du tomma output, så utöka väntelogiken för långsammare körningar.
Om du hostar n8n själv finns det ingen körningsgräns (det beror främst på din server och Apifys genomströmning).
Ofta, ja. Det här flödet har formen ”kör → vänta → validera → grena vid fel”, och n8n hanterar den typen av logik snyggt utan att förvandla det till en skör kedja av zap-steg. Du får också ett riktigt alternativ för egen hosting, vilket spelar roll när du bearbetar många poster och inte vill betala per task. Zapier eller Make kan fortfarande vara bra för enklare tvåstegssynkar, men skrap- och berikningspipelines brukar behöva bättre felhantering. Om du är osäker, prata med en automatiseringsexpert och få en snabb rekommendation baserat på din volym och dina verktyg.
När detta väl rullar slutar din NocoDB vara en hög med länkar och blir en användbar lead-databas igen. Sätt upp det, låt det uppdateras enligt schema och gå vidare till arbete som faktiskt kräver din hjärna.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.