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 Google Sheets till Salesforce – import utan dubbletter

Rickard Andersson Partner, Nodenordic.se

Att kopiera rader från ett kalkylark in i Salesforce känns enkelt tills du ser skadorna. Dubbletter av konton. Kontakter kopplade till fel företag. Och ett CRM som långsamt blir omöjligt att lita på.

Den här automatiseringen för Sheets Salesforce import slår mot intäktsteamen först. Marketing ops som städar leadlistor och byråägare som underhåller kunders CRM hamnar i samma röra, bara med olika insatser. Resultatet är enkelt: en felfri importväg som skapar konton bara när det behövs och håller kontakter korrekt kopplade.

Nedan ser du hur arbetsflödet stoppar dubbletter, vad det förändrar i vardagen och vad du behöver för att köra det i n8n.

Så fungerar automatiseringen

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

n8n Workflow Template: Från Google Sheets till Salesforce – import utan dubbletter

Problemet: import från kalkylark skapar dubbletter av konton

De flesta ”snabba” Salesforce-importer börjar i ett Google Sheet och blir sedan ett återkommande städprojekt. Någon klistrar in en ny lista, företagsnamnet är lite annorlunda (”Acme Inc” vs ”ACME”), och plötsligt har du två konton. Sedan skapas kontakter under det konto som råkade hittas först, vilket saboterar rapportering, routing och överlämningar. Ärligt talat är det inte importen som gör mest ont. Det är det tysta operativa släpet efteråt: säljare som ifrågasätter data, ops som gör sammanslagningar och ledare som tittar på dashboards som inte stämmer med verkligheten.

Friktionen byggs på. Här är var det fallerar i praktiken.

  • Varje manuell import introducerar inkonsekvent namngivning, vilket leder till dubbletter av konton som tar timmar att slå ihop senare.
  • Kontakter hamnar ofta kopplade till fel företag, så segmentering och territorieregler beter sig oförutsägbart.
  • Team slutar lita på Salesforce-fält eftersom de vet att ”arket var stökigt”, och användningen sjunker.
  • Att rätta det i efterhand innebär oftast export, avdubblettering och återimport, vilket skapar ännu fler möjligheter till fel.

Lösningen: importera rader från Sheets och förhindra dubbletter av konton

Det här arbetsflödet hämtar företagsrader från Google Sheets, kontrollerar Salesforce efter ett befintligt konto och skapar bara ett nytt konto när det verkligen inte finns. När ett konto redan finns mappar det det befintliga konto-ID:t och använder det för att koppla kontakten korrekt. När det är ett nytt företag avdubbletterar det först listan över ”nya företag” (så att upprepade rader i arket inte skapar flera konton), skapar sedan kontot en gång och kopplar alla relaterade kontakter till det. Slutresultatet är en strukturerad CRM-uppdatering som beter sig som du förväntar dig: ett konto per företag, kontakter kopplade till rätt konto och färre stökiga överraskningar senare.

Arbetsflödet startar med en manuell körning i n8n och läser sedan dina rader i arket. Därifrån förgrenas det: en väg hanterar befintliga konton och mappar deras ID:n, medan den andra vägen avdubbletterar och skapar nya konton. Till sist gör det en upsert av kontakter så att de skapas (eller uppdateras) och länkas till rätt företag.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du importerar 50 företag från ett Google Sheet varje vecka, och att varje företag har en primär kontakt. Manuellt lägger du kanske 5 minuter per företag på att skapa eller söka efter konton, plus ytterligare 5 minuter för kontakten, vilket är ungefär 8 timmar fokuserat arbete (och det är innan städning). Med det här arbetsflödet startar du körningen och låter det bearbeta i bakgrunden, ungefär 15–45 sekunder per företag. Du gör fortfarande en snabb kontroll av de första posterna, men det repetitiva arbetet försvinner och dubbletter smyger inte in i det tysta.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets som källa för företag- och kontaktrader.
  • Salesforce för att skapa konton och göra upsert av kontakter.
  • Google OAuth-uppgifter (hämta dem i Google Cloud Console under APIs & Services).

Kunskapsnivå: Nybörjare. Du kopplar konton, bekräftar fältmappningar och kör en liten testimport.

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

Så fungerar det

Manuell körning drar i gång. Du startar arbetsflödet när du är redo att importera (praktiskt när du vill ha kontroll och enkel testning).

Rader hämtas från Google Sheets. Arbetsflödet läser ditt ark med förväntade rubriker (till exempel: Company Name, Email, Phone, Industry) och förbereder sedan varje rad för kontroller och mappning.

Salesforce frågas och arbetsflödet delas upp i ”befintliga” vs ”nya”. Det söker konton på företagsnamn, slår ihop resultat för sammanhang och använder sedan en If-kontroll för att välja väg. Befintliga konton får sitt konto-ID mappat så att kontakter kan kopplas korrekt.

Nya företag avdubbletteras och skapas en gång. Innan något konto skapas avdubbletterar arbetsflödet listan över nya företag, skapar de saknade kontona och kopplar sedan tillbaka kontodatan till raderna så att varje kontakt får rätt kontorelation.

Du kan enkelt justera matchningsreglerna för att använda en striktare nyckel (som webbplatsdomän) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den manuella triggern

Det här arbetsflödet startas manuellt och förgrenas sedan till flera parallella grenar för kontomatchning och kontakt-upserts.

  1. Lägg till och öppna Manual Launch Trigger för att bekräfta att den är arbetsflödets startpunkt.
  2. Koppla Manual Launch Trigger till Retrieve Sheet Rows som visas i flödet.
  3. Gå igenom Flowpast Branding (sticky note) för dokumentationskontext – ingen konfiguration krävs.

Tips: Retrieve Sheet Rows skickar ut data till flera noder parallellt, så säkerställ att alla nedströmsnoder är anslutna innan ni testar.

Steg 2: anslut Google Sheets

Hämta CRM-data från ett kalkylark för att driva uppdateringar i Salesforce.

  1. Öppna Retrieve Sheet Rows.
  2. Ställ in Document på ert målkalkylark.
  3. Ställ in Sheet på det kalkylblad som innehåller kolumner som Company Name, First Name, Last Name och Email.
  4. Autentisering krävs: anslut era googleSheetsOAuth2Api-uppgifter.

⚠️ Vanlig fallgrop: om kolumnerna i arket är felbenämnda kommer uttryck som {{$json["Company Name"]}} att ge tomma värden längre ned i flödet.

Steg 3: sätt upp logik för matchning av befintliga konton

Det här steget frågar Salesforce efter matchande konton, slår ihop resultat och kontrollerar om ett befintligt konto-id finns.

  1. Öppna Query Salesforce Accounts och ställ in Resourcesearch.
  2. Ställ in Query=SELECT id, Name FROM Account WHERE Name = '{{$json["Company Name"].replace(/'/g, '\\\'')}}'.
  3. I Combine Existing Accounts ställer ni in Modecombine, aktiverar Advanced och slår ihop på Company Name (field1) ↔ Name (field2).
  4. I Existing Account Check lägger ni till ett strängvillkor med Value 1 satt till {{ $json["Id"] }} och Operation till isNotEmpty.
  5. I Map Existing Account ID mappar ni Current Key Id till New Key Account ID.

Autentisering krävs: anslut era Salesforce-uppgifter för Query Salesforce Accounts. Den här noden kräver autentisering även om inget är konfigurerat ännu.

Steg 4: skapa nya konton för företag som inte matchar

Företag som inte hittas i Salesforce dedupliceras och skapas som nya konton innan kontakter upsertas.

  1. I Retain New Companies ställer ni in Join ModekeepNonMatches och Output Data Frominput1, och slår ihop på Company NameName.
  2. I Deduplicate Company List ställer ni in OperationremoveDuplicates och jämför på Company Name.
  3. I Generate Salesforce Account ställer ni in Resourceaccount och Name{{ $json["Company Name"] }}.
  4. I Map New Account Name ställer ni in Keep Only Settrue och lägger till: id = {{ $json["id"] }} och Name = {{ $node["Deduplicate Company List"].json["Company Name"] }}.

Autentisering krävs: anslut era Salesforce-uppgifter för Generate Salesforce Account. Den här noden kräver autentisering även om inget är konfigurerat ännu.

Steg 5: upserta kontakter och länka till konton

Nya och befintliga konto-id:n slås ihop med kontaktdata och skickas till Salesforce som en upsert.

  1. I Join New Company Contacts ställer ni in Modecombine och slår ihop på Company NameName.
  2. Öppna Upsert Salesforce Contact och ställ in Resourcecontact och Operationupsert.
  3. Ställ in External IDEmail och External ID Value{{ $json["Email"] }}.
  4. Ställ in Last Name{{ $json["Last Name"] }}.
  5. I Additional Fields ställer ni in email{{ $json["Email"] }}, firstName{{ $json["First Name"] }} och acconuntId{{ $json["Account ID"] }}.

Autentisering krävs: anslut era Salesforce-uppgifter för Upsert Salesforce Contact. Den här noden kräver autentisering även om inget är konfigurerat ännu.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att validera parallell förgrening och uppdateringar i Salesforce, och aktivera sedan för användning i produktion.

  1. Klicka på Execute Workflow för att köra Manual Launch Trigger.
  2. Bekräfta att Retrieve Sheet Rows skickar ut data till alla parallella grenar: Query Salesforce Accounts, Combine Existing Accounts, Existing Account Check, Retain New Companies, Deduplicate Company List, Join New Company Contacts och Upsert Salesforce Contact parallellt.
  3. Verifiera att befintliga kontakter uppdateras och att nya kontakter skapas med ett Account ID när matchande konton hittas eller skapas.
  4. När resultatet ser korrekt ut, växla arbetsflödet till Active för löpande användning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-uppgifter kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först ditt Google OAuth-samtycke och tokenstatus i n8n-uppgifter.
  • Om du importerar ett större ark och använder batchar eller väntetider varierar processtiderna. Öka fördröjningar (eller batchstorlek) om efterföljande Salesforce-noder misslyckas eftersom poster inte har skapats ännu.
  • Matchning på företagsnamn är hjälpsamt men inte perfekt. Om ditt ark har ”Acme” och ”Acme Group”, justera uppslagslogiken eller lägg till en andra identifierare, annars får du falska matchningar som kopplar kontakter fel.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för Sheets Salesforce import?

Cirka 15–30 minuter om dina Google- och Salesforce-konton är redo.

Behöver jag kunna koda för att automatisera importer från Sheets till Salesforce utan dubbletter?

Nej. Du kopplar främst uppgifter och mappar fält i några noder.

Är n8n gratis att använda för det här arbetsflödet för Sheets Salesforce import?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också ta med Salesforce-licenser i kalkylen (och eventuella betalda Google Workspace-policyer som din organisation kräver).

Var kan jag hosta n8n för att köra den här automatiseringen för Sheets Salesforce import?

Två alternativ: n8n Cloud (hanterat, enklast att komma i gång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger obegränsat antal körningar men kräver grundläggande serveradministration.

Kan jag anpassa den här automatiseringen för Sheets Salesforce import för matchning på domän i stället för företagsnamn?

Ja, och det är en smart uppgradering om din data innehåller många snarlika namn. Byt uppslag av konto till att söka på Website (eller ett anpassat ”Domain”-fält) i stället för Company Name och behåll samma förgrening ”befintliga vs nya”. Vanliga anpassningar är att normalisera domäner (ta bort http/https), ignorera ”Inc/LLC” i namn och hoppa över rader när obligatoriska fält saknas.

Varför misslyckas min Salesforce-anslutning i det här arbetsflödet för Sheets Salesforce import?

Oftast är det en utgången token eller att Connected App saknar rätt scopes för åtkomst till konto och kontakt. Autentisera Salesforce-uppgiften på nytt i n8n och bekräfta sedan att användarprofilen kan läsa konton och skapa eller uppdatera kontakter. Om det bara misslyckas vid större körningar kan du också slå i API-gränser, så testa mindre batchar.

Hur många rader klarar den här automatiseringen för Sheets Salesforce import?

I n8n Cloud beror det på din månadsgräns för körningar; om du self-hostar beror det främst på din server och Salesforce API-gränser. I praktiken kör de flesta mindre team några hundra rader per import utan problem, särskilt om du delar upp i batchar. Om du importerar tusentals åt gången, planera för batchning och schemalägg körningar utanför kontorstid.

Är den här automatiseringen för Sheets Salesforce import bättre än att använda Zapier eller Make?

Ofta ja, eftersom dubblettskydd vanligtvis kräver förgreningslogik, sammanslagning av datapaths och noggrann hantering av ”skapa vs uppdatera”. n8n gör den typen av logik enklare att uttrycka, och self-hosting gör kostnaderna mer förutsägbara när du kör importer ofta. Zapier och Make kan fortfarande fungera om ditt behov är litet och dina matchningsregler är enkla. Men när du börjar hantera edge cases (stökiga namn, saknade fält, flera kontakter per företag) vill du ha mer kontroll. Prata med en automationsexpert om du vill ha hjälp att välja.

När detta väl rullar blir ditt kalkylark en pålitlig inmatning, inte en återkommande trigger för CRM-städning. Sätt upp det, testa på en liten batch och håll din Salesforce-data felfri utan att behöva vaka över varje import.

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