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

Från Upwork till Google Sheets: leads poängsätts

Rickard Andersson Partner, Nodenordic.se

Att söka på Upwork verkar enkelt tills du gör det varje dag. Flikar staplas på hög, “kanske”-jobb flyter ihop och du missar bra leads för att du såg dem för sent (eller glömde var du sparade dem).

Om du är frilansare som jagar jämn tillgång på uppdrag känner du redan till slitjobbet. Byråägare som följer flera kategorier känner det också, och konsulter som behöver kunder med bättre matchning drabbas hårdast. Den här automatiseringen för Upwork lead scoring filtrerar bort bruset och lyfter fram möjligheterna som är värda att svara på.

Du sätter upp ett n8n-flöde som hämtar jobb enligt schema, poängsätter dem med GPT-4, loggar allt i Google Sheets, skriver förslag och pingar dig i Telegram så att du kan agera snabbt.

Så fungerar automatiseringen

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

n8n Workflow Template: Från Upwork till Google Sheets: leads poängsätts

Varför det här spelar roll: Upwork-sökning skapar onödigt merarbete

Att manuellt leta Upwork-jobb är bedrägligt dyrt. Du läser samma luddiga briefar, öppnar en massa inlägg som “kan vara bra”, och inser sedan att budgeten är fel eller att kundhistoriken är ett kaos. Under tiden har de bästa projekten fått 20 förslag innan du ens ser dem. Det handlar inte bara om tid. Det är den mentala belastningen av att avgöra vad som förtjänar din uppmärksamhet och sedan försöka minnas vilka leads du redan granskat så att du inte slösar tid på att kolla dem igen i morgon.

Friktionen byggs på. Så här faller det isär i verkligheten.

  • Du skannar samma annonser igen eftersom det inte finns något pålitligt “sett”-system kopplat till ett jobb-ID.
  • Kvalitet blandas med skräp, vilket innebär att du lägger ungefär en timme om dagen på att läsa inlägg du aldrig kommer att söka.
  • Även när du hittar ett starkt lead tar det så lång tid att skriva ett anpassat första utkast att du svarar för sent.
  • Utan en enkel logg är det svårt att se mönster i vad du vinner, vad du förlorar och vad du ska sluta jaga.

Det du bygger: poängsatta Upwork-leads + utkast till förslag i Sheets

Det här flödet körs automatiskt var 6:e timme (du kan ändra det). Det använder en Apify-scraper för att hämta Upwork-jobb som matchar dina kriterier, jämför dem sedan med jobb-ID:n som redan finns lagrade i ditt Google Sheet så att du bara granskar nya möjligheter. Därefter utvärderar GPT-4 varje jobb utifrån matchning, kundkvalitet och budget och sätter en enkel poäng 0–100. Allt under din tröskel rensas bort. Allt över går vidare till att skapa förslagsutkast, så du får ett redigeringsklart utkast och en strukturerad logg över vad som hände. Till sist skickar Telegram en sammanfattning, så att du kan hoppa på de bästa leadsen utan att bo i Upwork hela dagen.

Flödet startar enligt schema, hämtar annonser och tar bort dubbletter. Sedan poängsätter och filtrerar AI fram de bästa jobben, skriver förslag för dem, loggar resultaten i Google Sheets och skickar en Telegram-sammanfattning så att du vet exakt vad du ska granska.

Det du bygger

Förväntade resultat

Säg att du kollar Upwork 4 gånger om dagen och lägger cirka 20 minuter varje gång på att skanna, öppna flikar och kortlista. Det är ungefär 80 minuter per dag, och det ger fortfarande inget utkast till förslag. Med det här flödet som körs var 6:e timme lägger du kanske 5 minuter på att granska Telegram-sammanfattningen och ditt sheet, och redigerar sedan de förskrivna utkasten för de få jobb som får 60+. De flesta dagar är det ungefär en timme tillbaka.

Innan du börjar

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra jobb-ID:n, poäng och utkast.
  • Apify för att köra en Upwork-scraper-actor.
  • OpenAI API-nyckel (hämta den i OpenAI:s API-dashboard)

Nivå: Nybörjare. Du kopplar konton, lägger till en kolumn i Sheet och klistrar in några ID:n i miljövariabler.

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

Steg för steg

Ett schema sätter igång allt. n8n kör flödet var 6:e timme, så du slipper förlita dig på “jag kollar senare”-viljestyrka.

Upwork-jobb samlas in och struktureras. Apify hämtar annonser som matchar dina sparade kriterier, sedan läser flödet in dina befintliga jobb-ID:n från Google Sheets och tar bort allt du redan sett.

AI avgör vad som är värt din uppmärksamhet. GPT-4 bedömer matchning, kundkvalitet och budget, sedan plockar flödet ut en poäng 0–100 och filtrerar så att bara jobb med 60+ behålls.

Kvalificerade jobb får utkast och loggas. För varje annons med hög poäng genererar n8n ett förslagsutkast, lägger till detaljerna i ditt Google Sheet och räknar kör-mått (hur många hittade, hur många behölls och så vidare). Telegram skickar en sammanfattning, plus ett felmeddelande om något misslyckas.

Du kan enkelt ändra poängtröskeln (60+) efter hur kräsen du vill vara och justera schemat om du vill ha snabbare aviseringar. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera schematriggern

Ställ in arbetsflödet så att det körs enligt ett fast schema för att starta cykeln för jobbscraping.

  1. Lägg till och öppna Scheduled Automation Start.
  2. Ställ in schemaregeln så att den körs var 6:e timme.
  3. Bekräfta att noden är kopplad till Launch Apify Crawl för att starta scrapingkörningen.

Steg 2: anslut Apify-crawling och hämtning av dataset

Trigga Apify-aktorn och hämta datasetobjekten för utvärdering.

  1. Öppna Launch Apify Crawl och ställ in Method till POST.
  2. Ställ in URL till =https://api.apify.com/v2/acts/{{ $env.APIFY_ACTOR_ID }}/runs?waitForFinish=300.
  3. Aktivera Send Body och ställ in JSON Body till den angivna filterpayloaden (tim-/fasta budgetar, kategorier, gräns 100).
  4. Inloggningsuppgifter krävs: Anslut era HTTP Header Auth-inloggningsuppgifter i Launch Apify Crawl.
  5. Öppna Retrieve Dataset Records och ställ in URL till =https://api.apify.com/v2/datasets/{{ $json.data.defaultDatasetId }}/items?clean=true.
  6. Inloggningsuppgifter krävs: Anslut era HTTP Header Auth-inloggningsuppgifter i Retrieve Dataset Records.

⚠️ Vanlig fallgrop: Säkerställ att APIFY_ACTOR_ID är satt i era miljövariabler, annars blir Apify-URL:en ogiltig.

Steg 3: anslut Google Sheets och avduplicera jobb

Läs in befintliga jobb-ID:n från Google Sheets och filtrera bort annonser som redan setts innan poängsättning.

  1. Öppna Load Stored Job IDs och ställ in Sheet Name till Upwork Jobs.
  2. Ställ in Document ID till ={{ $env.GOOGLE_SHEETS_DOC_ID }}.
  3. Inloggningsuppgifter krävs: Anslut era Google Sheets-inloggningsuppgifter i Load Stored Job IDs.
  4. Granska Remove Seen Listings så att endast jobb vars uid inte finns i arkets kolumn Job ID behålls.
  5. Öppna Check For New Jobs och bekräfta att villkoret använder ={{ $json.uid }} med notEmpty-logik.
  6. Verifiera att falsk-vägen routas till No New Roles Path för körningar utan nya jobb.

⚠️ Vanlig fallgrop: Arbetsflödet förutsätter en kolumn Job ID i ert ark—saknade eller omdöpta kolumner gör att dubbletter släpps igenom.

Steg 4: sätt upp AI-pipelinen för poängsättning

Normalisera jobbfält, poängsätt dem med AI och filtrera fram möjligheter med hög kvalitet.

  1. Öppna Standardize Job Fields och behåll koden som mappar rå jobbdata till normaliserade fält som jobId, title och budget.
  2. Konfigurera AI Fit Evaluation att använda modellen gpt-4o.
  3. Inloggningsuppgifter krävs: Anslut era OpenAI-inloggningsuppgifter i AI Fit Evaluation.
  4. Bekräfta att Extract Score Result tolkar AI-svarets JSON och mappar score, decision och reasoning.
  5. Öppna Filter High Scores och ställ in villkoret till ={{ $json.score }} gte 60.

Tips: Om formateringen i AI-svaret ändras, uppdatera JSON-tolkningslogiken i Extract Score Result för att undvika att poäng sätts till 0 som standard.

Steg 5: konfigurera förslagsutkast och loggning i arket

Batcha kvalificerade jobb, skapa förslagsutkast och lägg till resultaten i ert loggark.

  1. Öppna Iterate Qualified Jobs för att dela upp jobb i batchar för sekventiell bearbetning.
  2. Konfigurera Draft Proposal Text med modellen gpt-4o-mini för att generera förslagsutkast.
  3. Inloggningsuppgifter krävs: Anslut era OpenAI-inloggningsuppgifter i Draft Proposal Text.
  4. Öppna Append to Sheet Log och ställ in Operation till append.
  5. Ställ in Sheet Name till Upwork Jobs och Document ID till ={{ $env.GOOGLE_SHEETS_DOC_ID }}.
  6. Inloggningsuppgifter krävs: Anslut era Google Sheets-inloggningsuppgifter i Append to Sheet Log.
  7. Verifiera loopen: Iterate Qualified Jobs skickar ut till Draft Proposal Text och sedan till Append to Sheet Log, som returnerar till Iterate Qualified Jobs tills allt är klart.

Steg 6: konfigurera körningsmätvärden och Telegram-sammanfattning

Sammanfatta körningen och skicka en notis när bearbetningen är klar.

  1. Öppna Batch Loop End och säkerställ att den är kopplad till Calculate Run Metrics.
  2. Granska Calculate Run Metrics för att beräkna antal scraped och passed med data från Retrieve Dataset Records och Extract Score Result.
  3. Öppna Dispatch Telegram Summary och ställ in Text till =✅ Upwork Scraper Done Scraped: {{ $json.scraped }} Passed: {{ $json.passed }}.
  4. Ställ in Chat ID till ={{ $env.TELEGRAM_CHAT_ID }}.
  5. Inloggningsuppgifter krävs: Anslut era Telegram-inloggningsuppgifter i Dispatch Telegram Summary.

⚠️ Vanlig fallgrop: Om TELEGRAM_CHAT_ID inte är satt i era miljövariabler kommer sammanfattningsmeddelandet inte att levereras.

Steg 7: lägg till felhantering

Fånga upp fel i arbetsflödet och notifiera er Telegram-kanal direkt.

  1. Öppna Error Catch Trigger för att säkerställa att den är redo att fånga upp fel i arbetsflödet.
  2. Konfigurera Send Failure Notice med Text satt till =🚨 Error: {{ $json.error?.message || 'Unknown' }}.
  3. Ställ in Chat ID till ={{ $env.TELEGRAM_CHAT_ID }}.
  4. Inloggningsuppgifter krävs: Anslut era Telegram-inloggningsuppgifter i Send Failure Notice.

Steg 8: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att bekräfta att varje nod körs korrekt och aktivera därefter schemat.

  1. Klicka på Execute Workflow för att trigga Scheduled Automation Start manuellt.
  2. Bekräfta att Launch Apify Crawl och Retrieve Dataset Records returnerar jobbdata och att Check For New Jobs routar korrekt.
  3. Verifiera att jobb med hög poäng passerar Filter High Scores och loggas i Append to Sheet Log med framtagna förslagsutkast.
  4. Kontrollera att Dispatch Telegram Summary skickar en sammanfattning med antal scraped och passed.
  5. Växla arbetsflödet till Active för att aktivera schemalagda körningar var 6:e timme.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Felsökningstips

  • Google Sheets-inloggning kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först Google-anslutningen i n8n:s panel för inloggningsuppgifter.
  • Apify-körningar kan ta längre tid än väntat beroende på datasetets storlek. Om “Retrieve Dataset Records” ibland returnerar tomt, kör om flödet eller lägg till en längre väntetid innan du hämtar resultat.
  • Standardprompter i AI-noder är generiska. Lägg in din nisch, bevispunkter och “så här jobbar jag” tidigt, annars kommer du att redigera output för alltid.

Snabba svar

Hur lång tid tar det att sätta upp den här automatiseringen för Upwork lead scoring?

Cirka 15 minuter om dina konton är redo.

Krävs kodning för den här Upwork lead scoring?

Nej. Du kopplar inloggningsuppgifter och fyller i några ID:n och variabler i n8n.

Är n8n gratis att använda för det här flödet för Upwork lead scoring?

Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 $/månad för högre volym. Du behöver också räkna in Apify + OpenAI-användning, vilket vanligtvis ligger på cirka 0,50–3,00 $ per körning för det här flödet.

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

Kan jag modifiera det här flödet för Upwork lead scoring för andra användningsfall?

Ja, och det bör du. De flesta börjar med att ändra schemat “körs var 6:e timme”, byta Apify-actor för att rikta in sig på andra jobbkategorier och justera filtertröskeln “60+”. Du kan också skriva om prompterna i noderna AI Fit Evaluation och Draft Proposal Text så att de matchar din nisch (e-handel, SaaS, design, vad som helst) och din ton. Om du vill ha andra output, logga extra kolumner i Google Sheets-steget “Append”, som kundens spend, tidszon eller en riskflagga.

Varför misslyckas min Telegram-anslutning i det här flödet?

Oftast är det chatt-ID:t eller botbehörigheter. Bekräfta att din miljövariabel TELEGRAM_CHAT_ID är korrekt, kontrollera sedan Telegram-inloggningen i n8n och skicka ett testmeddelande igen. Om flödet inte kan meddela dig efter ett fel tappar du säkerhetsnätet, så det är värt att fixa först.

Vilken volym kan det här flödet för Upwork lead scoring hantera?

Mer än tillräckligt för en typisk frilansare eller liten byrå; den praktiska begränsningen är din n8n-plan och din budget för Apify/OpenAI-användning.

Är den här automatiseringen för Upwork lead scoring bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet drar nytta av förgreningar, avdupliceringslogik, loopar över items och felhantering utan att du betalar extra per “väg”. n8n ger dig också möjligheten att hosta själv, vilket kan spela roll om du kör det 4 gånger om dagen och loggar många rader. Zapier eller Make kan fortfarande fungera om du bara vill ha “scrapa → avisera” och inget mer. Men när du lägger till poängsättning, filtrering, utkast och strukturerad loggning brukar n8n kännas mindre trångt. Prata med en automationsexpert om du vill ha hjälp att välja.

Sätt upp det här en gång, så förvandlas ditt Upwork-flöde till en prioriterad, sökbar leadlista med utkast kopplade. Det är ärligt talat skillnaden mellan “jag söker senare” och att skicka starka förslag medan jobbet fortfarande är färskt.

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