Lær · Guide · DuffBeautys platform
Sådan er bogholderiagenten bygget, trin for trin
Siden følger data fra kildesystemerne til bogholderen. Ved hvert trin viser den, hvad der kører, hvorfor vi valgte det, og hvad der holder det sikkert.
← Casen: en bogholderiagent på Google Cloud
- Kører
- hver nat
- Seneste kørsel
- ca. 10 minutter
- Pris pr. kørsel
- ca. 0,11 USD
Målt den 28. oktober 2026 på én natlig kørsel; prisen er beregnet efter Google Clouds listepriser.
Trin 1
Kilderne
Hver nat læser platformen lager- og ERP-systemet, webshoppene, økonomisystemet, kortbetalingerne, banken og dagens valutakurser. Forbindelsen til betal-senere-løsningen er bygget, men er endnu ikke med i den natlige kørsel.
Hvorfor sådan
Til hvert system er der én fælles klient, som alle pipelines bruger. Så taler de med kilden på samme måde, og ændrer kilden sit API, skal det kun rettes ét sted.
Sådan er det sikret
Adgangen til kilderne er kun læseadgang, og koden håndhæver det: en pipeline kan aldrig skrive tilbage i kildesystemerne. Ændrer en kilde sig, giver pipelinen besked i stedet for at gætte.
Lager · Rackbeat
lager, ordrer, fakturaer
Webshops · Shopify
ordrer, udbetalinger
Økonomi · e-conomic
finans, kladder, bilag
Kortbetaling · AltaPay
kortafregninger
Bank
kontoudtog via et drev
Valutakurser · ECB
dagens kurser
Betal senere · Klarna
bygget · endnu ikke natlig
hentes hver nat
Trin 2
Den natlige kørsel
En scheduler starter ét workflow hver nat. Små kørsler henter data fra hver kilde og indlæser dem. Derefter genopbygger transformationstrinnet tabellerne og kører sine kontroller. Den daglige mail sendes kun, når alle kontroller er bestået.
Hvorfor sådan
Det er så få tjenester som muligt til at køre en natlig pipeline pålideligt, og der er ingen orkestrator at holde i drift.
Sådan er det sikret
Ingen ser data, før kontrollerne er bestået. En fejlet kontrol stopper mailen, og hver kørsel efterlader en kvittering.
Scheduler · Cloud Scheduler
starter kørslen om natten
starter
Udtræk og indlæsning
små kørsler · Cloud Run · rå filer gemt som dokumentation
derefter
Transformation · Dataform
tabeller, views og kontroller
kun hvis kontrollerne består
Daglig mailkørsel
læser ét klargjort view
indlæses og kopieres
Trin 3
Hvor data ligger
Hvert svar fra kilderne gemmes uændret i et fillager. I data warehouset ligger data i lag: raw som modtaget, staging renset og typet, intermediate med forretningsregler og afstemninger, og core og marts med de tabeller, økonomi rapporterer og bogfører fra. Et separat ops-område gemmer kørselskvitteringerne og auditloggen.
Hvorfor sådan
Hvert tal, økonomi bruger, kan spores gennem lagene tilbage til den rå fil, det kom fra.
Sådan er det sikret
De rå filer er dokumentationen. Bliver et tal sat i tvivl, ligger filen, det kom fra, der stadig. Det hele bliver i EU, i virksomhedens eget Google Cloud-projekt.
Fillager · Cloud Storage
hvert råt svar, gemt
Data warehouse · BigQuery, EU
raw
som modtaget
staging
renset og typet
intermediate
regler, afstemninger, kontroller
core · marts
tabeller til rapportering og bogføring
ops
kørselskvitteringer · auditlog
læses kun via de faste adgange
Trin 4
Adgang til data
Ingen læser data warehouset direkte. Mennesker og agenter får adgang på én af tre måder: en dataforbindelse til spørgsmål, en kladdeforbindelse til bogholderiagenten og den daglige mail. Begge forbindelser er MCP-servere. En MCP-server er et program, der giver en AI-assistent en fast defineret adgang til jeres data og, hvor det er tilladt, til at handle i et system. De kører i virksomhedens egen cloud.
Hvorfor sådan
Hver person logger ind som sig selv. Så er adgangen personlig og kan trækkes tilbage ét sted.
Sådan er det sikret
Hver rolle har sine egne datasæt og grænser. Hvert kald logges, og kan logposten ikke skrives, sendes intet svar. Kladdeforbindelsen kan kun skrive kladder. Den kan aldrig bogføre.
Dataforbindelse · MCP
egen cloud · Cloud Run
- login pr. person
- et niveau pr. rolle, med grænser
- forespørgsel og udtræk
- hvert kald logges
Kladdeforbindelse · MCP
- skriver kun kladder
- bogfører aldrig
- hvert kald logges
Daglig mail
webshop- og lagerforskelle
bruges af
Trin 5
Hvem gør hvad
Operatøren driver og ændrer platformen. Økonomiteamet stiller spørgsmål i deres AI-assistent. Bogholderiagenten forbereder posteringer og skriver dem som kladder i økonomisystemet. Bogholderen gennemgår kladderne og bogfører dem i det økonomisystem, de allerede bruger.
Hvorfor sådan
Intet bogføres, før et menneske har godkendt det, og det sker dér, hvor bogholderen allerede arbejder.
Sådan er det sikret
Den eneste orange linje på kortet er den, der skriver i et forretningssystem, og for enden af den står et menneske. Hver rolles kort viser, hvad den kan se og gøre, og hvilke grænser den har.
Operatør · én konto
- Via
- AI-værktøjer (Claude Code, Codex) → dataforbindelse
- Ser
- alle datasæt, alle selskaber
- Kan
- forespørgeudtrækkekøre
- Grænser
- en daglig scanningsgrænse; kildeudtræk begrænset pr. dag
Økonomiteam
- Via
- AI-assistent (Claude) → dataforbindelse
- Ser
- økonomidatasættene
- Kan
- forespørge
- Grænser
- kun læsning; en grænse pr. forespørgsel og pr. dag
Analyse · ingen medlemmer endnu
- Via
- samme connector → dataforbindelse
- Ser
- analysedatasættene
- Kan
- forespørge
- Grænser
- en daglig scanningsgrænse
Bogholderiagent · én skrivekonto
- Via
- AI-agent (Claude) → kladdeforbindelse
- Ser
- kassekladder og kladder; klargjorte webshoplinjer
- Kan
- skrive kladderimportere
- Grænser
- en grænse pr. kald; importer kører først som prøvekørsel; kan aldrig bogføre
→ skriver kladder iØkonomi · e-conomic · kladder; læses tilbage hver natBogholder
- Via
- økonomisystemet (e-conomic)
- Ser
- agentens kladder
- Kan
- gennemgå og bogføre
- Grænser
- uden for platformen
Økonomi, via mail
- Via
- en mail hver morgen
- Ser
- gårsdagens forskelle mellem webshop og lager
- Kan
- læse og følge op
- Grænser
- sendes kun, hvis kontrollerne består
Trin 6
Sådan blev det bygget, og sådan ændres det
En builder agent skrev pipelines, kontrollerne og forbindelserne inden for projektets egne regler: et skrevet scope før hver pipeline, kontroller pr. tabel og et notat for hver beslutning. Operatøren gennemgår hver plan og godkender den, før noget ændres.
Hvorfor sådan
Operatøren godkender en plan i stedet for at skrive pipelines selv, og ingen ændring kommer i drift uden den godkendelse.
Sådan er det sikret
Koden udrulles fra Git via Cloud Build. Der er ingen servicekontonøgler nogen steder, og hver pipeline og forbindelse kører med sin egen identitet og kun de rettigheder, den skal bruge.
Kilder
- Google Cloud: Cloud Scheduler-dokumentation
- Google Cloud: Workflows-dokumentation
- Google Cloud: Cloud Run-dokumentation
- Google Cloud: Dataform-dokumentation
- Google Cloud: BigQuery-dokumentation
- Google Cloud: Cloud Storage-dokumentation
- Google Cloud: Cloud Build-dokumentation
- Model Context Protocol-specifikationen
Gennemgangen er skrevet 28. oktober 2026 ud fra platformen, som den er bygget; tallene er målt samme dag.
DuffBeauty har sagt ja til at blive nævnt og har godkendt de detaljer og tal, der vises her.
Vil I se, hvordan det her passer til jeres egne systemer, kan vi gennemgå det sammen, også med jeres IT, internt eller hos jeres IT-partner.
Book en samtale