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

Gmail till Google Sheets, hämtrutter bekräftas snabbt

Rickard Andersson Partner, Nodenordic.se

Upphämtningsförfrågningar landar i Gmail, och plötsligt gör du fem jobb samtidigt. Du kopierar adresser, jagar saknade uppgifter, klistrar in i ett kalkylark och försöker sedan “på känn” lägga en rutt som inte slösar bort en hel förardag.

Det här är den typ av röra som drabbar trafikledare först, men även driftschefer och logistikfokuserade grundare känner av den. Med den här Gmail Sheets-automationen förvandlar du ostrukturerade mejl till felfria rader och ett svar för ruttbekräftelse som är redo att skickas.

Nedan ser du vad flödet gör, vad du får ut av det och hur team använder det för att snabbare bekräfta upphämtningsrutter med flera stopp utan att leva i kalkylark.

Så fungerar den här automationslösningen

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

n8n Workflow Template: Gmail till Google Sheets, hämtrutter bekräftas snabbt

Problemet: upphämtningsförfrågningar skapar ruttdramatik

Ett mejl med en upphämtningsförfrågan ser enkelt ut tills du faktiskt ska driva det i verkligheten. En avsändare skriver “tisdag förmiddag”, en annan trycker in tre butiker i ett enda stycke, och någon glömmer alltid postnumret. Du slutar med att översätta röriga mejl till strukturerade stopp, byter sedan verktyg för att geokoda adresser och gissar till sist en effektiv ordning. Multiplicera det med ett antal förfrågningar per dag så blir det konstant kontextväxling, onödiga misstag och sena bekräftelser som frustrerar butiker och förare.

Det eskalerar snabbt. Här är var det oftast faller isär.

  • Någon kopierar fel adressrad till arket, vilket senare blir en fel pin och en onödig omväg.
  • Ruttplaneringen sker i någons huvud, så du kan inte upprepa den konsekvent när volymen ökar.
  • Bekräftelsemejl tar evigheter eftersom du skriver om samma detaljer och formaterar varje gång.
  • Du har ingen pålitlig logg över vad som begärdes kontra vad som schemalades, så tvister blir rena gissningsleken.

Lösningen: Gmail → Sheets → optimerad rutt → svar

Det här flödet lyssnar efter nya mejl med upphämtningsförfrågningar i Gmail och gör om dem till strukturerad logistikdata automatiskt. En AI-agent läser mejlet och plockar ut det du faktiskt behöver (butiks-ID, adresser, önskat datum och eventuella anteckningar), och skriver sedan både den råa förfrågan och de rensade fälten till Google Sheets så att du kan granska allt på ett ställe. Därefter geokodas varje stopp till GPS-koordinater, payloaden byggs för OpenRouteService multi-stop-optimeringsendpoint och bästa stoppordning räknas fram med en lastbilsprofil. Slutligen formaterar en annan AI-agent ett tydligt HTML-bekräftelsemejl med den ordnade upphämtningsplanen, tids-/varaktighetsdetaljer och rutlogiken redan beskriven, och svarar via Gmail.

Flödet startar när ett nytt Gmail-meddelande kommer in. Därifrån tolkar och formaterar AI-agenterna förfrågan, HTTP-anrop hanterar geokodning och ruttoptimering, och Google Sheets blir er gemensamma logg. Slutresultatet är ett bekräftelsesvar du kan skicka som det är, plus ett ark som hålls uppdaterat för driften.

Det du får: automation vs. resultat

Exempel: så här ser det ut

Säg att du får 5 mejl om dagen med upphämtningsförfrågningar med flera stopp, och att varje förfrågan innehåller 4 stopp. Manuellt kanske du lägger cirka 10 minuter på att extrahera detaljer och logga dem, ytterligare 10 minuter på att geokoda eller kontrollera platser och 10 minuter på att bygga en rutt och skriva svaret, alltså ungefär 30 minuter per förfrågan (cirka 2,5 timmar per dag). Med det här flödet kastar du ett öga på Google-arket för en snabb rimlighetskontroll och trycker på skicka på den förformaterade bekräftelsen, vilket snarare landar på 5 minuter per förfrågan. Det är ungefär 2 timmar tillbaka de flesta dagar.

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)
  • Gmail för att ta emot och svara på upphämtningsförfrågningar
  • Google Sheets för att lagra råa och tolkade förfrågningar
  • OpenRouteService API-nyckel (hämta den i OpenRouteService-dashboarden)

Kunskapsnivå: Medel. Du kopplar konton, klistrar in en API-nyckel och justerar ett par fält så att de matchar din mejlstil och dina kolumner i arket.

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

Så fungerar det

Ett nytt upphämtningsmejl kommer in i Gmail. Flödet triggar på inkommande upphämtningsförfrågningar så att inget missas i en stökig inkorg.

Mejlet tolkas till strukturerad logistikdata. En AI-agent extraherar fälten du bryr dig om (som stopp, datum och butiksidentifierare), och en strukturerad JSON-parser håller outputen tillräckligt konsekvent för att kunna sparas i ett kalkylark.

Stoppen geokodas och ruttas med OpenRouteService. Flödet gör om adresser till GPS-koordinater, bygger en multi-stop “jobs”-payload och anropar optimeringsendpointen för att få bästa sekvens och ruttens varaktighet med en lastbilsprofil.

Google Sheets uppdateras, sedan skickas bekräftelsesvaret. Arket berikas med koordinater och sekvensdetaljer, och en andra AI-agent formaterar ett HTML-bekräftelsemejl som skickas tillbaka direkt till beställaren via Gmail.

Du kan enkelt ändra bekräftelseformatet så att det matchar ert arbetssätt, eller justera vilken data som sparas i Sheets om du vill ha extra kolumner (förarnamn, fordonstyp eller servicetidsfönster). Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-implementeringsguide

Steg 1: konfigurera Gmail-triggern

Ställ in e-posttriggern så att inkommande kundförfrågningar startar arbetsflödet.

  1. Lägg till och öppna Inbox Email Trigger.
  2. Bekräfta att Simple är satt till false.
  3. Ställ in Poll Times till everyMinute om ni vill ha nära realtidsbearbetning.
  4. Inloggning krävs: anslut era Gmail-inloggningsuppgifter.

Steg 2: anslut Google Sheets

Dessa noder skriver upphämtningsposter, uppdaterar koordinater, läser in jobb för optimering och hämtar slutliga sändningsrader. Det finns totalt fem Google Sheets-noder; konfigurera dem tillsammans.

  1. Öppna Append Pickup Records och välj måldokument och blad: Document Transportation Orders, Sheet Multi-Stop.
  2. Mappa fält i Columns till uttryck som {{ $json.address }} och {{ $json.store_id }}_{{ $json.collection_request_id }}.
  3. Upprepa samma dokument-/bladval för Update Pickup Coordinates, Load Coordinate Rows, Update Sequence Duration och Fetch Shipment Rows.
  4. I Load Coordinate Rows och Fetch Shipment Rows ställer ni in Filters till collection_request_id = [YOUR_ID] (ersätt med ert faktiska ID eller ett uttryck).
  5. Inloggning krävs: anslut era Google Sheets-inloggningsuppgifter till alla Google Sheets-noder.
⚠️ Vanlig fallgrop: om Document ID fortfarande är [YOUR_ID] kommer arbetsflödet att misslyckas med att läsa eller skriva rader.

Steg 3: konfigurera AI-extrahering och tolkning

Dessa noder tolkar inkommande e-post till strukturerad upphämtningsdata och genererar bekräftelsesvaret.

  1. Öppna Logistics Data Interpreter och låt Text vara satt till =Here is an email from a customer requesting a shipment: ... {{ $json.subject }} ... {{ $json.text }}.
  2. Verifiera att Structured JSON Extractor har JSON-schemaexemplet för collection_request_id, store_id, address, collection_date och collection_time.
  3. Säkerställ att Structured JSON Extractor är ansluten som output-parser för Logistics Data Interpreter (inloggningsuppgifter läggs till i föräldranodens modell).
  4. Öppna OpenAI Chat Engine 2 och ställ in Model till gpt-4o-mini (redan konfigurerat).
  5. Inloggning krävs: anslut era OpenAI-inloggningsuppgifter till OpenAI Chat Engine 2 (modellen som används av Logistics Data Interpreter).
  6. Öppna Compose Confirmation Reply och bekräfta att Text är ={{ $json.formatted_reply }}.
  7. Öppna OpenAI Chat Engine och ställ in Model till gpt-4o-mini.
  8. Inloggning krävs: anslut era OpenAI-inloggningsuppgifter till OpenAI Chat Engine (modellen som används av Compose Confirmation Reply).
Tips: behåll systemmeddelandena i Logistics Data Interpreter och Compose Confirmation Reply oförändrade så att utdata förblir konsekvent och möjlig att tolka.

Steg 4: konfigurera geokodning av upphämtningar och uppdateringsloop

Den här delen lägger till upphämtningsrader, geokodar varje adress och uppdaterar GPS-fält i arket.

  1. I Split Address Items ställer ni in Field To Split Out till output för att iterera varje upphämtningsplats.
  2. I Iterate Pickups ställer ni in Batch Size till =1 för bearbetning rad för rad.
  3. Konfigurera Geocode Pickup Request med URL https://api.openrouteservice.org/geocode/search, query-parametern text ={{ $json.address }} och headers enligt definition.
  4. Inloggning krävs: anslut era httpQueryAuth-inloggningsuppgifter för Geocode Pickup Request.
  5. I Map Pickup Coordinates mappar ni koordinater från {{$json.features[0].geometry.coordinates[0]}} och {{$json.features[0].geometry.coordinates[1]}}.
  6. I Update Pickup Coordinates mappar ni gps_coordinates till {{ $json.longitude }}, {{ $json.latitude }} och matchar på location_id från {{ $('Append Pickup Records').item.json.location_id }}.
  7. Behåll Short Delay mellan uppdateringar för att undvika throttling i API:et eller arket.
⚠️ Vanlig fallgrop: om geokodnings-API:et inte returnerar några features blir Map Pickup Coordinates tom och Update Pickup Coordinates uppdaterar inte raden.

Steg 5: konfigurera optimering och sekvensering

Dessa noder bygger optimeringspayloaden, anropar optimerings-API:et och sammanfogar ordnade sekvenser med koordinater.

  1. I Load Coordinate Rows läser ni in raderna för aktuellt request-ID så att Build Job Payload kan skapa jobb.
  2. I Build Job Payload behåller ni den medföljande JavaScript-koden som skapar jobs och vehicles från arkdata.
  3. Build Job Payload skickar utdata parallellt till både Optimization API Call och Prepare Jobs Payload.
  4. I Optimization API Call behåller ni URL https://api.openrouteservice.org/optimization och låter Body vara satt till {{ JSON.stringify({ jobs: $json.jobs, vehicles: $json.vehicles }) }}.
  5. Inloggning krävs: anslut era httpHeaderAuth-inloggningsuppgifter för Optimization API Call.
  6. I Prepare Jobs Payload ställer ni in jobs till {{ $json.jobs }}, och splittrar sedan med Split Job List via Field To Split Out jobs.
  7. Använd Extract Job Order för att läsa optimeringssteg och outputta värden för id och sequence.
  8. I Combine Sequence & Coords ställer ni in Mode till combine och Fields To Match till id.
  9. I Assemble GPS Fields ställer ni in sequence till {{ $json.sequence }} och gps_coordinates till {{ $json.location[0] }}, {{ $json.location[1] }}.
  10. I Update Sequence Duration ställer ni in total_duration till {{ ($('Optimization API Call').item.json.summary.duration/60).toFixed(2) }} och matchar på gps_coordinates.

Steg 6: konfigurera utdata och e-postsvar

Den här delen formaterar upphämtningsschemat och skickar bekräftelsesvaret.

  1. I Fetch Shipment Rows behåller ni filtret på collection_request_id så att endast rader för aktuell förfrågan används.
  2. I Format Pickup Schedule behåller ni HTML-mallen som bygger formatted_reply.
  3. Säkerställ att Format Pickup Schedule kopplas till Compose Confirmation Reply, som sedan skickar vidare till Send Gmail Response.
  4. I Send Gmail Response ställer ni in Operation till reply, Message till {{ $json.output }} och Message ID till {{ $('Inbox Email Trigger').item.json.id }}.
  5. Inloggning krävs: anslut era Gmail-inloggningsuppgifter i Send Gmail Response.
Tips: bekräfta att HTML-svaret är giltigt genom att granska utdata från Format Pickup Schedule i exekveringsdatan innan ni skickar skarpa svar.

Steg 7: testa och aktivera ert arbetsflöde

Validera hela flödet från e-postinläsning till levererat svar.

  1. Klicka på Execute Workflow och skicka ett testmejl till Gmail-inkorgen som övervakas av Inbox Email Trigger.
  2. Verifiera att Logistics Data Interpreter outputtar en JSON-array och att Split Address Items skapar en item per upphämtning.
  3. Kontrollera att Append Pickup Records skriver nya rader och att Update Pickup Coordinates fyller i longitud/latitud och gps_coordinates.
  4. Bekräfta att Optimization API Call returnerar rutter, att Extract Job Order skapar sekvenser och att Update Sequence Duration skriver sequence och total_duration.
  5. Säkerställ att Send Gmail Response svarar i den ursprungliga tråden med HTML-bekräftelsen.
  6. När allt fungerar 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

  • Gmail-inloggning kan löpa ut eller kräva rätt scopes. Om svar slutar skickas, kontrollera först Gmail-nodens autentiseringsstatus i n8n.
  • Om du använder Wait-noder eller externa routing-API:er varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
  • OpenRouteService kan neka anrop om jobs-payloaden är felaktigt byggd eller om du slår i rate limits. Kontrollera HTTP-svarets body i noden för Optimization API Call innan du ändrar något annat.

Vanliga frågor

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

Cirka 30 minuter om du redan har kontona och API-nyckeln.

Behöver jag kunna koda för att automatisera Gmail Sheets-automation?

Nej. Du kopplar främst konton och klistrar in din OpenRouteService-nyckel. Det enda “avancerade” är att redigera några fält så att den extraherade datan matchar ditt faktiska mejlformat för upphämtningar.

Är n8n gratis att använda för det här Gmail Sheets-automationsflödet?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-användning (oftast liten per mejl) och vilken OpenRouteService-plan du har.

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

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 serverhantering.

Kan jag anpassa det här Gmail Sheets-automationsflödet för olika mejlformat för upphämtningar?

Ja, och det bör du. Snabbaste vinsten är att justera AI-agentprompten som används för “Logistics Data Interpreter” så att den extraherar exakt de fält ert team använder (butikskod, kontaktnamn, tidsfönster, antal pallar, vad som helst). Du kan också ändra agenten “Compose Confirmation Reply” så att den ger din föredragna layout, språk och extra instruktioner (grindkoder, lossningsnoteringar, förarens telefonnummer). Om du behöver en annan routningsprofil byter du OpenRouteService-payloaden från truck till ett annat alternativ som stöds i kodnoderna som bygger payloaden.

Varför fungerar inte min Gmail-anslutning i det här flödet?

Oftast är det en utgången OAuth-token eller saknade Gmail-behörigheter efter en säkerhetsändring. Återanslut Gmail-credentials i n8n och testa sedan noderna “Inbox Email Trigger” och “Send Gmail Response” igen. Kontrollera också att triggern tittar på rätt etikett eller inkorg, eftersom det är lätt att råka peka den mot en filtrerad mapp och tro att inget kommer in.

Hur många upphämtningsförfrågningar klarar den här Gmail Sheets-automationen?

I de flesta upplägg är dussintals per dag normalt, och fler om du self-hostar på en vettig VPS.

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

Ofta, ja, eftersom det här inte är en enkel “mejl till kalkylark”-zap. Du gör strukturerad extrahering, batchning, flera HTTP-anrop, sammanslagning av resultat och bygger en riktig optimerings-payload, vilket är där n8n känns mer flexibelt och mindre inlåst bakom betalväggar. Self-hosting ändrar också kalkylen om du hanterar många förfrågningar. Zapier eller Make kan fortfarande fungera bra för enkel loggning, men när ruttoptimering och rikare formatering kommer in i bilden blir de pilliga. Prata med en automationsexpert om du vill ha en snabb rekommendation baserat på din volym och teamets upplägg.

När det här väl rullar slutar upphämtningsförfrågningar att vara en inkorgsbrandövning och blir i stället ett repeterbart system du kan lita på. Flödet tar hand om det repetitiva, så att du kan fokusera på avvikelser och verklig drift.

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