Een bot die claims indient en opvolgt in een vervoerdersportaal
Een Nederlands 3PL-fulfilmentbedrijf dient onderzoeken en claims voor pakketten in via het klantportaal van een vervoerderspartner, gebouwd op Freshdesk. Het portaal heeft geen API, dus elk ticket werd met de hand geopend, gecontroleerd en beantwoord. Deze bot doet dat werk via een echte browser en biedt het aan als een kleine HTTP API.
In het kort
De portaalbot is een browserautomatisering (RPA) voor een Nederlandse 3PL. Hij logt in op het Freshdesk-klantportaal van een vervoerderspartner, dat geen API heeft, en opent claimtickets met de vervoerder, de reden en de factuur als bijlage. Hij leest ook antwoorden, plaatst reacties en sluit tickets. Het onderzoeksplatform van de 3PL roept hem aan zoals elke andere API.
- API-endpoints
- 7
- Ticketlijst lezen
- ~0.5s over HTTP
- Browsersessies
- 1 tegelijk
- Talen van het portaal
- Nederlands, Engels

01 / Het probleem
Waarom dit systeem nodig was
Als een pakket zoekraakt of beschadigd aankomt, opent de 3PL een onderzoek bij de vervoerder. Voor één vervoerderspartner betekent dat een ticket in een Freshdesk-klantportaal: vervoerder kiezen, claimreden kiezen, de verkoopfactuur bijvoegen en een verklaring van niet-ontvangst invullen. Voor geen van die stappen is er een API.
Het opvolgen kostte nog meer tijd. Elk open onderzoek moest worden gecontroleerd op nieuwe antwoorden, en reacties moesten met bijlagen worden teruggeplaatst. Het onderzoeksplatform van de 3PL had deze data automatisch nodig, maar de enige toegang was hetzelfde webportaal dat een mens gebruikt.
Een eerste browserversie werkte, maar was traag en zwaar. Elke controle startte Firefox, en negen open onderzoeken in een cyclus van 15 minuten betekenden zo'n 960 browserstarts per dag, meestal om tickets opnieuw te lezen die niet waren veranderd.
02 / De bouw
Hoe ik het heb gebouwd
De bot is een Python FastAPI-service die het portaal bedient met Playwright via Camoufox, een geharde Firefox-build. Hij vult het claimformulier in, inclusief de Choices.js-dropdowns voor vervoerder en claimreden, uploadt bestanden en geeft het nieuwe ticket-ID terug. Stuurt het portaal door naar de ticketlijst in plaats van naar het nieuwe ticket, dan zoekt de bot het ticket op onderwerp.
Sessiecookies worden na het inloggen opgeslagen en hergebruikt, dus de meeste verzoeken slaan het inlogscherm over. Een verlopen sessie herkent de bot aan de doorverwijzing naar de inlogpagina, en hij herstelt die met een nieuwe login. Eén globale lock staat maar één browser tegelijk toe, omdat parallelle sessies de single sign-on van het portaal overbelastten.
Lezen gaat via een sneller pad. Het portaal toont tickets als gewone HTML, dus de ticketlijst en een wijzigingsvingerafdruk (status, aantal reacties, tijd van de nieuwste reactie) worden met de opgeslagen cookies via HTTP opgehaald in ongeveer een halve seconde, in plaats van 20 tot 30 seconden. De browser start alleen als er iets is veranderd. Het Docker-image installeert alleen de libraries die Firefox nodig heeft, niet de volledige Playwright-browserset van ongeveer 2 GB.
03 / Functies
Wat de portaalbot voor vervoerdersclaims doet
Claimtickets aanmaken
Vult de velden voor vervoerder, claimreden, factuur en verklaring in, voegt bestanden toe en geeft het nieuwe ticket-ID terug.
Antwoorden en reacties plaatsen
Plaatst vervolgreacties met bijlagen en herkent knoplabels in zowel het Nederlands als het Engels.
Tickets sluiten
Sluit afgehandelde tickets, en behandelt een ticket dat al gesloten is als klaar in plaats van als fout.
Wijzigingen herkennen
Controleert via HTTP status, aantal reacties en nieuwste tijdstempel om te bepalen of een ticket volledig gelezen moet worden.
Terugvalopties om tickets te vinden
Vindt een ticket via de eerste pagina van de lijst, een directe URL of gescoorde zoeksuggesties.
Sessies bewaren
Hergebruikt opgeslagen cookies en logt alleen opnieuw in als het portaal doorverwijst naar de inlogpagina.
Bewijs bij fouten
Legt validatiefouten op het scherm vast en maakt een screenshot van de hele pagina als een formulierstap mislukt.
04 / Workflow
Zo werkt het, stap voor stap
- 01
Het verzoek ontvangen
Het onderzoeksplatform roept een endpoint aan, zoals indienen, ophalen, reageren of sluiten.
- 02
Het snelle pad proberen
Lijst- en wijzigingscontroles lopen via HTTP met opgeslagen cookies, zonder een browser te starten.
- 03
Het portaal bedienen
Is er een schrijfactie of volledige leesactie nodig, dan opent Camoufox het portaal onder de lock voor één browser.
- 04
Gestructureerde data teruggeven
De bot geeft ticket-ID's, status en het gesprek als JSON terug, zodat het platform ze kan opslaan.
05 / Schermen
Productschermen
Kies een scherm om de interface, workflow en operationele details te bekijken.

Overzicht van functies
06 / Wat er veranderde
Het resultaat in de praktijk
- Claimtickets in het vervoerdersportaal worden geopend, opgevolgd en gesloten vanuit het onderzoeksplatform van de 3PL, zonder dat medewerkers in het portaal hoeven in te loggen.
- Het lezen van de ticketlijst ging van 20 tot 30 seconden browsertijd naar ongeveer een halve seconde via HTTP, en ongewijzigde tickets starten geen browser meer.
- Fouten zijn zichtbaar en te herstellen: verlopen sessies herstellen zichzelf, en formulierfouten komen terug met de eigen meldingen van het portaal en een screenshot.
Veelgestelde vragen
Vragen over een vergelijkbaar systeem
Ja. Een bot met browserautomatisering kan het portaal gebruiken zoals een mens dat doet. Deze bot logt in op een Freshdesk-klantportaal, vult claimformulieren in, uploadt facturen, leest antwoorden en sluit tickets. Hij biedt die acties aan als een kleine HTTP API, zodat andere systemen hem kunnen aanroepen zonder te weten dat er een browser achter zit.
De bot logt opnieuw in en slaat de nieuwe sessie automatisch op. Hij herkent een verlopen sessie aan de doorverwijzing naar de inlogpagina en bewaart daarna nieuwe cookies voor het volgende verzoek. Het snelle leespad via HTTP faalt in dat geval zacht en valt terug op de browser, die onderweg de sessie vernieuwt.
De bot geeft de eigen foutmeldingen van het portaal door in plaats van stil te falen. Laadt het formulier opnieuw met validatiefouten, dan verzamelt hij de zichtbare fouttekst en slaat hij een screenshot van de hele pagina op. Stuurt het portaal hem naar de ticketlijst in plaats van naar het nieuwe ticket, dan vindt hij het nieuwe ticket aan de onderwerpregel.
Hij probeert drie routes op volgorde tot er een het juiste ticket opent. Eerst de eerste pagina van de ticketlijst, dan de directe ticket-URL, dan de zoeksuggesties van het portaal. Suggesties krijgen een score op ticket-ID, link en onderwerp, en de bot controleert of de geopende pagina het gevraagde ticket is voordat hij het leest.
Parallelle sessies overbelastten de single sign-on van het portaal, dus de bot draait één browser tegelijk. Een globale lock zet schrijfacties en volledige leesacties in een wachtrij. Het lezen van de ticketlijst en wijzigingscontroles lopen via gewone HTTP buiten de lock, zodat de vaste statuscyclus nooit hoeft te wachten op een trage formulierinzending.
De bot controleert eerst of een ticket is veranderd voordat hij het volledig leest. Een vingerafdruk van status, aantal reacties en tijd van de nieuwste reactie wordt vergeleken met de vorige. De tekst van antwoorden wordt nog steeds via de browser gelezen, zodat de opgeslagen vingerafdrukken in het platform exact overeenkomen. Dat voorkomt dat een oud antwoord opnieuw als nieuw wordt geïmporteerd.
Samenwerken
Vast met een vervoerdersportaal zonder API?
Ik bouw browserautomatisering die claims indient, tickets volgt en de resultaten in je eigen systemen zet. Stuur me de portaalworkflow die je team elke dag herhaalt.
Bespreek je projectVerder lezen
Gerelateerde case studies
3PL Automation SaaS | Investigation & Seller Operations
Een portaal en backend-automatisering waarmee webshops onderzoeken bij vervoerders starten en volgen, gekoppeld aan ChannelDock, Gmail, Google Drive en Freshdesk.
Lees de case study: 3PL-claimsoftwareEnterpriseOpsDesk AI | Fulfilment Operations Platform
Eén intern platform waarin een 3PL webshops, support, orderonderzoeken, crediteringen en magazijnaanwezigheid beheert, met AI-antwoorden onder menselijke controle.
Lees de case study: 3PL-operatiesoftwareEnterpriseAI Returns Scanner | Label Reading & Returns Intake
Een AI-retourenscanner die het verzendlabel leest, de retour aan de juiste ChannelDock-orderregel koppelt en dubbele boekingen voor Bol- en Amazon-retouren voorkomt.
Lees de case study: AI-retourenscanner