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

Typhoon OCR till Google Sheets, PDF till rader

Rickard Andersson Partner, Nodenordic.se

Skannade thailändska PDF:er är en särskilt tröttsam typ av arbete. Du kan inte kopiera och klistra in, så du slutar med att skriva om allt i ett kalkylark, dubbelkolla varje rad och ändå missa ett datum eller en underskrift.

Den här Typhoon OCR Sheets-lösningen slår hårdast mot driftteam när det finns en kö, men analytiker på byrå som bygger rapporter och småföretagare som följer upp pappersarbete känner av det också. Du får felfria, strukturerade rader i Google Sheets utan den dagliga “skrev vi in det rätt?”-oron.

Du får se vad workflowet gör från början till slut, vad du behöver för att köra det och hur du ska tänka kring anpassning så att det matchar dina dokumentformat.

Så fungerar den här automatiseringen

Här är hela workflowet du ska sätta upp:

n8n Workflow Template: Typhoon OCR till Google Sheets, PDF till rader

Varför det här spelar roll: thailändska PDF:er blir skuld i kalkylarket

De flesta team märker inte skadan direkt. Ett skannat PM blir tio, tio blir en veckohög, och plötsligt är någons hela förmiddag “bara att få in det i arket”. Dokument på thailändska gör det värre eftersom många OCR-verktyg snubblar på mellanrum, tonmarkeringar eller namn, så du skriver om ändå. Sedan kommer det oundvikliga: fel datum, saknad ämnesrad, en undertecknare som byts mot en kontakt, och en rapport som ser okej ut tills någon försöker använda den. Det handlar inte bara om tid. Det handlar om förtroendet för din data.

Friktionen byggs på. Här är var det oftast havererar.

  • Att skriva om en enda skannad PDF till Google Sheets kan ta cirka 20 minuter när du räknar in verifiering.
  • Små OCR-fel i thailändska (särskilt namn och siffror) leder till uppföljningssamtal, omarbete och obekväma trådar om “vilken version är korrekt?”.
  • Folk börjar “spara det till senare”, och kön blir systemet i stället för undantaget.
  • Även när du lägger ut datainmatningen på någon annan lägger du fortfarande tid på att granska, rätta och stämma av fält.

Det du bygger: thailändsk OCR till strukturerade rader i Google Sheets

Det här workflowet tar thailändska PDF:er från en lokal mapp, kör Typhoon OCR på varje fil och förvandlar den stökiga OCR-utdata till felfria, konsekventa fält som ditt kalkylark faktiskt kan använda. Du börjar med en mapp med dokument (till exempel myndighetsbrev, interna PM, leverantörshandlingar). n8n läser varje PDF, kör ett Python-kommando som anropar Typhoon OCR och skickar sedan OCR-texten till en AI-modell för att extrahera specifika fält som book_id, date, subject och signed_by. Ett litet formateringssteg konverterar AI-svaret till giltig JSON, och sista steget lägger till en ny rad i Google Sheets för varje dokument som behandlas. Du får ett ark du kan sortera, filtrera och rapportera på utan manuell datainmatning.

Workflowet startar med en manuell körtrigger, så att du kan testa säkert. Därefter behandlar det varje PDF och producerar strukturerad output i ett enda svep. Till sist blir Google Sheets din “single source of truth” för allt som tidigare satt fast i skanningar.

Det du bygger

Förväntade resultat

Säg att du hanterar 15 skannade thailändska PDF:er per vecka. Manuellt, om varje tar cirka 20 minuter att skriva in och dubbelkolla, blir det ungefär 5 timmar ren transkribering. Med det här workflowet: du lägger filerna i doc/-mappen, klickar på kör och lägger främst tid på att stickprovskontrollera raderna (kanske 2 minuter per dokument). Det blir ungefär en halvtimmes granskning plus maskinell bearbetning i bakgrunden, och ditt ark är klart.

Innan du börjar

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Typhoon OCR (Python-paket) för att OCR:a thailändska PDF:er lokalt.
  • Google Sheets för att lagra extraherade rader för rapportering.
  • API-nycklar (sätt TYPHOON_OCR_API_KEY och OPENAI_API_KEY i din miljö)

Kunskapsnivå: Medel. Du är bekväm med att installera Python-beroenden och sätta miljövariabler, men du behöver inte skriva en hel app.

Vill du att någon bygger det här åt dig? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).

Steg för steg

Du kör det vid begäran. Workflowet startar med en manuell trigger, vilket är perfekt när du validerar OCR-kvalitet och fältextrahering på riktiga dokument.

PDF:er hämtas från en lokal mapp. n8n läser filer från en doc/-katalog i samma miljö där det körs (eller en mountad mapp om du använder Docker). Varje fil blir ett item som workflowet kan bearbeta.

Typhoon OCR extraherar thailändsk text. En Execute Command-nod kör ett Python-kommando mot varje PDF för att producera OCR-output. Det är här Typhoon OCR faktiskt glänser, eftersom träffsäkerheten för thailändsk text ofta är det som avgör.

En AI-modell gör OCR till strukturerade fält. Workflowet skickar OCR-texten till en LLM-kedja (OpenRouter ingår som standard) och ber om en förutsägbar JSON-liknande struktur. Ett kodsteg rensar sedan upp den så att nästa system kan lita på den.

Google Sheets får en ny rad per fil. Sista steget lägger till de extraherade värdena i dina kolumner i kalkylarket (book_id, date, subject, detail, signed_by, signed_by2, contact, download_url).

Du kan enkelt justera vilka fält som extraheras så att det matchar dina dokument och din arklayout 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

Konfigurera arbetsflödets trigger så att ni kan köra OCR-pipelinen manuellt under test och uppsättning.

  1. Lägg till noden Manual Run Trigger som startpunkt.
  2. Lämna alla fält på standardvärden (inga parametrar krävs).
  3. Koppla Manual Run Trigger till Retrieve PDF Files.

Steg 2: Anslut lokal filinmatning

Konfigurera filläsaren så att arbetsflödet kan ladda PDF:er för OCR.

  1. Öppna Retrieve PDF Files och ställ in File Selectordoc/*.
  2. Säkerställ att den lokala mappen doc/ finns och innehåller PDF-filerna ni vill bearbeta.
  3. Koppla Retrieve PDF Files till Perform OCR Extraction.

⚠️ Vanlig fallgrop: Om mappen doc/ saknas eller är tom kommer Retrieve PDF Files inte att ge några items, och arbetsflödet kommer att verka inte göra någonting.

Steg 3: Konfigurera OCR-bearbetning

Kör OCR med ett Python-kommando för att extrahera text från varje PDF-fil.

  1. Öppna Perform OCR Extraction och ställ in Command=python -c "import sys, os; os.environ['TYPHOON_OCR_API_KEY'] = '[CONFIGURE_YOUR_API_KEY]'; from typhoon_ocr import ocr_document; sys.stdout.reconfigure(encoding='utf-8'); input_path = sys.argv[1]; text = ocr_document(input_path); print(text)" "doc/{{$json["fileName"]}}".
  2. Ersätt [CONFIGURE_YOUR_API_KEY] med er faktiska Typhoon OCR API-nyckel.
  3. Låt Execute Once vara inställt på false så att varje fil bearbetas individuellt.
  4. Koppla Perform OCR Extraction till LLM JSON Structuring.

Steg 4: Konfigurera LLM-strukturering

Skicka OCR-texten till LLM:en för att strukturera den till JSON-fält.

  1. Öppna LLM JSON Structuring och ställ in Prompt Typedefine.
  2. Ställ in Text till hela prompten med OCR-infogningen, med {{ $json["stdout"] }} enligt det som finns i arbetsflödet.
  3. Säkerställ att OpenRouter Chat Engine är ansluten som språkmodell för LLM JSON Structuring.
  4. Inloggning krävs: Anslut era openRouterApi-uppgifter i OpenRouter Chat Engine (inloggningsuppgifter ställs in på den överordnade LLM-noden, inte på chain-noden).
  5. Koppla LLM JSON Structuring till Format JSON for Sheet.

Tips: Om er OCR-utdata inte är i UTF-8 eller har oväntad formatering, justera Python-kommandot i Perform OCR Extraction innan ni felsöker LLM:en.

Steg 5: Konfigurera formatering för ark och utmatning

Rensa och parsa JSON från LLM:en och lägg sedan till den i Google Sheets.

  1. Öppna Format JSON for Sheet och låt Mode vara inställt på runOnceForEachItem.
  2. Klistra in den angivna JavaScript-koden i Code för att parsa och normalisera JSON-fälten.
  3. Öppna Append to Google Sheet och ställ in Operationappend.
  4. Ställ in Document ID[YOUR_ID] och Sheet NameSheet1 (gid 0).
  5. Mappa kolumner med uttrycken i noden, till exempel {{ $json.book_id }}, {{ $json.date }} och {{ $json.download_url }}.
  6. Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Append to Google Sheet.
  7. Koppla Format JSON for Sheet till Append to Google Sheet.

⚠️ Vanlig fallgrop: Om LLM:en returnerar ogiltig JSON kommer Format JSON for Sheet att kasta ett parse-fel. Granska råutdata från LLM:en i exekveringsdatan för att felsöka.

Steg 6: Testa och aktivera ert arbetsflöde

Kör ett end-to-end-test för att verifiera OCR-extraktion, JSON-parsning och utmatning till Google Sheets.

  1. Klicka på Execute Workflow för att köra Manual Run Trigger.
  2. Verifiera att Retrieve PDF Files ger items och att Perform OCR Extraction returnerar text i stdout.
  3. Bekräfta att LLM JSON Structuring ger strukturerad JSON och att Format JSON for Sheet returnerar fält som book_id, date och contact_email.
  4. Kontrollera Append to Google Sheet för att säkerställa att en ny rad läggs till i ert kalkylark.
  5. När ni är nöjda, slå på arbetsflödet till Active för att använda det i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Felsökningstips

  • Inloggningsuppgifter för Google Sheets kan gå ut eller kräva specifika behörigheter. Om det slutar fungera, kontrollera n8n-credential-posten för Google och bekräfta att kalkylarket är delat med samma Google-konto.
  • Om du använder Execute Command för Typhoon OCR kan saknade lokala beroenden misslyckas utan tydliga fel eller ge tom output. Kontrollera n8n-loggarna först och verifiera sedan att Python 3.10+, typhoon-ocr och Poppler (pdftoppm, pdfinfo) är installerade på hosten.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du redigera output för alltid.

Snabba svar

Hur lång tid tar det att sätta upp den här Typhoon OCR Sheets-automatiseringen?

Räkna med ungefär en timme om Python och ditt kalkylark är redo.

Krävs kodning för den här automatiseringen från thailändsk OCR till Google Sheets?

Nej. Du konfigurerar mest noder och klistrar in ett kommando, men du behöver installera lokala beroenden på maskinen som kör n8n.

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

Ja. n8n har ett gratis alternativ för egen drift 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å räkna in LLM-användning (ofta några cent per dokument, beroende på promptstorlek och modell) samt eventuell hosting eller API-setup för Typhoon OCR som du använder.

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 klarar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här Typhoon OCR Sheets-workflowet för andra användningsfall?

Ja, och det bör du sannolikt göra. Den vanligaste ändringen är att redigera extraktionsprompten i noden LLM JSON Structuring så att den matchar din dokumentlayout, och därefter linjera rubrikerna i ditt Google Sheet. Du kan också byta OpenRouter-chatmodell mot en OpenAI Chat Model om det är det ditt team redan använder. Om dina PDF:er kommer från uppladdningar i stället för en mapp, byt ut Manual Run Trigger mot en Webhook- eller Telegram-trigger och behåll resten.

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

Oftast saknas miljövariabler eller ett beroende på hosten. Bekräfta att TYPHOON_OCR_API_KEY är tillgänglig för n8n-processen och kontrollera sedan att Python och Poppler är installerade där Execute Command körs. Om OCR fungerar men arket är tomt är LLM-svaret ofta inte giltig JSON, så granska kodsteget Format JSON for Sheet och skärp prompten.

Vilka volymer kan det här Typhoon OCR Sheets-workflowet hantera?

Om du kör egen drift finns ingen körningsgräns (det beror främst på din server och hur lång tid OCR tar). I praktiken kör de flesta team det i batchar om tiotals till hundratals PDF:er, eftersom OCR och LLM-anrop är de långsamma delarna. På n8n Cloud är taket kopplat till din månatliga körkvot, så dokumentteam med hög volym kör vanligtvis egen drift för det här.

Är den här Typhoon OCR Sheets-automatiseringen bättre än att använda Zapier eller Make?

För just det här användningsfallet: ja, i de flesta fall. Zapier och Make har det tufft när du behöver lokal kommandokörning, åtkomst till filsystem och lite anpassad parsing i samma flöde, och du känner av begränsningarna snabbt. n8n gör också förgreningar och retries enklare när OCR returnerar delresultat. Haken: den här mallen fungerar bara på egenhostad n8n på grund av community-noden och kravet på Execute Command. Om du vill ha hjälp att välja enklaste upplägg för din miljö, prata med en automatiseringsexpert.

När det här väl rullar slutar skannade PDF:er att vara en flaskhals och blir användbar data. Sätt upp det, beta av kön och håll arket korrekt formaterat framåt.

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