Project in één oogopslag
Sector
B2B dienstverlening
uitdaging
Offerteaanvragen van de website manueel verwerken in Teamleader CRM
oplossing
Gestructureerde offerteflow met automatische Teamleader-integratie
Resultaat
Aanvragen direct in CRM, geen manuele invoer, snellere opvolging
Technologie
Database: MariaDB
Backend: Bedrock/Acorn WordPress
Integratie: REST API
Architectuur: event-based queueing
Deployment: Docker
Resultaat
- Offerteaanvragen komen direct en gestructureerd toe in Teamleader, zonder manuele invoer.
- Opvolgingstijd is verkort doordat het CRM-record direct beschikbaar is na ontvangst van de aanvraag.
- Data in Teamleader is consistenter omdat invoer niet meer manueel gebeurt.
- Manuele verwerking van aanvragen is volledig geëlimineerd voor standaard gevallen.
- Interne communicatie over nieuwe aanvragen verloopt automatisch.
Context
Een B2B dienstverlenend bedrijf ontving offerteaanvragen via een contactformulier en e-mail. De informatie die binnenkwam was ongestructureerd en vereiste manuele verwerking vooraleer ze in Teamleader kon worden ingevoerd.
Het bedrijf gebruikte Teamleader als CRM en offertetool. De koppeling tussen websitebezoeker en CRM-contact verliep volledig manueel, wat leidde tot vertraging in opvolging en risico op fouten bij gegevensinvoer.
Waarom standaard niet volstond
Generieke contactformulieren leveren ongestructureerde data op. Zonder een gedefinieerde datastructuur is automatische verwerking niet mogelijk.
De Teamleader API biedt mogelijkheden om contacten, bedrijven en offertes aan te maken, maar vereist correcte mapping van inkomende data naar het juiste model. Dat vraagt om maatwerk in de integratilaag.
Uitdaging
- Offerteaanvragen op de website structureren zodat automatische verwerking mogelijk is.
- Inkomende data correct mappen naar Teamleader-entiteiten: bedrijf, contact, gekoppelde offertekans.
- Duplicaten vermijden: bestaande contacten of bedrijven mogen niet opnieuw worden aangemaakt.
- Foutafhandeling bij API-problemen zonder dat aanvragen verloren gaan.
- Bevestiging aan de aanvrager na succesvolle verwerking.
- Traceerbaarheid van elke aanvraag voor interne opvolging.
Doelstelling
- Offerteaanvragen komen gestructureerd binnen en worden automatisch verwerkt in Teamleader.
- Geen manuele invoer meer voor standaard aanvragen.
- Opvolgingstijd verkorten door directe beschikbaarheid in CRM.
- Correcte data in Teamleader zonder dubbele records.
- Transparante logging van elke verwerkte aanvraag.
Oplossing
De website werd uitgerust met een gestructureerde offerteflow: een meerstappenformulier dat de bezoeker begeleidt naar de juiste informatie. Elk veld is gedefinieerd en gevalideerd voor verzending.
Een backend integratilaag ontvangt de aanvraag, valideert de data en stuurt een request naar de Teamleader API. De flow controleert eerst of het bedrijf of contact al bestaat op basis van e-mailadres of btw-nummer, voor er iets aangemaakt wordt.
Na succesvolle verwerking in Teamleader ontvangt de aanvrager een bevestigingsmail en wordt een interne notificatie verstuurd naar het verantwoordelijke team.
Alle aanvragen worden intern gelogd ongeacht het resultaat van de Teamleader-call. Dit laat toe om bij een API-fout de aanvraag opnieuw te verwerken zonder dat de klant opnieuw contact moet opnemen.
Integraties en datastromen
01
Prijzen
Prijzen worden nooit opgeslagen in de portal. Bij het openen van een productpagina of het toevoegen aan een winkelwagen wordt een live prijsopvraag gedaan via de integratielaag.
Het ERP retourneert de klantspecifieke prijs op basis van klantnummer, artikel en hoeveelheid. Kortingen, staffels en contractprijzen worden zo correct doorgegeven.
Bij een timeout of fout wordt de klant gevraagd opnieuw te proberen. Er wordt geen fallback-prijs getoond om prijsfouten te vermijden.
02
Voorraad
Voorraad wordt gecached voor een korte periode om de belasting op het ERP te beperken. De TTL is configureerbaar en afgestemd op de update-frequentie van het ERP.
Bij het plaatsen van een order wordt altijd een finale voorraadcheck uitgevoerd, ongeacht de gecachte waarde. Zo wordt vermeden dat orders worden geplaatst op producten die tussentijds uitverkocht raakten.
Out-of-stock producten worden zichtbaar gehouden in de portal zodat klanten weten dat het artikel bestaat, maar kunnen ze niet bestellen.
03
Klanten
Klantdata wordt niet apart beheerd in de portal. Bij login wordt het profiel opgehaald uit het ERP op basis van het klantaccount.
De portal synchroniseert geen klantgegevens terug naar het ERP tenzij expliciet gevraagd.
04
Orders
Een order wordt aangemaakt in de portal, gevalideerd door de backend en doorgestuurd naar het ERP met juiste mapping voor artikelnummers, eenheden en referenties.
Na bevestiging in het ERP ontvangt de klant een orderbevestiging en wordt statusopvolging beschikbaar gemaakt in de portal.
Bij mislukte transmissie wordt de order in behandeling gezet en opnieuw geprobeerd via een retry-mechanisme.
Betrouwbaarheid en beheer
- Elke API-call naar het ERP wordt gelogd met tijdstip, payload, response en statuscode.
- Rate limiting voorkomt overbelasting bij piekverkeer.
- Timeouts zijn configureerbaar per operatietype.
- Bij herhaalde mislukkingen wordt een melding gegenereerd voor de beheerder.
- De integratielaag is stateless en gebruikt queueing om dataverlies te vermijden.
