Ik pak het onderwerp AI weer op, dat ik veel te lang heb laten liggen, om in te gaan op een functie die mij veel tijd bespaart. En die daarom volgens mij ook voor jou interessant kan zijn.
In dit artikel leg ik je uit hoe je de logistieke facturen van een ecommerce vergelijkt met je eerdere schattingen, zodat je eerst de verschillen kunt zien en daarna actie kunt ondernemen, bijvoorbeeld door met de vervoerder te praten of iets te corrigeren als de fout bij jou ligt.
Dingen om rekening mee te houden:
- We gaan een factuur in PDF nemen en vergelijken met een CSV / Excel. Als we twee Excel-bestanden met elkaar zouden vergelijken, zou er bijna niets bijzonders aan zijn (tenzij er samengevoegde cellen in staan; dan kan dit systeem ons ook helpen).
- Ik ga ervan uit dat je in de database een schatting van de kosten van elke zending opslaat. Als je dat niet doet, stop dan met dit artikel en ga uitzoeken hoe je dat doet. Je houdt je marges veel beter onder controle en voorkomt onaangename verrassingen.
- Ik gebruik dit proces om factuur-PDFs te analyseren, maar het systeem kan je ook helpen om PDFs te gebruiken op de manier die jou uitkomt. In toekomstige artikelen leg ik bijvoorbeeld uit hoe je een leveranciers-PDF met meerdere referenties gebruikt om verschillende productpagina’s te maken.
- Ik ga ChatGPT 4 en 4o hiervoor gebruiken. Andere assistenten heb ik niet getest.
De problemen met logistieke facturen in ecommerce
Ik vertel niets nieuws als ik zeg dat in een ecommerce met producten van meerdere merken logistiek de tweede of derde grootste kostenpost is, alleen na de inkoop van goederen en eventueel salarissen.
Het is dus duidelijk dat dit aandacht verdient. Er staat veel geld op het spel en dat geld heeft rechtstreeks invloed op de winstmarge.
Het probleem is dat het controleren van facturen van logistieke bedrijven tijd kost, ook als je weet hoe belangrijk het is.
Tenminste als je dagelijks tientallen zendingen verstuurt. Laat staan als het er honderden of duizenden zijn.
En ja, sommige vervoerders sturen ons naast de factuur in PDF netjes een CSV met de uitsplitsing van elke zending.
Prima, maar die CSV kunnen we bijna nooit direct gebruiken, omdat er samengevoegde, lege cellen enzovoort in staan… Als je een beetje handig bent met Excel, maak je één keer een macro en klaar. Vanaf dat moment vergelijk je dat bestand met je eigen bestand met de schattingen uit het CMS.
Je zult ook zeggen dat het mogelijk is om een functie op je website te ontwikkelen die een PDF leest en omzet in een downloadbare CSV.
Weet ik.
We hebben het geprobeerd. Een developer had drie dagen nodig om de functie werkend te krijgen.
Maar helaas veranderen leveranciers hun factuurformaten, waardoor het 9 maanden later niet meer werkte.
Bovendien was het maar voor één vervoerder. Stel je voor dat je een vergelijkbaar systeem voor 8 of 9 verschillende moet ontwikkelen. Vermenigvuldig de ontwikkeltijd maar.
Je kunt ook zeggen dat het statistisch voldoende kan zijn om X willekeurige bestellingen te nemen (afhankelijk van het totale volume) en die te vergelijken.
En ja, dat kan. Ik ga de statistiek niet tegenspreken. Maar als je een simpele formule hebt om ALLE waarden te krijgen, ga je dan echt genoegen nemen met een kleiner percentage? Zeker als je waarschijnlijk meer tijd kwijt bent aan het handmatig controleren van die steekproef dan aan het systeem dat ik hier voorstel.
Om deze redenen zat ik al lang na te denken over hoe we dit werk konden versnellen.
En toen kwam ChatGPT.
Het proces om facturen met AI te vergelijken
Ik leg je stap voor stap uit hoe ik te werk ga.
Ter herinnering: je hebt hiervoor maar drie dingen nodig:
- Een factuur van een vervoerder in PDF waarop de kosten van elke zending staan.
- Een CSV / Excel uit de database van ons CMS / SGA / ERP met onze geschatte kosten per zending.
- ChatGPT.
Aan de slag.
#1. Ik geef ChatGPT contextinstructies
Ik open ChatGPT (onthoud: versie 4 of 4o) en plak deze prompt. Hij is niet van mij; ik kwam hem tegen toen ik online rondkeek. Ik weet niet meer waar, dus ik kan helaas niet de juiste bron vermelden:
MISSION
Act as Professor Synapse, a conductor of expert agents. Your job is to support me in accomplishing my goals by gathering context, then you MUST init:
*Synapse_CoR* =
"(emoji): I am an expert in [role&domain]. I know [context]. I will reason step-by-step to determine the best course of action to achieve [goal]. I can use [tools] and [relevant frameworks] to help in this process. I will help you accomplish your goal by following these steps: [reasoned steps] My task ends when [completion]. [first step, question]"
INSTRUCTIONS
1. 🧙🏾♂️, gather context, relevant information and clarify my goals by asking questions
2. Once confirmed you are MANDATED to init Synapse_CoR
3. 🧙🏾♂ and [emoji] support me until goal is complete
COMMANDS
/start=🧙🏾♂️,introduce and begin with step one
/ts=🧙🏾♂️,summon (Synapse_CoR*3) town square debate
PERSONA
-curious, inquisitive, encouraging
-use emojis to express yourself
RULES
-End every output with a question or reasoned next step.
-You are MANDATED to start every output with "🧙🏾♂️:" or "[emoji]:" to indicate who is speaking
- After init organize every output
“🧙🏾♂️: [aligning on my goal]
[emoji]: [actionable response]."
-🧙🏾♂️, you are MANDATED to init Synapse_CoR after context is gathered.
- You MUST Prepend EVERY Output with a reflective inner monologue in a markdown code block reasoning through what to do next prior to responding.
- Always answer in DUTCH
Dit helpt ons onder meer om elke interactie te eindigen met een vraag van ChatGPT. Hier zien we dat het nog wat extra informatie vraagt, in een nogal Yoda:

#2. We uploaden de PDF-factuur en geven instructies
Voordat je mijn antwoord ziet, wil ik je de PDF laten zien die ik ga uploaden, zodat je de betreffende prompt begrijpt.
Dit is het formaat van de factuur in PDF:

Op de afbeelding zie je twee zendingen. Ik markeer in rood de twee velden die mij per zending interesseren:
- De bestelreferentie, een tekststring met de bestel-ID uit ons CMS. Let op: dit is onze ID, niet die van de vervoerder (later zien we nog een ander voorbeeld hiervan).
- De totale verzendkosten, die we gaan vergelijken met onze schatting.
Met deze uitleg kun je de prompt begrijpen die ik plak en die rekening houdt met het specifieke formaat van de factuur:
Ik ga je een factuur in PDF sturen. Maak een lijst van alle referenties in de PDF samen met de totale prijs. Bij het referentienummer zijn alleen de cijfers vóór de # geldig; bijvoorbeeld: van deze referentie: 80052#1-1, is de geldige referentie: 80052.
Ik voeg de PDF-factuur toe aan de prompt en stuur alles naar ChatGPT.
Dit is het antwoord:

#3. We uploaden onze schattingen
Voordat we verdergaan met ChatGPT, moet je de CSV zien die ik hierna ga sturen. Daarin staan dezelfde twee velden die we uit de factuur haalden. Onthoud:
- ID van onze bestellingen.
- Geschatte verzendkosten.

Goed, nu kun je de volgende prompt begrijpen:
Ik ga je een Excel-bestand sturen met het besteloverzicht. Maak een lijst van alle “bestelnummer” samen met hun “geschatte verzendkosten”.
We voegen hier het Excel-bestand met onze schattingen aan toe en sturen het op.
Hier is het antwoord van ChatGPT:

#4. We vergelijken waarden
Let op, want hier komt de magie.
We voeren deze prompt in:
Zodra je alles hebt, vergelijk je de gegevens uit de pdf, “referenties” en “totale prijs”, met de gegevens uit “bestelnummer” en “geschatte verzendkosten” en controleer je of er afwijkingen zijn. Het doel is om te controleren of de kosten voor dezelfde referentie of hetzelfde bestelnummer overeenkomen. Als er geen afwijkingen zijn, zeg dan: Alles is ok, er zijn geen afwijkingen. Als er afwijkingen zijn, maak dan een excel met het numerieke resultaat van de afwijkingen
Structureer het Excel-bestand als volgt:
Kolom A: Referentie
Kolom B: Totale prijs PDF
Kolom C: Totale kosten Excel
Kolom D: Afwijkingen
Kijk eens wat een pracht (en het voegt zelfs een kolom toe waar ik niet om heb gevraagd):

Daar heb je alle verschillen. En we hebben het over een PDF met 9 pagina’s zendingen.
Disclaimer: dit proces is ontwikkeld door Juan Carlos Carpio, een topper in AI en content die we gelukkig bij Yo pongo el hielo hebben.
Geval waarin de bestel-ID niet op de factuur staat
Het kan zijn dat de leveranciersfactuur jouw bestel-ID niet bevat.
Het geval is vergelijkbaar met het vorige, maar uit de API-integratie tussen jouw systeem en dat van de logistieke dienstverlener heb je één gegeven nodig, de bestel-ID van de dienstverlener om die aan onze CSV toe te voegen.
Het idee is in dit geval om de PDF en CSV te matchen op de verzend-ID van de dienstverlener in plaats van op de ID uit ons CMS.
Dus bij een factuur als deze, die zoals je ziet niet de bestel-ID uit ons CMS bevat maar alleen de eigen verzend-ID van de dienstverlener:

En een eigen CSV zoals deze, waarin we via API de verzend-ID van de dienstverlener ophalen en wegschrijven:

We herhalen het proces waarbij we de veldnamen (de kolomkoppen) in de prompts aanpassen aan de nieuwe bestanden (belangrijk zodat ChatGPT niet in de war raakt) en krijgen dit:

Precies wat we zochten.
Conclusies
Zoals je ziet, wordt het analyseren van de verzendfacturen van je ecommerce vanaf nu een fluitje van een cent.
Letterlijk een kwestie van minuten. Met elke vervoerder en de bijbehorende factuur.
Je ontdekt dingen zoals:
- Dat je volumetrisch gewicht in rekening wordt gebracht (terecht of onterecht).
- Dat er posten op de factuur staan waar ze je niets over hadden verteld.
- Dat je tarief zonder waarschuwing is verhoogd.
- Dat de genoemde aanbieding niet is toegepast.
- Dat je een pallet van 2 ton hebt verzonden (wat niet waar zal zijn tenzij je autoaccu’s verkoopt).
Dat zijn maar een paar veelvoorkomende gevallen.
De volgende stap is herstellen wat nodig is of de juiste claim bij het bedrijf indienen, maar omdat ChatGPT je daar nog niet mee kan helpen (dat komt wel), wens ik je voorlopig succes.
Als je de post leuk vond, vind je hier meer artikelen over AI toegepast op digital business.
En als je elke donderdag mijn nieuwe artikel per e-mail wilt ontvangen, kun je je aanmelden –en meteen een klein cadeautje krijgen– op deze andere pagina.
Veelgestelde vragen
Waarvoor dient het analyseren van logistieke facturen met AI?
Het dient om de kosten die de vervoerder factureert te vergelijken met de schattingen die in je ecommerce zijn opgeslagen en afwijkingen te detecteren.
Welke bestanden heb je nodig om logistieke facturen met ChatGPT te vergelijken?
Je hebt een transportfactuur in PDF nodig, een CSV of Excel met schattingen van de verzendkosten en ChatGPT.
Waarom is het belangrijk om een schatting van de kosten van elke zending op te slaan?
Omdat je daarmee de marges beter beheert en verschillen ziet tussen wat je verwachtte te betalen en wat de vervoerder uiteindelijk factureert.
Welke gegevens worden uit de logistieke factuur in PDF gehaald?
Vooral de bestelreferentie en de totale verzendkosten.
Welke gegevens worden uit je eigen CSV of Excel gehaald?
Het bestelnummer en de geschatte verzendkosten die in het interne systeem zijn opgeslagen.
Hoe worden de gegevens uit de PDF en Excel vergeleken?
Je vraagt ChatGPT om de referentie en totale prijs uit de PDF te vergelijken met het bestelnummer en de geschatte kosten uit Excel en een tabel met afwijkingen te maken.
Welke kolommen moet het uiteindelijke Excel-bestand met afwijkingen bevatten?
Referentie, totale prijs PDF, totale kosten Excel en afwijkingen.
Wat gebeurt er als de factuur de bestel-ID van het ecommerce niet bevat?
Je kunt vergelijken met de verzend-ID van de dienstverlener, zolang die ID eerder in je eigen CSV is opgeslagen.
Waarom kan dit systeem tijd besparen?
Omdat je alle zendingen op een factuur kunt controleren in plaats van handmatig slechts een steekproef te bekijken.
Welke soorten fouten kan het helpen opsporen?
Het kan verschillen door volumetrisch gewicht, niet gemelde kosten, tariefverhogingen, niet toegepaste aanbiedingen of afwijkende bedragen opsporen.

Geef een reactie