Kuittien ja laskujen manuaalinen naputtelu kirjanpitoon on turhauttavaa työtä, joka sietää jäädä historiaan. Perinteiset OCR-ohjelmistot vaativat monimutkaisia sääntöjä ja hajoavat heti, kun kuitin asettelu muuttuu.
Nykyään voit rakentaa joustavan ja toimintavarman käsittelijän murto-osalla perinteisten järjestelmien kustannuksista. Tässä oppaassa rakennamme automaattisen työnkulun, joka lukee kuitit ja laskut suoraan sähköpostista tai kansiosta, analysoi ne ja tallentaa tiedot strukturoidusti.
Työkalupakkimme koostuu kahdesta osasta: n8n-automaatio hoitaa integraatiot ja työnkulun ohjauksen, kun taas Gemini 2.0 Flash vastaa asiakirjojen tulkinnasta. Tämä on modernia vibe-koodausta parhaimmillaan – rakennamme valmiin arkkitehtuurin ilman rivikään perinteistä taustajärjestelmäkoodia.
---
Arkkitehtuuri: Miten data liikkuu
Järjestelmä perustuu suoraviivaiseen, tapahtumaohjattuun putkeen. Emme rakenna monimutkaisia palvelimia, vaan hyödynnämme no-code-integraatioita datan siirtoon.
[Syöte: Sähköposti / Drive]
│
▼
[n8n: Tiedoston haku ja valmistelu]
│
▼
[Gemini 2.0 Flash: PDF-analyysi ja JSON-muotoilu]
│
▼
[n8n: Datan validointi ja suodatus]
│
▼
[Google Sheets / Kirjanpito-API]
Tämä arkkitehtuuri varmistaa, että järjestelmä on helposti laajennettavissa. Jos haluat myöhemmin vaihtaa tallennuspaikan Google Sheetsistä suoraan Netvisoriin tai Procountoriin, vaihdat vain työnkulun viimeisen palikan.
---
Vaihe 1: Syötteen vastaanotto n8n-alustalla
Ensimmäinen tehtävä on tuoda asiakirjat automaation piiriin. Voit käyttää n8n-alustalla useita eri liipaisimia (triggers).
Suosittelemme kahta lähestymistapaa:
- Sähköpostilaatikon seuranta (IMAP / Gmail): Automaatio käynnistyy aina, kun määritettyyn osoitteeseen (esim.
kuitit@yritys.fi) saapuu uusi viesti, jossa on liitetiedosto. - Pilvikansion seuranta (Google Drive / Dropbox): Automaatio käynnistyy, kun uusi tiedosto lisätään tiettyyn kansioon. Tämä sopii erinomaisesti mobiililaitteella tehtyyn asiakirjojen skannaukseen.
Kun n8n vastaanottaa tiedoston, se pitää sen binäärimuodossa muistissa. Seuraavaksi tämä binääridata lähetetään suoraan tekoälylle analysoitavaksi.
---
Vaihe 2: PDF-analyysi tekoälyllä (Gemini 2.0 Flash)
Miksi valita juuri Gemini 2.0 Flash? Se on optimoitu nopeuteen ja alhaisiin kustannuksiin, mutta sen tärkein etu on natiivi multimodaalisuus ja tuki pitkälle kontekstille. Se pystyy lukemaan PDF-tiedostoja ja kuvia suoraan ilman erillistä tekstintunnistusvaihetta (OCR).
Lisäksi Gemini tukee Structured Outputs -toimintoa. Voimme pakottaa mallin palauttamaan vastauksen täsmälleen haluamassamme JSON-muodossa.
#### Prompt-strategia ja JSON-rakenne
Lähetämme n8n:n kautta Geminille sekä liitetiedoston että järjestelmäohjeen (System Prompt). Ohjeistamme mallia toimimaan tarkkana kirjanpitäjänä.
System Prompt:
Sinä olet tarkka taloushallinnon assistentti. Tehtäväsi on analysoida annettu kuitti tai lasku ja poimia siitä tarvittavat tiedot kirjanpitoa varten.
Älä selitä tai lisää mitään ylimääräistä tekstiä vastaukseen. Palauta tiedot tiukasti määritellyssä JSON-muodossa.
Jos et ole varma jostain kentästä, jätä se tyhjäksi (null).
Määritämme n8n:n Gemini-solmussa (node) ulostulon tyypiksi JSON-skeeman. Tämä varmistaa, että saamme aina samanlaista dataa ilman pelkoa siitä, että tekoäly alkaa jutella mukavia.
Vaadittu JSON-skeema:
{
"type": "object",
"properties": {
"vendor": { "type": "string", "description": "Myyjän tai yrityksen virallinen nimi" },
"date": { "type": "string", "description": "Laskun tai kuitin päivämäärä muodossa YYYY-MM-DD" },
"invoice_number": { "type": "string", "description": "Laskun numero tai kuitin tunniste" },
"vat_amount": { "type": "number", "description": "Arvonlisäveron (ALV) yhteissumma euroina" },
"total_amount": { "type": "number", "description": "Laskun tai kuitin loppusumma euroina sisältäen ALV:n" },
"currency": { "type": "string", "description": "Valuuttakoodi, esim. EUR" },
"category": { "type": "string", "enum": ["Matkakulut", "Toimistotarvikkeet", "Ohjelmistot", "Markkinointi", "Muut"], "description": "Kuluun parhaiten sopiva kategoria" }
},
"required": ["vendor", "date", "total_amount", "currency"]
}
---
Vaihe 3: Datan vienti ja Google Sheets automaatio
Kun Gemini 2.0 Flash on palauttanut siistin JSON-objektin, n8n ottaa ohjat käsiinsä. Ennen datan tallentamista on hyvä tehdä nopea validointi.
1. Datan muokkaus (Set-solmu): Varmistetaan, että päivämäärät ja numeromuodot ovat yhteensopivia kohdejärjestelmän kanssa. Esimerkiksi desimaalipisteet voidaan tarvittaessa muuttaa pilkuiksi.
2. Google Sheets -integraatio: Käytetään n8n:n valmista Google Sheets -solmua. Valitaan toiminnoksi Append Row (Lisää rivi) ja yhdistetään Geminin palauttamat JSON-kentät taulukon sarakkeisiin:
- Sarake A: Päivämäärä (
date) - Sarake B: Myyjä (
vendor) - Sarake C: Loppusumma (
total_amount) - Sarake D: ALV (
vat_amount) - Sarake E: Kategoria (
category)
Tämä no-code-integraatio vie vain muutaman minuutin määrittää, mutta se säästää tunteja manuaalista työtä joka kuukausi.
---
Vinkkejä tuotantokäyttöön ja poikkeustilanteisiin
Kun tekoälyautomaatio otetaan osaksi yrityksen arkea, on tärkeää varautua virhetilanteisiin. Mikään LLM ei ole sataprosenttisen täydellinen.
- Luo hyväksyntävirta (Human-in-the-loop): Jos Gemini palauttaa matalan luottamusarvon (esimerkiksi jos loppusummaa ei löydy varmuudella), n8n voi lähettää viestin Slackiin tai sähköpostiin hyväksyntää varten ennen kuin tiedot viedään kirjanpitoon.
- Käsittele useat sivut huolellisesti: Monisivuiset laskut voivat kuluttaa enemmän tokeneita. Gemini 2.0 Flash käsittelee suuretkin PDF-tiedostot tehokkaasti, mutta varmista, että promptissa pyydetään analysoimaan nimenomaan koko asiakirja, ei vain ensimmäistä sivua.
- Tiedostojen arkistointi: Kun käsittely on valmis, siirrä alkuperäinen PDF-tiedosto Google Drivessa kansioon "Käsitellyt" ja nimeä se uudelleen muotoon
YYYY-MM-DD_Myyjä_Summa.pdf. Tämä helpottaa etsimistä myöhemmin.
---
Siirry manuaalisesta työstä automaatioon
Tämän järjestelmän rakentaminen osoittaa, miksi vibe-koodaus ja modernit integraatioalustat muuttavat työnteon luonnetta. Sinun ei tarvitse ostaa kallista valmisohjelmistoa tai kirjoittaa satoja rivejä koodia ylläpidettäväksi.
Yhdistämällä n8n:n joustavuuden ja Gemini 2.0 Flashin kyvyn ymmärtää visuaalisia asiakirjoja luot räätälöidyn laskuautomaation alle tunnissa. Järjestelmä on halpa ajaa, se skaalautuu tarpeidesi mukaan ja se tekee juuri sen, mitä sinä haluat.
Aloita luomalla ilmainen tili n8n-pilvipalveluun, hanki API-avain Google AI Studioon ja rakenna ensimmäinen testityönkulkusi jo tänään.