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

Airtable + Google Sheets: massuppdateringar som håller

Rickard Andersson Partner, Nodenordic.se

Ditt kalkylblad ser strukturerat ut. Sedan trycker du in det i Airtable och allt blir rörigt: delvisa importer, dubbletter, ”varför uppdaterades inte den raden?”, och en massa manuell efterstädning du inte hade planerat för.

Massuppdateringar i Airtable slår ärligt talat först mot Ops-team. Men marknad som synkar lead-listor och byråteam som underhåller kundtrackers stöter på samma problem: att flytta data är enkelt, att hålla den korrekt är det svåra.

Det här arbetsflödet batchar poster i grupper om 10, stödjer insert/update/upsert och försöker om på ett säkert sätt när Airtable rate-limit:ar dig. Du får lära dig vad det gör, vad du behöver och hur du ska tänka när du anpassar det för din egen bas.

Så här fungerar automationen

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

n8n Workflow Template: Airtable + Google Sheets: massuppdateringar som håller

Varför det här spelar roll: massimporter som inte skapar fel

Att uppdatera Airtable från Google Sheets låter enkelt tills du gör det i större skala. Ena dagen kopierar du 30 rader. Nästa vecka är det 800, och du trycker uppdateringar flera gånger om dagen. Airtables API har rate limits, och när du når dem blir din ”synk” till utspridda misslyckanden som inte alltid signalerar tydligt. Än värre: om du gör insert i stället för upsert skapar du dubbletter som ser legitima ut tills någon bygger en rapport och siffrorna plötsligt dubblas. Tidsförlusten är inte bara uppladdningen. Det är kontrollen, att köra om och att försöka lista ut vilka rader som faktiskt gick igenom.

Det summerar snabbt. Så här faller det i praktiken i riktiga team:

  • Att ladda upp poster en och en skapar massor av API-anrop, så större uppdateringar blir långsammare och misslyckas oftare.
  • Rate limiting kan stoppa en körning halvvägs, vilket innebär att du får sitta och jämföra kalkylblad med Airtable för att hitta saknade rader.
  • Om din logik för ”unik nyckel” inte är konsekvent råkar du lägga in dubbletter i stället för att uppdatera det som redan finns.
  • Airtables fälttyper är petiga, så en felaktig datatyp kan skapa tysta fel som först syns när någon klagar.

Vad du bygger: en batchad Airtable-synk med upserts och omförsök

Det här arbetsflödet tar en lista med poster (ofta från en export från ett kalkylblad eller en annan intern process), expanderar dem till enskilda objekt och bearbetar dem sedan i batchar om 10 innan de skickas till Airtable. Du väljer ett läge: insert för nya poster, update för befintliga eller upsert (uppdatera om den finns, annars skapa). Innan något skickas formaterar ett mappningssteg fälten så att Airtable får exakt rätt kolumnnamn och korrekta datatyper. Därefter gör arbetsflödet API-anropet till Airtable via HTTP, bevakar svar för rate limits och väntar samt försöker igen automatiskt vid behov. Till sist slår det ihop resultaten till ett strukturerat svar så att du ser vad som hände utan att gräva i dussintals körningar.

Arbetsflödet börjar med att indata-poster kommer in (antingen från en trigger eller en testkörning). Sedan batchas posterna i grupper om 10 och routas utifrån valt läge. Till sist postas de till Airtable och arbetsflödet använder inbyggda skyddsräcken (vänta + omförsök + merge) så att körningen blir klar i stället för att dö halvvägs.

Det du bygger

Förväntade resultat

Säg att du behöver trycka 200 rader från ett kalkylblad in i Airtable för en kampanj- eller ops-uppdatering. Att göra det manuellt (kopiera/klistra in, stickprovskontroll, fixa dubbletter) är lätt cirka 2 timmar, och det blir värre om du måste köra om efter ett misslyckande. Med det här arbetsflödet blir de 200 raderna 20 batchar om 10, så Airtable ser betydligt färre anrop och rate-limit-omförsök sker automatiskt. Du lägger fortfarande några minuter på att validera din fältmappning, men själva pushen blir i stort sett hands-off.

Innan du börjar

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Airtable för basen/tabellen du uppdaterar.
  • Google Sheets som källa för raderna du ska synka.
  • Airtable API-token (skapa den i Airtable Developer Hub)

Kunskapsnivå: Mellan. Du behöver inte koda, men du ska vara bekväm med att matcha fältnamn och testköra med exempeldata.

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

Steg för steg

Poster kommer in via en trigger eller en testkörning. I det medföljande arbetsflödet kan du köra det manuellt med exempeldata, eller mata in poster från en ”input”-trigger som skickar en lista med rader in i arbetsflödet.

Arbetsflödet expanderar och batchar dina rader. Det delar upp den inkommande listan i enskilda poster och grupperar dem sedan i batchar om 10 så att Airtable får färre, större förfrågningar.

Dina fält mappas och routas sedan efter läge. Ett steg för ”set fields” förbereder exakta Airtable-kolumnnamn, och en lägesväxel skickar batchen ned rätt väg: insert, update eller upsert.

Airtable uppdateras via HTTP, med skydd mot rate limits. Efter varje API-anrop kontrollerar arbetsflödet om du träffade en rate limit; om du gjorde det väntar det kort och försöker igen, och slår sedan ihop svaren till ett utdata.

Du kan enkelt ändra fältmappningen och merge-nycklarna (fieldsToMergeOn) så att de matchar din tabelldesign. 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 kan testas manuellt och tar även emot indata från ett annat arbetsflöde.

  1. Öppna Manual Run Trigger och lämna den som den är för tester vid behov.
  2. Öppna Airtable Input Trigger och bekräfta att arbetsflödets indata är definierade för baseId, tableIdOrName, mode, fieldsToMergeOn och records.
  3. För testning, låt Generate Sample Data vara ansluten till Manual Run Trigger för att generera exempelposter.

Steg 2: anslut Airtable

Dessa HTTP-noder anropar Airtable API för att infoga, uppdatera eller göra upsert på poster.

  1. Öppna Upsert Airtable Rows och bekräfta att URL är satt till =https://api.airtable.com/v0/{{ $('Airtable Input Trigger').first().json.baseId }}/{{ $('Airtable Input Trigger').first().json.tableIdOrName }}.
  2. I Upsert Airtable Rows, ställ in Method till PATCH och JSON Body till ={ "performUpsert": { "fieldsToMergeOn": {{ $('Airtable Input Trigger').first().json.fieldsToMergeOn.toJsonString() }} }, "records": {{ $json.records.toJsonString() }} }.
  3. Autentiseringsuppgifter krävs: Anslut era airtableTokenApi-uppgifter i Upsert Airtable Rows.
  4. Öppna Insert Airtable Rows och bekräfta att Method är POST med JSON Body ={ "records": {{ $json.records.toJsonString() }} }.
  5. Autentiseringsuppgifter krävs: Anslut era airtableTokenApi-uppgifter i Insert Airtable Rows.
  6. Öppna Update Airtable Rows och bekräfta att URL är =https://api.airtable.com/v0/{{ $('Airtable Input Trigger').first().json.baseId }}/{{ $('Airtable Input Trigger').first().json.tableIdOrName }}/ med Method PATCH.
  7. Autentiseringsuppgifter krävs: Anslut era airtableTokenApi-uppgifter i Update Airtable Rows.

⚠️ Vanlig fallgrop: Airtable API-URL:en styrs av indata till Airtable Input Trigger. Säkerställ att baseId och tableIdOrName tillhandahålls av det anropande arbetsflödet.

Steg 3: konfigurera aggregering av indata och batchning

Inkommande poster expanderas, aggregeras och batchas innan de routas.

  1. I Expand Record List, ställ in Field to Split Out till records och behåll Include inställt på allOtherFields.
  2. Öppna Batch Records 10 och ställ in Batch Size till 10.
  3. I Define Input Fields, låt tilldelningarna vara tomma om ni inte behöver injicera ytterligare fält.
  4. Konfigurera Aggregate Input Records med Aggregate satt till aggregateAllItemData och Destination Field Name till records.

Tips: Short Delay Guard lägger in en kort paus (0.2 sekunder) före batchning för att minska risken för rate-limit.

Steg 4: konfigurera routing och fältmappning

Poster routas efter mode och mappas till det format som Airtable förväntar sig.

  1. I Route by Mode, bekräfta att switch-reglerna utvärderar {{ $json.mode }} för update, upsert och insert.
  2. I Map Update Fields, verifiera att records.fields är satt till {{ Object.fromEntries(Object.entries($json.fields).filter(([key]) => key !== 'id')) }} och records.id till {{ $json.fields.id }}.
  3. I Map Insert Fields och Map Upsert Fields, säkerställ att records.fields är satt till {{ $json.fields }}.
  4. Behåll Aggregate Insert Records, Aggregate Update Records och Aggregate Upsert Records som de är för att bygga den slutliga records-arrayen.

Steg 5: konfigurera Airtable-åtgärder och hantering av rate-limit

Varje åtgärd skickar till Airtable och hanterar omförsök vid rate-limit.

  1. Aggregate Upsert Records skickar utdata parallellt till både Upsert Airtable Rows och Retry Merge A.
  2. Aggregate Insert Records skickar utdata parallellt till både Insert Airtable Rows och Retry Merge B.
  3. Aggregate Update Records skickar utdata parallellt till både Update Airtable Rows och Retry Merge C.
  4. I Check Rate Limit A, Check Rate Limit B och Check Rate Limit C, behåll statuskontrollen {{ $json.statusCode }} lika med 429 för att trigga omförsök.
  5. Säkerställ att Delay Retry A, Delay Retry B och Delay Retry C förblir anslutna till motsvarande noder Retry Merge A, Retry Merge B och Retry Merge C.
  6. Lämna Merge Response Output som den är för att slå ihop resultaten för records, updatedRecords och createdRecords.

Steg 6: konfigurera anropet av underarbetsflöde

Det här arbetsflödet kan anropas från ett annat arbetsflöde med Run Sub-Workflow (Config Required).

  1. Öppna Run Sub-Workflow (Config Required) och välj ett målflöde i Workflow ID.
  2. Ställ in mode till upsert (eller update/insert vid behov), baseId till ert Airtable base-ID och tableIdOrName till er Airtable-tabell.
  3. Behåll records mappat till {{ $json.records }} och fieldsToMergeOn till {{["field1", "field2"]}} (ersätt med era faktiska merge-nycklar).

⚠️ Vanlig fallgrop: Om ni lämnar Workflow ID tomt i Run Sub-Workflow (Config Required) kommer underarbetsflödet inte att köras.

Steg 7: testa och aktivera ert arbetsflöde

Validera arbetsflödet med exempeldata och aktivera det sedan för användning i produktion.

  1. Klicka på Execute Workflow och trigga Manual Run Trigger för att generera exempeldata från Generate Sample Data.
  2. Verifiera att Batch Records 10 skickar objekt till Route by Mode, och att ert valda mode går vidare till rätt Airtable-åtgärd.
  3. Bekräfta lyckade Airtable-svar i Merge Response Output med ifyllda records, updatedRecords eller createdRecords.
  4. När allt är verifierat, växla arbetsflödet till Active för att tillåta externa anrop via Airtable Input Trigger.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Felsökningstips

  • Airtable-inloggning kan löpa ut eller sakna scopes. Om det skapar fel, börja med att kontrollera behörigheterna för din Airtable-token i Airtable Developer Hub.
  • Om du använder Wait-noder eller extern bearbetning varierar timing. Öka väntetiden om efterföljande Airtable-anrop misslyckas för att ett omförsök sker för snabbt.
  • Set/Map Fields-noderna måste matcha Airtables fältnamn exakt, och typer spelar roll. En siffra som lagras som text (eller tvärtom) kan skapa förvirrande misslyckanden och ofullständiga uppdateringar.

Snabba svar

Hur lång tid tar det att sätta upp den här automationen för Airtable-massuppdateringar?

Cirka 30 minuter om din Airtable-bas är redo.

Behövs kodning för den här typen av massuppdatering i Airtable?

Nej. Du konfigurerar främst fältmappning och klistrar in rätt Airtable-ID:n.

Är n8n gratis att använda för det här arbetsflödet för Airtable-massuppdateringar?

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 volym. Du behöver också räkna in Airtable API-användning (de flesta team håller sig inom normala gränser, men tunga synkar kan trigga rate limits).

Var kan jag hosta n8n för att köra den här automationen?

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änsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här arbetsflödet för Airtable-massuppdateringar för andra use case?

Ja, och det bör du. Du kan ändra noderna Map Insert Fields / Map Update Fields / Map Upsert Fields så att de matchar din tabell och justera fieldsToMergeOn så att den använder din riktiga ”unika nyckel” (som TaskID, e-post eller en matchning på flera fält). Vanliga anpassningar är att lägga till ett transform-steg för datum, ta bort extra blanksteg innan matchning och dela upp stora jobb i mindre körningar baserat på status eller skapat datum.

Varför faller min Airtable-anslutning i det här arbetsflödet?

Oftast är det ett problem med API-token eller att fel Base ID/Table ID kopierats från URL:en. Dubbelkolla app… base ID och tbl… table ID, och bekräfta sedan att din token har åtkomst till den basen. Om det bara fallerar vid större körningar träffar du sannolikt rate limits och bör hålla batchstorleken på 10 samt se till att fördröjnings-/omförsöksvägen är aktiv. En sak till: fältnamn måste matcha Airtable exakt, inklusive versaler/gemener.

Vilken volym kan det här arbetsflödet för Airtable-massuppdateringar hantera?

Några tusen rader per körning är realistiskt, så länge du räknar med viss väntan vid rate-limit-omförsök.

Är den här automationen för Airtable-massuppdateringar bättre än att använda Zapier eller Make?

För batchade inserts/updates med omförsökslogik är n8n oftast bättre. Du får mer kontroll över hur poster chunkas, du kan routa mellan insert/update/upsert i ett och samma arbetsflöde och du kan self-hosta för obegränsade körningar. Zapier och Make är bra för snabba tvåstegsautomationer, men de blir ofta dyra eller sköra när du hanterar många rader. Om ditt arbetsflöde behöver smartare felhantering (som att vänta vid rate limits) eller att slå ihop svar till ett strukturerat utdata är n8n helt enkelt mer flexibelt. Prata med en automationsexpert om du vill ha hjälp att välja.

När det här väl rullar slutar Airtable-uppdateringar att vara ett skört ”hoppas det funkade”-moment. Du får snygga batchar, smarta omförsök och en bas du faktiskt kan lita på.

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