PDF Inkooporders Automatisch Verwerken in Exact Online & AFAS: De Complete Gids voor B2B Groothandel
Belangrijkste inzichten
Inkomende PDF inkooporders van klanten handmatig overtikken in Exact Online of AFAS kost een gemiddelde binnendienst 15 tot 25 uur per week. Typfouten in artikelnummers en staffels leiden tot retourstromen en vertraging. In deze gids leggen we stap voor stap uit hoe moderne AI-pipelines PDF-orders in seconden ontleden, valideren tegen je ERP-database en gecontroleerd klaarzetten via REST API's.
De stille bottleneck van de Nederlandse groothandel
Als je een technische groothandel, toeleverancier of distributeur runt met een jaaromzet tussen de €3M en €30M, herken je dit tafereel:
Elke ochtend stromen de mailboxen van de verkoop binnendienst vol met PDF-bijlagen: "Inkooporder #PO-98213", "Bestelling week 16", "Order conform offerte 2026-44".
Elke klant heeft zijn eigen sjabloon:
- Klant A stuurt een nette SAP-export van 4 pagina's met 35 regelitems.
- Klant B stuurt een gescande print van een handgeschreven bestelformulier.
- Klant C gebruikt eigen interne artikelnummers die totaal niet overeenkomen met jouw SKU's in Exact Online of AFAS.
Het resultaat? Twee tot vier binnendienstmedewerkers die urenlang met twee schermen open zitten: links de PDF, rechts het ERP-scherm. Knippen, plakken, artikelnummer opzoeken, staffelkorting controleren, leveradres verifiëren, order opslaan.
De verborgen kosten van handmatige orderinvoer:
- Gemiddelde tijd per order: 4 tot 11 minuten
- Foutmarge bij handmatige invoer: 1,8% tot 3,5% (verkeerd artikelnummer, foutief aantal)
- Kosten van een verkeerde levering: gemiddeld €120 tot €250 aan logistieke retourkosten, crediteren en klantfrustratie.
Waarom traditionele OCR-tools hierop stuklopen
Veel bedrijven hebben in het verleden geëxperimenteerd met "OCR-software" of scan-en-herken pakketten. Negen van de tien keer eindigde dat in frustratie.
Waarom? Omdat traditionele OCR gebaseerd is op starre sjablonen (zone-OCR):
- Je moet voor elke klant handmatig intekenen waar het ordernummer, de datum en de artikeltabel staan.
- Past een klant zijn factuurlay-out aan? Het template breekt.
- Loopt een order door over 3 pagina's met subtotale regels tussendoor? De parser raakt van slag.
- Gebruikt de klant een omschrijving in plaats van een exact artikelnummer? De OCR weet niet wat hij moet doen.
De moderne aanpak: Contextuele LLM-Parsing + ERP Matching
Sinds eind 2024 is de technologie fundamenteel veranderd. We gebruiken geen starre templates meer, maar een meerlagige architectuur die context begrijpt:
[Inkomende E-mail met PDF]
│
▼
┌────────────────────────────────────────┐
│ 1. Ingestion & Pre-processing │
│ • Validatie afzender & domein │
│ • PDF extractie (tekst & vector) │
└──────────────────┬─────────────────────┘
│
▼
┌────────────────────────────────────────┐
│ 2. Contextuele LLM Extractie │
│ • Herkent kop- en voetregels │
│ • Ontleedt dynamische artikeltabellen │
│ • Filtert opmerkingen & leverdata │
└──────────────────┬─────────────────────┘
│
▼
┌────────────────────────────────────────┐
│ 3. Deterministiche ERP Validatie │
│ • Fuzzy match klant-SKU ↔ Jouw SKU │
│ • Check staffelprijzen & debiteur │
│ • Voorraadcheck in Exact/AFAS │
└──────────────────┬─────────────────────┘
│
┌─────────┴─────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Match = 100% │ │ Match < 100% │
│ Direct naar ERP │ │ Alert naar mens │
│ (seconden) │ │ (1-klik goedkeur)│
└──────────────────┘ └──────────────────┘
Stap 1: Mailbox Ingestion & Documentclassificatie
Zodra een e-mail binnenkomt op [email protected] of [email protected], pikt de webhook de bijlage op. De parser controleert of het daadwerkelijk om een inkooporder gaat (en niet om een algemene vraag, spam of een reclamefolder).
Stap 2: Layout-Agnostische Extractie
Een gecombineerd vision- en taalmodel analyseert het document niet op basis van pixel-coördinaten, maar op basis van semantische betekenis:
- Waar staat het ordernummer van de klant?
- Wat is het gewenste afleveradres en de afleverdatum?
- Welke regels vormen samen de bestelling (aantal, eenheid, omschrijving, artikelcode, stuksprijs)?
Stap 3: Fuzzy Matching tegen de ERP-Database
Dit is waar het echte maatwerk zit. Klanten bestellen zelden met jouw exacte SKU:
- Klant bestelt: "Kogelkraan 1/2 duim messing"
- Jouw artikelbestand:
KK-MES-050(Kogelkraan Messing 1/2")
Onze integratie haalt via de Exact Online REST API of AFAS GetConnector de actuele artikelstamdata en debiteurenspecifieke prijsafspraken op. Via geavanceerde vector-matching en logische regels wordt de bestelde regel gekoppeld aan het juiste artikelnummer in jouw database.
Stap 4: Directe Aanmaak in het ERP
Als alle regels met 100% zekerheid gematcht zijn, wordt de verkooporder direct aangemaakt via de ERP API:
- Exact Online:
POST /api/v1/{division}/salesorder/SalesOrders - AFAS Software:
FbSalesOrderUpdateConnector - Odoo ERP:
sale.orderXML-RPC call
Binnen enkele seconden staat de order klaar in het ERP, inclusief het originele PDF-document netjes gekoppeld in de bijlagen.
Wat gebeurt er bij twijfel? (Human-in-the-Loop)
Geen enkel geautomatiseerd systeem mag blind aannames doen in de kern van je administratie. Daarom bouwen we altijd een fail-safe mechanisme in:
- Als een artikelnummer niet bestaat of een klant vraagt om een maatwerkproduct dat niet in de catalogus staat:
- De order wordt klaargezet met status "Concept ter beoordeling".
- De verantwoordelijke binnendienstmedewerker krijgt een notificatie in Microsoft Teams of e-mail met een directe link.
- De medewerker selecteert met één klik het juiste artikelnummer.
- Het systeem leert: de volgende keer dat deze klant ditzelfde afwijkende artikelnummer bestelt, weet de workflow direct welke SKU erbij hoort.
De Business Case: Cijfers uit de praktijk
Laten we de ROI berekenen voor een middelgrote technische groothandel in Nederland:
| Metric | Handmatige Verwerking | Met Agentfabriek Automatisering |
|---|---|---|
| Inkomende orders per week | 120 orders | 120 orders |
| Tijd per order | 8 minuten | Alleen controle van afwijkingen (seconden machinetijd) |
| Uren per week aan overtikwerk | 16 uur / week | < 1 uur / week (alleen uitzonderingen) |
| Foutieve orderregels per maand | ~18 orders | 0 orders |
| Kosten personeelsuren per jaar | ~€33.280 (bij €40/uur) | €2.988 / jaar |
| Netto Jaarlijkse Besparing | — | €30.292 / jaar |
Naast de directe personeelsbesparing rapporteert de binnendienst:
- Snellere levertijden: Orders die vóór 16:00 uur binnenkomen, liggen 3 minuten later al in het magazijn voor orderpicking.
- Geen piekstress: Aan het einde van de middag hoeft niemand meer in paniek 40 orders over te typen.
- Meer tijd voor verkoop: Medewerkers kunnen klanten actief bellen, offertes opvolgen en technisch advies geven.
Hoe starten we? Het 7-dagen traject
Wij geloven niet in IT-projecten van 6 maanden met dikke rapporten. Wij bouwen eerst een pilot op jouw echte data:
- Dag 1 — Intake & Sample Orders: We drinken een kop koffie, bekijken jouw ERP-inrichting en verzamelen 30 recente PDF orders van je top-10 klanten.
- Dag 2-4 — Extractie & ERP Koppeling: We configureren de parser en bouwen de API-koppeling met jouw Exact Online, AFAS of Odoo omgeving.
- Dag 5 — Schaduwdraaien: We laten de workflow meedraaien op de achtergrond. We vergelijken de output van de AI met wat jouw medewerkers handmatig invoeren tot de nauwkeurigheid 100% is.
- Dag 7 — Livegang: De workflow gaat live. Vanaf dag 7 worden inkomende orders automatisch verwerkt.
Zit jouw team vast in overtikwerk?
Wil je zien hoe dit werkt met de inkooporders van jouw eigen klanten?
Plan 15 minuten een virtuele kop koffie. Stuur vooraf twee geanonimiseerde PDF orders mee, en we laten je tijdens het gesprek live zien hoe onze engine ze binnen 3 seconden ontleedt en matcht met jouw artikelcodes.
Veelgestelde vragen
- Waarom faalt traditionele OCR bij inkomende PDF inkooporders?
- Traditionele OCR (Optical Character Recognition) werkt met starre templates (zone-based OCR). Zodra een klant het lettertype aanpast, een extra regel toevoegt of een afwijkend tabelformaat gebruikt, breekt het template. Moderne LLM- en Vision-pipelines begrijpen context, herkennen tabellen ongeacht de lay-out en matchen synoniemen of klantspecifieke artikelnummers automatisch.
- Hoe koppelt de automatisering met Exact Online of AFAS?
- We koppelen rechtstreeks via de officiële API's: voor Exact Online via de REST API (SalesOrders endpoint) met OAuth 2.0 authenticatie; voor AFAS Software via Profit GetConnectors (voor het ophalen van debiteuren en artikeldata) en UpdateConnectors (voor het inschieten van de verkooporder). Geen handmatige import van CSV-bestanden nodig.
- Wat gebeurt er als een artikelnummer niet bestaat of data ontbreekt?
- De workflow hanteert strikte validatielogica (human-in-the-loop). Als een SKU niet met 100% zekerheid gematcht kan worden of een prijs afwijkt van de contractafspraken, wordt de order gemarkeerd als concept en ontvangt de binnendienst direct een alert in Teams, Slack of e-mail met een directe link naar de afwijking. Er komt nooit corrupte data in je ERP.
- Hoe snel is zo'n order-to-ERP workflow geïmplementeerd?
- Bij Agentfabriek bouwen en testen we de workflow binnen 7 werkdagen. We beginnen met 20-50 historische orders van jouw vaste klanten om de extractielogica en artikelmatching te kalibreren. Na validatie draait het live in productie.
Safouan Bolbaroud is specialist in Operations AI & Workflow Automatisering en helpt Nederlandse bedrijven repetitief werk in Exact Online, AFAS en Odoo te automatiseren.
Bekijk profielKlaar om je operations te stroomlijnen?
Stop met handmatig overtikwerk in je ERP. Begin met een lekcheck op één proces.
Gerelateerde artikelen
Beste AI-tools voor groothandels in 2026: orderinvoer, productdata en verkoop
Welke AI-tools een technische of B2B-groothandel echt helpen: orders uit PDF en mail, productteksten, klantvragen en voorraad. Met wat je eerst moet regelen in je artikelstam.
Software koppelen aan je ERP zonder partnercontract: Exact Online, AFAS, Business Central en Ridder iQ
Je hebt geen partnerschap met je ERP-leverancier nodig om nieuwe software aan te sluiten. Vijf routes, van een doorgestuurde mail tot een alleen-lezen connector op je eigen server, met wat er per pakket kan.
Kratten en pallets die niet terugkomen: zo hou je het emballagesaldo per klant bij
Emballage lekt op vier plekken: kratten die bij klanten blijven, nieuwe huren terwijl er nog honderden buiten staan, facturen van de verhuurder die niemand narekent, en statiegeld dat niet op de factuur staat. Zo dicht je ze.