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 Google Sheets: Upwork-leads redo att pitcha

Rickard Andersson Partner, Nodenordic.se

Att kopiera Upwork-jobblänkar till en tracker, skumma beskrivningar och sedan skriva ”anpassade” förslag under tidspress är den typen av jobb som tyst äter upp veckan. Du missar bra leads, svarar för sent eller skickar något generiskt eftersom du har bråttom.

Automatisering av Upwork-förslag slår ärligt talat hårdast mot frilansare. Men byråägare och små biz dev-team känner av det också. Resultatet är enkelt: nya jobb fångas automatiskt, och du öppnar ett kalkylark fullt av utkast som är redo att granska i stället för att börja från noll.

Det här arbetsflödet använder Apify + Google Sheets + AI för att hitta matchande Upwork-jobb, undvika dubbletter och generera skräddarsydda förslag baserat på din egen kunskapsbas. Du får se hur det fungerar, vad du behöver och var team oftast kör fast.

Så fungerar den här automatiseringen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: Apify till Google Sheets: Upwork-leads redo att pitcha

Problemet: Upwork-outreach är repetitivt (och lätt att göra fel)

Att hitta bra Upwork-jobb är inte det svåra. Det svåra är att göra det konsekvent utan att förvandla dagen till en loop av sökningar, öppna flikar, copy/paste och ”jag skriver förslaget senare”. Och så blir det senare, och du skriver om samma struktur igen, försöker låta ny samtidigt som du svarar på kundens frågor och visar att du passar. En missad detalj (budget, deadline, ett specifikt verktyg som nämns) och ditt förslag låter som alla andras. Kostnaden är inte bara tid. Det är den mentala friktionen som gör att du undviker outreach från början.

Det går fort att ackumulera. Här är var det fallerar i verkligheten:

  • Manuell spårning av jobb i ett kalkylark tar ofta cirka 5–10 minuter per jobb, och det är innan du har skrivit en enda mening.
  • Dubbletter smyger sig in när du söker flera gånger om dagen, vilket gör att du slösar energi på att pitcha samma annons två gånger eller börjar tvivla på dig själv.
  • Förslag blir ”mallade” eftersom du är trött, så du tappar den personalisering som faktiskt ger svar.
  • Det finns ingen smidig överlämning för granskning, så du hamnar med att skriva på ett ställe och skicka in på ett annat, med extra copy/paste-fel som följd.

Lösningen: Apify + Sheets + AI skapar förslagsutkast för varje nytt jobb

Det här arbetsflödet fungerar som en liten outreach-assistent som aldrig glömmer stegen. Du startar det manuellt i n8n, och det kör en Apify-actor som skrapar Upwork utifrån kriterier du väljer (nyckelord, kategorier, verifierad betalningsstatus och mer). Varje nytt jobb läggs till i ett Google Sheet så att du har en samlad spårningsvy. Sedan läser flödet tillbaka arket, kontrollerar vilka jobb du inte har sökt och triggar en AI-generator av förslag för varje sådant jobb. AI:n använder jobbdetaIjerna plus en inbyggd sektion ”Företagets kunskapsbas” som du anpassar, så att utkastet låter som du (och refererar till rätt erfarenhet). Till sist skriver den tillbaka förslaget i samma rad och mejlar dig en länk så att du kan granska och skicka in på Upwork.

Arbetsflödet börjar med att Apify hämtar färska annonser. Google Sheets blir den primära källan. Därifrån genererar AI ett skräddarsytt utkast, och Gmail meddelar dig när allt är klart för granskning.

Det du får: automatisering kontra resultat

Exempel: så här ser det ut

Säg att du siktar på 10 bra Upwork-jobb per dag. Manuell hantering: du kanske lägger cirka 10 minuter på att logga och avdubblera varje jobb (cirka 100 minuter), och sedan ytterligare 15 minuter på att skriva ett skräddarsytt förslag (cirka 150 minuter). Det är ungefär 4 timmar per dag. Med det här flödet kör du skrapningen en gång och granskar sedan utkast i ett och samma ark. Även om du lägger 5 minuter på att vässa varje förslag hamnar du närmare 50 minuter totalt, plus den tid AI:n tar för att generera i bakgrunden.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Apify för att skrapa Upwork-jobb utifrån kriterier
  • Google Sheets för att lagra leads och förslagsutkast
  • Google Gemini API-nyckel (hämta den via Google Cloud med Vertex AI aktiverat)
  • Gmail för att skicka mejl om ”nya jobb” och ”utkast klara”

Svårighetsnivå: Medel. Du kopplar konton, ändrar några fält och klistrar in innehåll till din egen kunskapsbas.

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

Så fungerar det

Manuell starttrigger. Du klickar på execute i n8n när du vill hämta nya jobb. Vissa team kör det en gång på morgonen och en gång efter lunch.

Skrapning och insamling av jobb. Apify kör Upwork-skrapningsactor, sedan hämtar n8n dataset-resultaten och lägger till varje jobb i Google Sheets med de viktiga fälten (titel, URL, beskrivning, kompetenser, frågor).

Filtrera bort leads du redan har hanterat. Flödet läser raderna i arket och kontrollerar ett fält ”Applied”. Om det redan är markerat hoppar det över förslagsgenereringen. Enkelt, men det sparar dig från oavsiktliga dubbletter.

AI-utkast + sparning. För varje jobb som inte är sökt använder AI-agenten jobbdetaIjerna och din ”Företagets kunskapsbas” för att skriva ett relevant förslag, och skriver sedan tillbaka det i samma rad. Gmail skickar ett slutligt meddelande med länken så att du kan granska och skicka in.

Du kan enkelt ändra skrapkriterierna för att fokusera på olika nischer utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den manuella triggern

Det här arbetsflödet startar manuellt, så att ni kan köra det vid behov medan ni färdigställer datakällor och AI-inställningar.

  1. Lägg till och välj Manual Launch Trigger som startnod.
  2. Koppla Manual Launch Trigger till Execute Upwork Actor så att det matchar arbetsflödets flöde.

Steg 2: koppla Apify och Google Sheets

Den här delen hämtar Upwork-data via Apify och lagrar den i Google Sheets för vidare bearbetning.

  1. Öppna Execute Upwork Actor och koppla den till Fetch Actor Dataset enligt körflödet.
  2. Credential Required: Koppla era Apify-inloggningsuppgifter i Execute Upwork Actor och Fetch Actor Dataset.
  3. Öppna Append Data to Spreadsheet och konfigurera den för att lägga till dataset-utdata i ert målark.
  4. Credential Required: Koppla era Google Sheets-inloggningsuppgifter i Append Data to Spreadsheet, Retrieve Sheet Rows och Upsert Sheet Row.
  5. Verifiera att flödet fortsätter från Append Data to Spreadsheet till Tally New Listings.

⚠️ Vanlig fallgrop: Om Google Sheets-inloggningsuppgifter saknas kommer arbetsflödet att misslyckas vid Append Data to Spreadsheet innan några e-post- eller AI-steg körs.

Steg 3: konfigurera datasammanfattningar och villkorslogik

Det här mellanlagret räknar nya annonser, notifierar er och routar objekt för förslagsutkast.

  1. I Tally New Listings anger ni hur ni vill att nya poster ska sammanfattas innan aviseringar skickas ut.
  2. Konfigurera Dispatch Email Alert för att skicka ett sammanfattningsmejl efter Tally New Listings.
  3. Credential Required: Koppla era Gmail-inloggningsuppgifter i Dispatch Email Alert och Send Proposal Email.
  4. Ställ in Retrieve Sheet Rows för att läsa de rader som behövs för utvärdering av förslag.
  5. Definiera filtreringslogiken i Conditional Check för att avgöra vilka rader som går vidare till Proposal Drafting.

Tips: Håll villkoret i Conditional Check snävt för att undvika att ta fram förslag för irrelevanta annonser.

Steg 4: sätt upp AI-kedjan för förslagsutkast

AI-kedjan genererar förslag och strukturerar utdata för lagring och leverans via e-post.

  1. Öppna Proposal Drafting och verifiera att den är kopplad till Gemini Chat Engine som språkmodell.
  2. Credential Required: Koppla era Google Gemini-inloggningsuppgifter i Gemini Chat Engine.
  3. Säkerställ att Structured Output Decode är kopplad till Proposal Drafting som utdata-parser.
  4. Observera att Structured Output Decode är en undernod – inloggningsuppgifter läggs till i Gemini Chat Engine, inte i själva parsern.
  5. Verifiera flödet från Proposal Drafting till Map Field Values så att AI-utdata förbereds för databasuppdateringar.

⚠️ Vanlig fallgrop: Om AI:ns utdataformat ändras kan Structured Output Decode misslyckas med att tolka. Säkerställ att prompt och förväntat schema är noggrant synkade i Proposal Drafting.

Steg 5: konfigurera arkuppdateringar och slutlig e-postutskick

Dessa noder uppdaterar ert uppföljningsark och levererar färdiga förslag via e-post.

  1. I Map Field Values mappar ni förslagsfälten från AI-utdata till kolumner i arket.
  2. Konfigurera Upsert Sheet Row för att uppdatera eller infoga rader baserat på er valda nyckel.
  3. Bekräfta flödet från Upsert Sheet Row till Summarize Results och därefter till Send Proposal Email.
  4. Konfigurera Send Proposal Email för att skicka förslagsinnehållet från Summarize Results.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att validera varje steg och aktivera sedan arbetsflödet för löpande användning.

  1. Klicka på Execute WorkflowManual Launch Trigger för att köra ett fullständigt test.
  2. En lyckad körning ska visa att data lagts till i Append Data to Spreadsheet, AI-utdata i Proposal Drafting och ett skickat meddelande från Send Proposal Email.
  3. Om någon nod ger fel, verifiera inloggningsuppgifter och indatamappningar innan ni testar igen.
  4. När ni är redo för produktion, växla arbetsflödet till Active.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Autentisering för Google Sheets kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera n8n:s test av credentials-anslutningen och se först till att arket är delat med rätt Google-konto.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.

Vanliga frågor

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

Cirka 45 minuter om dina konton för Apify, Sheets och AI är klara.

Behöver jag kunna koda för att automatisera automatisering av Upwork-förslag?

Nej. Du kommer främst att koppla konton och justera skrapfiltren samt prompten för kunskapsbasen.

Är n8n gratis att använda för det här arbetsflödet för automatisering av Upwork-förslag?

Ja. n8n har ett gratis alternativ för self-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 med användningskrediter för Apify och Gemini API-användning i Google Cloud.

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ärt 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 automatisering av Upwork-förslag för en annan nisch (som Shopify-dev eller HubSpot-ops)?

Ja, och det bör du. Uppdatera Apify-parametrarna för ”Run Upwork Actor”-sökningen så att de matchar din nisch, och skriv sedan om sektionen ”Företagets kunskapsbas” i prompten för förslagsutkast så att AI:n hämtar från dina faktiska tjänster, case studies och önskad tidsplan.

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

Oftast beror det på att Google-inloggningen har löpt ut eller att arket har ändrats (nytt fliknamn, nytt dokument-id eller saknade delningsbehörigheter). Återanslut Google Sheets-credential i n8n och bekräfta sedan att Document ID och Sheet Name matchar det noderna förväntar sig. Om det fortfarande misslyckas, kontrollera om säkerhetsinställningarna i Google Workspace kräver omauktorisering oftare än personliga Gmail-konton.

Hur många jobb kan den här automatiseringen av Upwork-förslag hantera?

I praktiken dussintals till några hundra jobb per körning, beroende på dina Apify-gränser och hur mycket AI-generering du är bekväm med att betala för.

Är den här automatiseringen av Upwork-förslag bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet behöver skrapning + villkorslogik + en AI-kedja som skriver tillbaka till samma rad. n8n hanterar branching och datamappning snyggt, och self-hosting undviker per-task-prissättning när volymen ökar. Zapier och Make kan fungera, men du kan behöva sy ihop fler steg och betala mer när du skalar. Om du bara skriver ett par förslag i veckan kan enkelheten i ett lättare verktyg räcka. Prata med en automatiseringsexpert om du vill ha en snabb rekommendation baserat på din volym.

När det här väl rullar slutar din outreach att hänga på motivation och ledig tid. Arbetsflödet tar hand om de repetitiva delarna, och du dyker upp för att granska och skicka.

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