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

Google Sheets + Postman: uppdatera listor utan fel

Rickard Andersson Partner, Nodenordic.se

Din ”single source of truth” slutar vara pålitlig i samma stund som folk börjar kopiera och klistra in rader, redigera fel flik eller skriva över någon annans uppdatering. Sedan lägger du eftermiddagen på att jämka ihop versioner i stället för att leverera.

Den här Sheets API-automationen slår hårt mot driftschefer och marknadsförare, helt ärligt. Men produktteam som bygger snabba interna verktyg och byråfolk som spårar kundlistor känner också av det. Du får ett enda Google Sheet som förblir korrekt formaterat medan uppdateringar sker via enkla API-anrop.

Det här arbetsflödet gör n8n till ett lättviktigt REST-API framför Google Sheets, så att Postman (eller vilken app som helst) kan skapa, läsa, uppdatera och ta bort rader utan manuella ändringar. Du får se vad det automatiserar, vilka resultat du kan förvänta dig och hur du kör det på ett säkert sätt.

Så fungerar den här automatiseringen

Hela n8n-arbetsflödet, från trigger till slutlig output:

n8n Workflow Template: Google Sheets + Postman: uppdatera listor utan fel

Problemet: listuppdateringar fallerar så fort du skalar bortom en redigerare

Google Sheets är toppen tills det blir den delade backend:en för ett formulär, en prototyp, en leadlista eller en intern tracker. Folk redigerar direkt. Någon sorterar en kolumn och plötsligt är rad ”2” en annan person. En kollega duplicerar en flik ”bara för att testa”, och plötsligt finns det tre ”slutgiltiga” versioner. Även när alla vill väl skapar manuella uppdateringar fel som du upptäcker först senare, vilket betyder brandkårsutryckningar när du egentligen borde fatta beslut baserat på datan.

Det eskalerar snabbt. Här är var det brister när Sheets används som backend utan skyddsräcken.

  • Direktredigering blir till oavsiktliga schemaändringar (kolumner döps om, rubriker flyttas, formatering raderas).
  • Team slösar cirka 2 timmar i veckan på att reda ut ”vem ändrade vad” och fixa uppenbara misstag.
  • Det finns inget konsekvent sätt att skapa, uppdatera eller ta bort rader från andra verktyg, så folk improviserar.
  • När du väl automatiserar hanterar ad hoc-skript ofta en åtgärd, och skapar sedan fel vid nästa edge case.

Lösningen: ett enkelt REST-API framför Google Sheets

Det här arbetsflödet ger ditt Google Sheet ett tydligt API-lager med n8n-webhooks, vilket innebär att du kan hantera rader via standardanrop i stället för manuella ändringar. Du skickar en POST för att skapa en ny post, en GET för att läsa en eller flera poster, en PUT för att uppdatera en rad och en DELETE för att ta bort den. n8n tar emot anropet, routar det till rätt väg och kör rätt Google Sheets-åtgärd i bakgrunden. Uppdateringar mappas noggrant (så att du till exempel kan ändra bara ”status” utan att skriva om hela raden). Sedan returnerar arbetsflödet ett tydligt svar till Postman, din app eller vilket system som helst som anropar endpointen.

Arbetsflödet börjar med webhook-endpoints för create, list, read, update och delete. I mitten hämtar det rätt rader, mappar fält för säkra uppdateringar och tillämpar ändringar i Google Sheets. Till sist svarar det direkt med en payload för lyckat resultat (eller användbar felinfo) så att verktyget som anropar inte behöver gissa.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att ditt team uppdaterar en lista med 200 rader och gör cirka 20 ändringar per dag (nya poster, statusbyten, borttag). Manuellt lägger även en noggrann person kanske 2 minuter per ändring när du räknar in sök, dubbelkoll och att undvika konflikter, alltså ungefär 40 minuter om dagen. Med det här arbetsflödet skickar du en request per ändring från Postman (eller din app) på under en minut totalt och låter sedan n8n verkställa. Du får tillbaka cirka 30 minuter per dag, och arket förblir konsekvent.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Sheets som no-code-databastabell.
  • Postman för att skicka och testa API-anrop.
  • Google-kontouppgifter (anslut dem i n8n:s Google Sheets-noder).

Svårighetsgrad: Nybörjare. Du ansluter Google-uppgifter, klistrar in webhook-URL:er i Postman och matchar några fält som name, email och status.

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

Så fungerar det

Webhook-requesten kommer in. Du träffar rätt endpoint för create, list, read, update eller delete. Postman är enklast för att testa, men alla verktyg som kan skicka HTTP-requests fungerar.

Arbetsflödet routar till rätt åtgärd. Varje operation har sin egen inkommande webhook-sökväg, så en POST för create blandas inte ihop med en PUT för update. Den uppdelningen är det som gör systemet förutsägbart.

Google Sheets frågas eller ändras. Vid läsning hämtar n8n en rad (eller alla rader). Vid uppdatering förbereder ett fältmappningssteg bara de värden du vill ändra, och sedan ändrar arbetsflödet målraden. Vid borttag tar det bort matchande rad(er).

Ett tydligt svar returneras. n8n svarar anroparen med den skapade posten, listan eller en bekräftelse på att update/delete lyckades, så att ditt verktyg kan gå vidare utan manuella kontroller.

Du kan enkelt ändra kolumnerna i arket (till exempel lägga till company eller plan) för att matcha dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera webhook-triggern

Sätt upp inkommande REST-endpoints som triggar varje CRUD-operation. Dessa webhook-noder är startpunkterna för create-, read-, list-, update- och delete-förfrågningar.

  1. Öppna Incoming Create Hook och ställ in Path till items, HTTP Method till POST och Response Mode till responseNode.
  2. Öppna Incoming Read Hook och ställ in Path till items med Response Mode inställt på responseNode.
  3. Öppna Incoming List Hook och ställ in Path till items/all och Response Mode till responseNode.
  4. Öppna Incoming Update Hook och ställ in Path till items, HTTP Method till PUT och Response Mode till responseNode.
  5. Öppna Incoming Delete Hook och ställ in Path till items, HTTP Method till DELETE och Response Mode till responseNode.

Tips: Arbetsflödet använder fem webhook-triggers, där var och en routar till en specifik Google Sheets-åtgärd. Håll sökvägar och metoder synkade för att undvika att förfrågningar routas till fel gren.

Steg 2: Anslut Google Sheets

Konfigurera alla Google Sheets-operationer så att de pekar på samma kalkylark och flik. Dessa noder hanterar create, read, list, update och delete i arket.

  1. Öppna Append Sheet Record och ställ in Operation till append, Document till [YOUR_ID] och Sheet till Sheet1 (gid=0).
  2. I Append Sheet Record mappar ni kolumner: name till {{ $json.body.name }}, email till {{ $json.body.email }} och status till {{ $json.body.status }}.
  3. Öppna Retrieve Sheet Row och ställ in Document till [YOUR_ID] och Sheet till Sheet1 (gid=0). Sätt ett filter för row_number med {{ $json.query.id }}.
  4. Öppna Retrieve Sheet Rows och bekräfta Document [YOUR_ID] och Sheet Sheet1 (gid=0) för att returnera alla rader.
  5. Öppna Modify Sheet Row och ställ in Operation till update, Document till [YOUR_ID] och Sheet till Sheet1 (gid=0). Säkerställ att row_number matchas vid uppdateringar.
  6. Öppna Remove Sheet Rows och ställ in Operation till delete med Start Index inställt på {{ $json.query.id }}, samt samma värden för Document och Sheet.
  7. Inloggningsuppgifter krävs: Anslut era googleApi-inloggningsuppgifter i Append Sheet Record, Retrieve Sheet Row, Retrieve Sheet Rows, Modify Sheet Row och Remove Sheet Rows.

⚠️ Vanlig fallgrop: Om [YOUR_ID] lämnas oförändrat kommer noderna att misslyckas. Ersätt det med ert faktiska Google Sheet-ID.

Steg 3: Sätt upp Map Update Fields

Förbered payloads för partiella uppdateringar så att endast angivna fält ändras när en update-förfrågan tas emot.

  1. Öppna Map Update Fields och ställ in Mode till raw.
  2. Ställ in JSON Output till ={ "row_number": {{ $json.query.id }} {{ $if($json.body.keys().length > 0, ', ' + $json.body.toJsonString().replace('{', '').replace('}', ''), '') }} }.
  3. Verifiera att noden matar in i Modify Sheet Row så att de uppdaterade fälten tillämpas på rätt rad.

Steg 4: Konfigurera utdata-/åtgärdsnoder

Returnera korrekta API-svar för varje gren så att klienter får bekräftelse eller data från arket.

  1. Öppna Return Create Response och ställ in Respond With till json med Response Body { "status": "success", "message": "Record created." }.
  2. Öppna Return Read Response och behåll standardinställningarna för att returnera den lästa posten från Retrieve Sheet Row.
  3. Öppna Return List Response och ställ in Respond With till allIncomingItems för att skicka ut alla rader från Retrieve Sheet Rows.
  4. Öppna Return Update Response och ställ in Respond With till json med Response Body { "status": "success", "message": "Record updated." }.
  5. Öppna Return Delete Response och ställ in Respond With till json med Response Body { "status": "success", "message": "Record deleted." }.

Tips: Exekveringsflödet är linjärt per route (till exempel Incoming Update HookMap Update FieldsModify Sheet RowReturn Update Response). Inga parallella grenar används, vilket förenklar felsökning.

Steg 5: Testa och aktivera ert arbetsflöde

Verifiera varje endpoint med exempelanrop och bekräfta att Google Sheets uppdateras som förväntat.

  1. Klicka på Execute Workflow och skicka en POST-förfrågan till /webhook/items med en JSON-body som innehåller name, email och status för att testa Incoming Create Hook.
  2. Skicka en GET-förfrågan till /webhook/items?id=1 för att testa Incoming Read Hook och bekräfta att Return Read Response returnerar raden.
  3. Skicka en GET-förfrågan till /webhook/items/all för att testa Incoming List Hook och säkerställ att Return List Response returnerar alla rader.
  4. Skicka en PUT-förfrågan till /webhook/items?id=1 med endast de fält ni vill ändra och verifiera att Modify Sheet Row uppdaterar rätt rad.
  5. Skicka en DELETE-förfrågan till /webhook/items?id=1 och bekräfta att Remove Sheet Rows tar bort raden och att Return Delete Response returnerar lyckat-meddelandet.
  6. När testerna passerar växlar ni 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

  • Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera först det anslutna Google-kontot i n8n under Credentials, och bekräfta sedan att arket är delat med det kontot.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att sitta och redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Sheets API-automationen?

Cirka 30 minuter om ditt Google Sheet är förberett.

Behöver jag programmeringskunskaper för att automatisera Google Sheets-uppdateringar med den här Sheets API-automationen?

Nej. Du kommer främst att ansluta Google Sheets-inloggningar och klistra in webhook-URL:er i Postman-requests.

Är n8n gratis att använda för det här Sheets API-automationsarbetsflödet?

Ja. n8n har ett gratis alternativ för egen drift och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också ta hänsyn till Google Sheets användningsgränser, vilket vanligtvis inte är ett problem för små interna verktyg.

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

Kan jag anpassa det här Sheets API-automationsarbetsflödet för extra fält som company eller plan?

Ja, och det är enkelt. Lägg till nya kolumnrubriker i ditt Google Sheet och uppdatera sedan mappningen i ”Append Sheet Record” för skapande och steget ”Map Update Fields” för uppdateringar. De flesta justerar också lässvaret så att de nya fälten kommer tillbaka korrekt formaterade. Om du håller fältnamnen konsekventa mellan din JSON-body och arkrubrikerna slipper du mycket frustration.

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

Oftast är det Google-inloggningar som gått ut i n8n, eller att arket inte är åtkomligt för det anslutna kontot. Anslut Google Sheets-credential igen och bekräfta sedan att kalkylarket är korrekt delat och att rätt flik är vald i varje nod. Om läsning fungerar men uppdateringar misslyckas kan det också vara en rubrikmismatch (din request skickar ”Status” men kolumnen heter ”status”).

Hur många rader kan den här Sheets API-automationen hantera?

För små interna verktyg och prototyper fungerar oftast hundratals eller några tusen rader bra.

Är den här Sheets API-automationen bättre än att använda Zapier eller Make?

Det beror på vad du bygger. Zapier och Make är bra för enkla, linjära automatiseringar, men de är inte riktigt byggda för att fungera som ett CRUD-API som din app kan anropa vid begäran. Med n8n kan du exponera flera webhook-endpoints, förgrena logik på ett tydligt sätt och köra egen drift om du vill ha full kontroll över körningar och kostnader. Du får också mer flexibilitet när du behöver mappa partiella uppdateringar (som att bara ändra status) utan att skriva om posten. Om du är osäker på vilken väg som passar: Prata med en automationsexpert och beskriv vad som anropar API:et.

När ditt Sheet ligger bakom ett API är den kaotiska ”snälla, redigera inte kolumn C”-eran över. Sätt upp det en gång, och låt sedan dina verktyg uppdatera listan på ett korrekt sätt.

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