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

Telegram till Google Sheets, handsfree lagerinventering

Rickard Andersson Partner, Nodenordic.se

Inventeringar faller isär på samma tråkiga sätt varje gång. Någon hittar ingen penna, någon skriver ”A-12” som ”A/12”, och senare gissar du vad räkningen ens betydde.

Lagercontrollers känner av det först, eftersom det är de som stämmer av röran. Men lagerchefer och små driftteam dras in i det också. Den här Telegram Sheets automation gör röstmeddelanden till korrekt formaterade lageruppdateringar, så att ditt kalkylark hålls aktuellt medan folk fortsätter jobba.

Nedan ser du exakt vad workflowet gör, vilka resultat du kan förvänta dig och vad du behöver för att köra det driftsäkert i ett riktigt lager.

Så fungerar automatiseringen

Hela n8n-workflowet, från trigger till slutlig output:

n8n Workflow Template: Telegram till Google Sheets, handsfree lagerinventering

Problemet: röstinventeringar hamnar inte i arket

De flesta lager har redan den ”snabba” delen av inventeringar på plats. Gå i gångarna, räkna enheter, gå vidare. Den långsamma delen kommer senare, när räkningarna ska bli en korrekt registrering. Anteckningar skrivs om i slutet av skiftet. Någon tolkar ljudmeddelanden och försöker matcha dem mot plats-ID:n. Sedan upptäcker du att två personer räknade samma fack, eller att en plats hoppades över, så då är du tillbaka ute på golvet igen. Det handlar inte bara om tid. Det handlar om avbrott, att behöva gissa, och lagerdata du inte kan lita på.

Friktionen bygger på. Här brukar det oftast brista.

  • Räkningar ligger i någons telefon i timmar eftersom ”jag matar in det senare” blir ”i morgon”.
  • Plats-ID:n hörs fel eller skrivs fel, vilket i tysthet korrumperar arket fram till nästa revision.
  • Operatörer tappar tempo när de måste stanna, skriva och verifiera format mitt i rundan.
  • När en plats redan är räknad räknar man ändå om den, eftersom ingen har en live-lista över ”kvar att räkna” i handen.

Lösningen: prata med Telegram, uppdatera Google Sheets automatiskt

Det här n8n-workflowet gör Telegram till en guidande assistent för inventeringar. En operatör startar processen med ett enkelt kommando, och boten svarar med första lagerplatsen som fortfarande behöver räknas. Operatören går dit, spelar in ett kort röstmeddelande med plats-ID och antal, och skickar det som en vanlig Telegram-ljudnotis. OpenAI:s transkribering gör om ljudet till text, och sedan plockar ett extraktionssteg ut strukturerade fält (ett location_id och ett quantity) så att workflowet kan validera dem. Om meddelandet är otydligt ber boten om en ny inspelning i stället för att skriva in felaktig data. När platsen är giltig och fortfarande väntar på räkning uppdaterar workflowet ditt Google Sheet och frågar direkt efter nästa plats tills inventeringen är klar.

Workflowet startar med Telegram-meddelanden och röstnotiser. AI sköter transkribering och strukturerad extraktion. Google Sheets blir den levande källan till sanning, uppdaterad en bekräftad plats i taget.

Det här får du: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du har 3 platser att räkna i en snabb mini-inventering (workflow-demot använder tre). Manuellt kan en operatör lägga cirka 2 minuter på att räkna varje plats, och sedan ytterligare 3 minuter totalt på anteckningar, omskrivning och att reda ut vad som sades. Det blir ungefär 10 minuter, och ”skrivdelen” glider ofta senare under skiftet. Med det här workflowet är räknetiden densamma, men administrationen blir en röstnotis på 10 sekunder per plats plus en kort väntan på AI-bearbetning. Du avslutar rundan med arket redan uppdaterat.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
  • Telegram för operatörens röstmeddelanden och prompts
  • Google Sheets för att lagra väntande platser och antal
  • OpenAI API-nyckel (hämta den i OpenAI API-dashboarden)

Kunskapsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och uppdaterar några Sheet-ID:n och promptfält.

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

Så fungerar det

Ett Telegram-kommando eller en röstnotis drar igång. Workflowet lyssnar på inkommande Telegram-meddelanden och kontrollerar om det är ett kommando som /start eller ett röstmeddelande som behöver transkriberas.

Väntande platser hämtas från Google Sheets. Workflowet läser din lista över ”ej kontrollerade platser”, summerar vad som återstår och väljer nästa plats att räkna. Om du är på sista platsen ändrar det prompten så att operatören vet att de avslutar.

Röst transkriberas och görs om till strukturerade fält. Ljudklippet laddas ned från Telegram, transkriberas med en OpenAI-nod och skickas sedan till ett AI-extraktionssteg som outputtar en korrekt formaterad JSON-liknande struktur (location_id och quantity). En valideringskontroll fångar stökiga transkriberingar och ber om en ny inspelning.

Arket uppdateras och nästa prompt skickas. Om platsen är giltig och fortfarande ingår uppdateras Google Sheets med antalet. Därefter frågar boten efter nästa plats och använder en kort pause-nod så att meddelanden kommer i en vettig rytm.

Du kan enkelt justera platsnamnstandarden så att den matchar dina lageretiketter utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera Telegram-triggern

Konfigurera arbetsflödet så att det lyssnar efter inkommande Telegram-meddelanden och skickar dem vidare till flödet för röstbaserad inventering.

  1. Lägg till och öppna Telegram Incoming Trigger.
  2. Under Updates, bekräfta att message är valt.
  3. Klicka på Listen for Test Event efter att autentiseringsuppgifterna är anslutna för att validera registreringen av Telegram-webhooken.

Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter till Telegram Incoming Trigger (den här noden behöver Telegram-autentiseringsuppgifter men inga är konfigurerade).

Steg 2: Konfigurera kommandoroutning och hjälpsvar

Definiera hur kommandon valideras och hur hjälp eller okända kommandon hanteras.

  1. I Detect Voice Message, bekräfta att villkoret använder {{$json.message.voice.file_id}} för att identifiera en röstfil.
  2. I Command Validation, behåll array-kontrollen med {{ ['/start', '/help'] }} mot {{$json.message.text}}.
  3. I Route Command Choice, verifiera att reglerna jämför {{$('Telegram Incoming Trigger').item.json.message.text}} med /help och /start.
  4. I Help Guidance Reply, behåll Text som hjälpmeddelandet och Chat ID inställt på {{$('Telegram Incoming Trigger').item.json.message.chat.id}}.
  5. I Unrecognized Command Reply, behåll Text som varningsmeddelandet och Chat ID inställt på {{$('Telegram Incoming Trigger').item.json.message.chat.id}}.

Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter till alla Telegram-meddelandenoder (7+ noder hanterar svar och prompts).

⚠️ Vanlig fallgrop: Om Command Validation misslyckas, säkerställ att ert Telegram-kommando skickas som vanlig text (t.ex. /start) och inte som ett röstmeddelande.

Steg 3: Anslut Google Sheets för platsdata

Dessa noder hämtar och uppdaterar platsrader för inventeringens cykelräkning.

  1. I Fetch Unchecked Locations, ställ in Sheet Namegid=0 och Filterschecked = X.
  2. I Read Pending Locations, ställ in Sheet Namegid=0 och Filterschecked = =X.
  3. I Update Sheet Quantity, ställ in Operationupdate och mappa kolumner så att location_id är {{$json.output.location_id}}, actual_quantity är {{$json.output.quantity}} och checked är V.
  4. I Update Sheet Quantity, ställ in Document ID till ert kalkylark (ersätt [YOUR_ID]).

Autentiseringsuppgifter krävs: Anslut era Google Sheets-autentiseringsuppgifter till alla Google Sheets-noder (3 noder hanterar läsningar, aggregeringar och uppdateringar).

⚠️ Vanlig fallgrop: Om uppdateringar inte slår igenom, kontrollera att Matching Columns i Update Sheet Quantity inkluderar location_id.

Steg 4: Bygg flödet för plats-prompt och parallell aggregering

Den här delen väljer vilken plats som ska efterfrågas och avgör när den sista prompten ska skickas.

  1. Förstå parallellflödet: Fetch Unchecked Locations skickar output både till Merge Location Records och Aggregate Remaining Sites parallellt.
  2. I Aggregate Remaining Sites, behåll Fields to Aggregate som mappar location_id till location_ids.
  3. I Count Remaining Locations, sätt remaining_locations till {{$json.location_ids.length}}.
  4. I Check Final Location, behåll villkoret {{$json.remaining_locations}} = {{1}} för att identifiera sista platsen.
  5. I Send Final Location Prompt och Send Next Location Prompt, behåll Chat ID inställt på {{$('Telegram Incoming Trigger').item.json.message.chat.id}} och det dynamiska plats-id:t i meddelandetexten.

Steg 5: Ställ in rösttranskribering och AI-extraktion

Konfigurera AI-pipelinen som transkriberar röst och extraherar strukturerad plats- och kvantitetsdata.

  1. I Download Voice Clip, behåll File ID inställt på {{$json.message.voice.file_id}} och Resource inställt på file.
  2. I Audio Transcription Task, ställ in Resourceaudio, Operationtranscribe och Binary Property Name=data.
  3. I Extract Location Quantity, ställ in Text{{$json.text}} och behåll Has Output Parser aktiverat.
  4. Säkerställ att LLM Extraction Model är ansluten som språkmodell för Extract Location Quantity (använd gpt-4.1-mini).
  5. Säkerställ att Structured JSON Parser är ansluten som output-parser för Extract Location Quantity med schemaexemplet som visas i noden.
  6. I Validate Transcription Output, behåll kontrollerna för {{$json.output.location_id}} och {{$json.output.quantity}} för att routa fel till Request Repeat Message.

Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter till Download Voice Clip (redan konfigurerad) och till övriga Telegram-svarnoder.

Autentiseringsuppgifter krävs: Anslut era OpenAI-autentiseringsuppgifter till Audio Transcription Task och LLM Extraction Model (båda kräver OpenAI men saknar konfigurerade autentiseringsuppgifter).

⚠️ Vanlig fallgrop: Structured JSON Parser är en AI-undernod; autentiseringsuppgifter måste läggas till i de överordnade AI-noderna (Audio Transcription Task eller LLM Extraction Model), inte i själva parsern.

Steg 6: Validera platser och uppdatera arket

Det här steget säkerställer att den extraherade platsen fortfarande är giltig och uppdaterar inventeringsräkningen.

  1. I Read Pending Locations, behåll filtren så att endast ej kontrollerade platser returneras.
  2. I Aggregate Location IDs, behåll aggregeringen för att bygga location_ids.
  3. I Join Transcript With List, behåll Mode som combineBySql så att transkriptdata joinas mot platslistorna.
  4. I Validate Location Scope, behåll det booleska villkoret {{$json.location_ids.includes($json.output.location_id)}} för att routa giltiga poster till Update Sheet Quantity och ogiltiga poster till Invalid Location Alert.

Steg 7: Testa och aktivera ert arbetsflöde

Kör ett komplett end-to-end-test för att verifiera Telegram, AI-extraktion och uppdateringar i Google Sheets.

  1. Klicka på Execute Workflow och skicka /start i Telegram för att trigga inventeringspromptflödet.
  2. Skicka ett röstmeddelande med en plats och en kvantitet; bekräfta att Audio Transcription Task skapar text och att Extract Location Quantity returnerar JSON.
  3. Verifiera att Update Sheet Quantity markerar raden som kontrollerad och skriver actual_quantity.
  4. När allt fungerar, toggla arbetsflödet till Active så att Telegram Incoming Trigger körs i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera, kontrollera först n8n:s status för autentiseringskopplingen och delningsinställningarna för arket.
  • Om du använder Wait-noder eller extern bearbetning varierar transkriberingstiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
  • OpenAI-prompter i extraktionsnoder startar generiskt. Lägg in dina riktiga platsformat (som ”A12-03” vs ”A-12-3”) tidigt och tydligt, annars kommer du korrigera output hela veckan.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Telegram Sheets automation automation?

Cirka 45 minuter om ditt Sheet och din bot är redo.

Behöver jag kodningskunskaper för att automatisera lagerinventeringar?

Nej. Du kopplar mest konton och klistrar in ID:n och API-nycklar. Det hjälper att vara bekväm med att testa och justera prompter.

Är n8n gratis att använda för det här Telegram Sheets automation-workflowet?

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-kostnader, som vanligtvis ligger på några cent per röstnotis beroende på längd.

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

Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) 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 Telegram Sheets automation-workflowet efter vårt format för lagerplatser?

Ja, och det bör du. De flesta anpassningar sker i AI-extraktionsprompten som används för att plocka ut location_id och quantity från transkriberingen, plus valideringslogiken som kontrollerar ”är den här platsen fortfarande väntande?”. Vanliga justeringar är att acceptera flera alias för samma plats, tvinga antal till heltal och avvisa svar som inte innehåller båda fälten.

Varför misslyckas min Telegram-anslutning i det här workflowet?

Oftast beror det på bot-token, webhook eller chattbehörigheter. Skapa en ny Telegram Bot API-token vid behov, uppdatera sedan Telegram-autentiseringsuppgifterna i n8n och testa triggern igen. Bekräfta också att workflowet kan ladda ner röstklipp, eftersom vissa fel bara visar sig när ljudfilen hämtas. Om det fungerar för textmeddelanden men inte för röst är det ledtråden.

Hur många platser kan den här Telegram Sheets automation automation hantera?

Tillräckligt för normala inventeringar. På n8n Cloud är din begränsning främst månatliga exekveringar (varje röstnotis och Sheet-uppdatering räknas), medan self-hosting begränsas av din server. I praktiken kör team detta över dussintals eller hundratals platser så länge Google Sheet är strukturerat och du inte bombarderar boten med samtidiga meddelanden.

Är den här Telegram Sheets automation automation bättre än att använda Zapier eller Make?

Ofta, ja. Rösttranskribering plus validering är där enklare verktyg börjar kännas trånga, eftersom du behöver förgreningslogik, retries och tajtare kontroll över vad som skrivs in i arket. n8n ger dig också ett self-hosting-alternativ, vilket kan spela roll när meddelandevolymen växer. Zapier eller Make kan fortfarande fungera bra för enkel ”meddelande till rad”-loggning, men det här workflowet ligger närmare en guidad process än en enkel synk. Om du vill ha hjälp att välja rätt upplägg för din verksamhet, prata med en automationsexpert.

När detta är på plats slutar inventeringar vara ”räkna nu, fixa senare”. Boten tar hand om det tråkiga, och ditt Google Sheet förblir korrekt medan teamet fortsätter vara i rörelse.

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