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

Apify till PostgreSQL, strukturerade Instagram-leads

Rickard Andersson Partner, Nodenordic.se

Instagram-leadsökning blir rörig snabbt. Du hittar en profil, kopierar en URL, letar efter en e-postadress i bion och klistrar sedan in den någonstans “tillfälligt” som blir permanent.

Det är här automatisering för Apify PostgreSQL leads lönar sig. Digitala marknadsförare märker det när kampanjtidslinjerna blir tajta. Säljteam märker det när uppföljningar glider. Byråägare ser det när “bara en lista till” blir en veckovis brandkårsutryckning.

Det här arbetsflödet gör Instagram-prospektering till ett repeterbart system: skapa smartare sökningar, skrapa profiler, extrahera kontaktuppgifter med AI och upserta strukturerade lead-poster i PostgreSQL. Du får se vad det gör, vad du behöver och hur det beter sig i verkligheten.

Så fungerar den här automatiseringen

Hela n8n-arbetsflödet, från trigger till slutligt resultat:

n8n Workflow Template: Apify till PostgreSQL, strukturerade Instagram-leads

Problemet: Instagram-leads förblir inte rena

Manuell Instagram-prospektering börjar oftast med goda intentioner och slutar med utspridd data. Du plockar profiler från Google-resultat, öppnar var och en, skannar bios efter kontaktuppgifter och klistrar sedan in allt i ett kalkylark som inte är byggt för att förhindra dubbletter. Senare försöker någon “städa upp” innan outreach, vilket innebär att kontrollera profiler igen, fixa trasiga URL:er och gissa vilka poster som är riktiga. Det värsta är den mentala belastningen. Du slutar lita på din egen lista, så du dubbelkollar allt, vilket stjäl tid från själva outreach-arbetet.

Det summeras snabbt. Här är var det fallerar i det dagliga arbetet.

  • Du får dubbletter eftersom två personer skrapar samma nisch på olika dagar.
  • E-postadresser i bios är ofta märkligt formaterade, så manuell kopiering missar dem eller fångar skräp.
  • Google-resultat innehåller många sidor som inte är målgrupp, vilket betyder bortkastade klick och dåliga leads.
  • Kalkylark upprätthåller inte “en lead, en post”, så outreach blir inkonsekvent och svårt att skala.

Lösningen: Apify + AI-skrapning, lagrat säkert i PostgreSQL

Det här n8n-arbetsflödet automatiserar hela loopen för att samla in Instagram-leads och lagrar resultaten där de förblir tillförlitliga: i din PostgreSQL-databas. Du börjar med att ange enkla målgruppsparametrar (plattform, nisch, land). En AI-agent skapar sedan smarta Google-sökfrågor för nischen, vilket hjälper dig att hitta profiler du inte skulle komma på att söka efter manuellt. Apify skrapar Google-resultaten, arbetsflödet expanderar och batchar URL:erna, sedan rensar det varje profillänk innan det skrapar profildetaljer med Apifys Instagram Scraper. Till sist extraherar ett ytterligare AI-steg kontaktuppgifter (särskilt e-postadresser) från bion, och n8n upsertar leadet i PostgreSQL så att befintliga poster uppdateras i stället för att dupliceras.

Arbetsflödet startar med en manuell trigger medan du testar. Därefter kan du byta till ett schema och köra dagligen. Data flödar från “målgruppsparametrar” till “generering av sökfrågor”, vidare genom skrapning och extrahering, och landar i PostgreSQL som en konsekvent lead-tabell du faktiskt kan bygga outreach på.

Vad du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du vill ha 200 nya Instagram-prospekt i veckan inom “beauty & hair” i USA. Manuellt tar även en snabb process cirka 2 minuter per profil att öppna, skumma, kopiera och klistra in, plus lite efterstädning senare, vilket är ungefär 6 till 7 timmar i veckan. Med det här arbetsflödet lägger du cirka 10 minuter på att sätta målgruppsparametrarna och låter sedan skrapning och extrahering köras i bakgrunden. Du granskar fortfarande databasen, men nu handlar det om stickprovskontroll, inte att bygga om listan.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Apify för att köra Google- och Instagram-skrapor
  • PostgreSQL för att lagra och deduplicera lead-poster
  • OpenAI API-nyckel (hämta den från din OpenAI-plattforms dashboard)

Kunskapsnivå: Mellan. Du kopplar konton, klistrar in API-nycklar och är bekväm med att kontrollera en databastabell en gång.

Vill du inte sätta upp det här själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).

Så fungerar det

Du sätter målgruppsparametrarna. I steget “Map Lead Inputs” väljer du till exempel Instagram, en nisch (till exempel beauty & hair) och ett målland så att arbetsflödet inte drar iväg.

AI gör om input till sökfrågor. AI-agenten använder en OpenAI-chatmodell för att ta fram Google-sökfrågor som är mer specifika än vad de flesta skriver, vilket oftast ger mer korrekt formaterade sökresultat.

Apify skrapar, sedan batchar n8n arbetet. Arbetsflödet skickar sökfrågan till Apifys Google Search Scraper, expanderar resultaten till en lista och bearbetar dem sedan i batchar så att du inte överbelastar externa API:er.

Profiler rensas, skrapas och lagras. Varje URL normaliseras, Apifys Instagram Scraper hämtar profildetaljer, AI extraherar kontaktinfo från bion och PostgreSQL upsertar posten så att du slipper dubbletter.

Du kan enkelt justera nisch, land och kvalitetsfilter för att matcha dina outreach-mål. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den manuella triggern

Starta arbetsflödet med den manuella triggern så att ni kan testa och iterera på indata för leadinsamling.

  1. Lägg till eller bekräfta att noden Manual Run Trigger finns som den första noden.
  2. Behåll standardinställningarna (inga parametrar krävs) för Manual Run Trigger.
  3. Koppla Manual Run Trigger till Map Lead Inputs.

Steg 2: koppla mappning av leadindata

Definiera sökindata som används för att skapa riktade Google-frågor för Instagram-leads.

  1. Öppna Map Lead Inputs och lägg till tilldelningar för fält för leadtargeting.
  2. Ställ in siteinstagram.
  3. Ställ in field_of_interestbeauty & hair.
  4. Ställ in target_countryUSA.
  5. Koppla Map Lead Inputs till Query Builder Agent.

Steg 3: konfigurera Query Builder AI

Generera en Google-söksträng anpassad efter er nisch och ert land.

  1. Öppna Query Builder Agent och ställ in Text till =field of interest: {{ $json.field_of_interest }} target country: {{ $json.target_country }}.
  2. Låt Prompt Type vara inställd på define.
  3. Säkerställ att OpenAI Chat Assistant är ansluten som språkmodell för Query Builder Agent.
  4. Autentiseringsuppgifter krävs: Anslut era openAiApi-uppgifter i OpenAI Chat Assistant.
  5. Koppla Query Builder Agent till Escape Query Script.

⚠️ Vanlig fallgrop: Frågegeneratorn använder er indata exakt – om field_of_interest eller target_country är tomma i Map Lead Inputs blir frågan ofullständig.

Steg 4: konfigurera scraping och url-rensning

Skrapa Google-resultat, expandera listan och normalisera profil-url:er för efterföljande scraping.

  1. I Escape Query Script behåller ni den medföljande JavaScript-koden som escape:ar citattecken i frågesträngen.
  2. I Search Scraper Request, ställ in URL till https://api.apify.com/v2/acts/apify~google-search-scraper/run-sync-get-dataset-items?token=[CONFIGURE_YOUR_TOKEN].
  3. Ställ in JSON Body till ={ "focusOnPaidAds": false, "forceExactMatch": false, "includeIcons": false, "includeUnfilteredResults": false, "maxPagesPerQuery": 20, "mobileResults": false, "queries": "{{ $json.escapedQuery }}", "resultsPerPage": 100, "saveHtml": false, "saveHtmlToKeyValueStore": true }.
  4. Aktivera Send Body och ställ in Specify Bodyjson.
  5. I Expand Results List, ställ in Field to Split OutorganicResults.
  6. Koppla Search Scraper RequestExpand Results ListIterate Result BatchesClean Profile URL.
  7. I Clean Profile URL behåller ni JavaScript-koden som tar bort ett avslutande snedstreck från fältet url.

⚠️ Vanlig fallgrop: Ersätt [CONFIGURE_YOUR_TOKEN] i Search Scraper Request och Profile Scrape Request med er Apify-token innan ni kör.

Steg 5: skrapa profiler och extrahera kontaktuppgifter

Skrapa Instagram-profiler och extrahera e-postadresser från biografier med en AI-extraktor.

  1. I Profile Scrape Request, ställ in URL till https://api.apify.com/v2/acts/apify~instagram-scraper/run-sync-get-dataset-items?token=[CONFIGURE_YOUR_TOKEN].
  2. Ställ in JSON Body till ={ "addParentData": false, "directUrls": [ "{{ $json.cleanedUrl }}" ], "enhanceUserSearchWithFacebookPage": false, "isUserReelFeedURL": false, "isUserTaggedFeedURL": false, "resultsLimit": 2, "resultsType": "details", "searchLimit": 1, "searchType": "hashtag" }.
  3. Öppna Extract Contact Details och ställ in Text till ={{ $json.biography }}.
  4. Behåll Input Schema som angivet för att extrahera Email i JSON.
  5. Säkerställ att OpenAI Extractor Model är ansluten som språkmodell för Extract Contact Details.
  6. Autentiseringsuppgifter krävs: Anslut era openAiApi-uppgifter i OpenAI Extractor Model.
  7. Koppla Clean Profile URLProfile Scrape RequestExtract Contact Details.

Steg 6: konfigurera upsert till databasen

Spara extraherade leads i er PostgreSQL-tabell med en upsert-operation.

  1. Öppna Upsert Lead Records och ställ in Operation till upsert.
  2. Ställ in Schema till public och Table till Instagram_Leads_Beauty&Hair.
  3. Mappa columns.value.email till ={{ $('Filter').item.json.output[0].Email }}.
  4. Mappa columns.value.user_name till ={{ $('Profile Scrape Request').item.json.username }}.
  5. Mappa columns.value.account_link till ={{ $('Profile Scrape Request').item.json.inputUrl }}.
  6. Mappa columns.value.follower_count till ={{ $('Profile Scrape Request').item.json.followsCount }}.
  7. Mappa columns.value.target_country till ={{ $('Map Lead Inputs').item.json.target_country }} och columns.value.field_of_interest till ={{ $('Map Lead Inputs').item.json.field_of_interest }}.
  8. Autentiseringsuppgifter krävs: Anslut era postgres-uppgifter i Upsert Lead Records.
  9. Koppla Extract Contact DetailsUpsert Lead RecordsIterate Result Batches.

⚠️ Vanlig fallgrop: Mappningen använder $('Filter') för e-post, men ingen nod med namnet Filter finns i arbetsflödet. Uppdatera e-postmappningen till korrekt källa från Extract Contact Details innan ni kör.

Steg 7: testa och aktivera ert arbetsflöde

Validera varje steg med manuell körning och aktivera sedan för produktion.

  1. Klicka på Execute WorkflowManual Run Trigger för att köra arbetsflödet från början till slut.
  2. Bekräfta att Search Scraper Request returnerar resultat och att Expand Results List matar ut enskilda objekt.
  3. Verifiera att Profile Scrape Request returnerar profildetaljer och att Extract Contact Details matar ut ett Email-fält (eller N/A).
  4. Kontrollera att Upsert Lead Records infogar eller uppdaterar poster i Instagram_Leads_Beauty&Hair.
  5. När ni är nöjda, växla arbetsflödet till Active för användning i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Apify-inloggningsuppgifter kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först status på din Apify-token i Apify Console.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att sitta och redigera utdata för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för Apify PostgreSQL leads?

Cirka 30–60 minuter om dina Apify-, OpenAI- och Postgres-konton är redo.

Behöver jag kunna koda för att automatisera Apify PostgreSQL leads?

Nej. Du kopplar främst konton och klistrar in API-nycklar. Kodstegen som ingår är redan byggda; du förväntas inte skriva ny kod.

Är n8n gratis att använda för det här arbetsflödet för Apify PostgreSQL leads?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för OpenAI API (ofta några cent per körning, beroende på volym) och Apify-användning.

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 self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för Apify PostgreSQL leads för en annan nisch och ett annat land?

Ja, och det är enkelt. Uppdatera målgruppsvärdena i steget “Map Lead Inputs” (Edit Fields/Set), så genererar AI-agenten nya sökfrågor automatiskt. Du kan också lägga till en miniminivå för följare genom att lägga in ett If/Switch-filter efter profilscrapen. Vanliga justeringar är att samla in fler fält (som kategori-nyckelord), begränsa antal resultat per körning och skriva leads till ett CRM efter Postgres-upserten.

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

Oftast beror det på en ogiltig eller utgången Apify-token, så skapa en ny och uppdatera inloggningsuppgiften i n8n. Det kan också vara fel actor-/task-konfiguration för skrapan du anropar, eller Apify-rate limits när du skickar för många förfrågningar snabbt. Om fel uppstår mitt i en körning, minska batchstorleken i loopen och försök igen. Kontrollera också att din Apify-plan fortfarande har kvar användning, eftersom “inga credits kvar” kan se ut som ett slumpmässigt fel när du har bråttom.

Hur många leads kan den här automatiseringen för Apify PostgreSQL leads hantera?

Många. I n8n Cloud är den praktiska gränsen dina månatliga körningar och hur du batchar resultaten; i self-hosted n8n finns inget fast tak, det beror mest på din server och din Apify/OpenAI-användning. I verklig drift kör team ofta några hundra profiler per nisch per dag och skalar sedan upp när de är nöjda med lead-kvaliteten. Om du vill ha högre volym är mindre batchar och fler körningar oftast stabilare än en gigantisk skrapning.

Är den här automatiseringen för Apify PostgreSQL leads bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här arbetsflödet bygger på batchning, villkorslogik och flerstegsprocessning som blir klumpig (och dyr) i många Zapier-liknande upplägg. n8n är också enklare att self-hosta, vilket spelar roll när du kör lead gen i större skala. Samtidigt, om du bara vill ha ett litet tvåstegsflöde som “ny rad i ett ark → skicka ett mejl”, kan Zapier eller Make kännas snabbare att sätta upp. Det avgörande är volym och komplexitet. Prata med en automatiseringsexpert om du vill ha en snabb rekommendation baserat på ditt outreach-mål.

När det här väl är på plats slutar din Instagram-leadlista att vara ett skört kalkylark och börjar fungera som en faktisk databas. Ärligt talat räcker det för att outreach ska kännas lugnare.

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