Oefening 12 · Documentketen

Genereer een gecontroleerd conceptdocument

Combineer vaste cijfers, gevalideerde AI-tekst en goedkeuringsstatus in een conceptjaarrekening.

Waarom dit nodig is

AI hoort niet vrij een compleet Word- of PDF-document te improviseren. Een vast sjabloon bewaakt structuur, labels en bronbedragen.

Plaats in de eindoplossing

Wat draagt deze oefening bij?

Dit is het eindproduct voor menselijke beoordeling, niet de definitieve publicatie of deponering.

Wat gebeurt er technisch?

  • De documentservice ontvangt statements en aiContent als gescheiden objecten.
  • De server maakt een HTML-document en SHA-256-hash.
  • approvalStatus begint op pending en humanReviewRequired blijft true.
Doen én begrijpen

Bouwstappen met uitleg

Open workflow-editor
1

Maak de documentbody uit gecontroleerde statements en gevalideerde aiContent.

Waarom?
De cijferbron en tekstbron blijven zo traceerbaar van elkaar gescheiden.
Wat moet dit opleveren?
Een vaste DocumentRequest-structuur.
2

Zet approvalStatus op pending.

Waarom?
Een gegenereerd concept is nog niet beoordeeld door een financieel deskundige.
Wat moet dit opleveren?
Een response met pending en humanReviewRequired true.
3

Bewaar documentId, downloadUrl, sha256 en createdAt.

Waarom?
Deze velden maken audit, versiecontrole en integriteitscontrole mogelijk.
Wat moet dit opleveren?
Een documentmetadatarecord.
4

Open het HTML-document en controleer cijfers tegen het datawerkblad.

Waarom?
De laatste stap blijft menselijke vergelijking met de bron.
Wat moet dit opleveren?
Een zichtbaar conceptlabel en overeenkomende bedragen.

Wat gaat er mis als je dit overslaat?

Vrij gegenereerde documenten kunnen bedragen, volgorde, labels of verplichte waarschuwingen veranderen.

POST

PowerLab-endpoint

Test met credential in n8n

Dit endpoint bootst het relevante deel van Exact Online, de AI-provider of de documentservice na. De /api/v1-routes gebruiken de Division-parameter en Exact-achtige paginering, maar PowerLab is geen volledige Exact-emulator.

https://powerlab.rmeijer.eu/api/documents/annual-report
Authenticatie

Kies in de HTTP Request-node de opgeslagen Header Auth-credential PowerLab API. De sleutel hoeft je broertje niet te zien of in de workflow te plakken.

Voorbeeldbody

{
  "administration": {
    "division": 101001,
    "name": "Noordzee Handel BV"
  },
  "aiContent": {
    "accountingNotes": [],
    "managementSummary": "Oefenconcept.",
    "warnings": []
  },
  "approvalStatus": "pending",
  "currency": "EUR",
  "financialYear": 2025,
  "statements": {
    "balanceSheet": {
      "assets": 1000000,
      "equity": 600000,
      "liabilities": 400000
    },
    "profitAndLoss": {
      "expenses": 1170000,
      "result": 130000,
      "revenue": 1300000
    }
  }
}
Speel ermee

Varianten om zelf te proberen

Open vrije speeltuin

De bouwstappen hierboven zijn één mogelijke route, geen verplichte oplossing. Als jouw workflow hetzelfde resultaat veilig bereikt, is dat prima.

  • Genereer concepten voor twee verschillende normale klanten.
  • Genereer hetzelfde jaar opnieuw en bepaal zelf of je versieert of duplicate voorkomt.
  • Controleer de cijfers handmatig via /data.
Vrije uitdaging

Voeg sourceRunKey en sourceHash aan je documentmetadata toe zodat je later kunt bewijzen uit welke run en bronset het concept kwam.

Kun je uitleggen waarom?

Beantwoord deze vragen in je eigen woorden voordat je de oefening afrondt. Het doel is niet alleen de juiste nodes plaatsen, maar de ontwerpkeuzes kunnen verdedigen.

  1. Waarom scheid je statements en aiContent?
  2. Wat bewijst een hash wel en niet?
  3. Wie mag approvalStatus later op approved zetten?

Klaar wanneer

De workflow levert een downloadbaar concept met metadata, hash en verplichte menselijke-reviewstatus.