Automatisch leads opvolgen

Een workflow die onthoudt wie hij al benaderd heeft.

Bergsma Interieurbouw maakt keukens en kasten op maat in Zwolle. Er komen elke week aanvragen binnen via het websiteformulier en de telefoon. De meeste worden één keer beantwoord en daarna nooit meer, want opvolgen is saai werk dat altijd wijkt voor iets dringenders.

Bergsma is een simulatieopdracht: een bedrijf dat wij zelf hebben opgezet om deze workflow op te bouwen en te testen.

stappen in de workflow
26
daarvan roepen AI aan
2
aan gebeurtenissen in één run ingehaald
60 uur
n8n
roept AI aan
de nieuwe staat gaat terug het geheugen inNieuwe aanvragenformulier + telefoonAntwoordenmailbox + bouncesVerrijkingsdienstexterne APIGeheugen vande vorige runwie, wanneer, hoe vaak, wie nooit meerHarde poortentoestemming · afmelding · bounceIdentiteitensamenvoegenvóór er iets uitgaatAntwoorden duidenClaude Haiku 4.5Leads beoordelenClaude Opus 5Volgende actiebepalencadans · stoppen · escalerenVerstuurdNaar een mensBewust niet verstuurdDagrapportTwee van de zesentwintig stappen roepen AI aan.

Automatisch opvolgen is makkelijk. Op tijd stoppen is het moeilijke deel.

Een reeks herinneringen bouwen kan iedereen. Het risico zit aan de andere kant: dat je blijft sturen naar iemand die al geantwoord heeft, die zich heeft afgemeld, of die twee keer in je systeem staat en dus alles dubbel krijgt.

Dat is niet alleen vervelend voor de ontvanger. Het is ook precies het gedrag waardoor een bedrijf besluit om dan maar helemaal niet meer op te volgen — en daarmee is het middel erger dan de kwaal.

Deze workflow draait daarom elke werkdag, leest eerst zijn eigen geheugen, en beslist per persoon opnieuw of er überhaupt iets uit hoort te gaan. Het antwoord is vaak nee.

Zes dingen die er hetzelfde uitzien en dat niet zijn.

Op elk van deze zes gaat een eenvoudige opvolgreeks onderuit. Ze zitten daarom allemaal in de testdata.

Een afwezigheidsmelding is geen antwoord

„Ik ben afwezig tot 22 juni, voor spoed bel 06-…” leest als een reactie en is het niet. Wie die als antwoord telt, haalt iemand uit de opvolging die nooit iets gelezen heeft.

Een vertraging is geen bounce

Een 4.7.1 door greylisting komt vanzelf goed. Een 5.1.1 betekent dat het adres niet bestaat. Ze zien er in de mailbox hetzelfde uit; het verschil is een prospect.

Dezelfde persoon, twee adressen

Iemand vult het formulier twee keer in, één keer met een punt in het mailadres en één keer zonder. Het telefoonnummer is identiek. Zonder die koppeling lopen er twee reeksen naar één mens.

Geen vinkje, geen mail

Staat het toestemmingsvinkje niet aan, dan gaat er niets uit. Ook niet als de aanvraag verder perfect is. Bellen naar aanleiding van iemands eigen aanvraag mag wel, dus het is geen dood spoor.

Een afmelding geldt voor de persoon

Niet voor de aanvraag. Wie zich afmeldt en drie maanden later opnieuw een formulier invult, komt niet vanzelf terug in een reeks.

Niet iedereen die schrijft is een klant

Er zit een concurrent tussen die naar inkoopprijzen vist en een leverancier die zichzelf aanbiedt. Die laatste stond al twee mails lang in de showroomreeks voordat hij het zelf meldde.

Zeven aanvragen en berichten, en er gingen twee mails uit.

De run gaat over vrijdag 12 juni. De vorige run was dinsdagavond; woensdag en donderdag zijn overgeslagen. Deze run moest dus zestig uur aan gebeurtenissen tegelijk inhalen. Hij deed er 25 seconden over en kostte vier en een halve cent. Dit is wat eruit kwam.

2 mails verstuurd

Een tweede poging bij iemand met een duidelijke vraag en geen termijn, en een eerste bij een oud-klant die zelf terugkomt. Volgende pogingen staan op 19 en 16 juni.

5 keer naar een mens

Onder andere een zorggroep die pantry-keukens op drie locaties vervangt: score 92 uit vier beoordeelde criteria. Daar hoort iemand te bellen, geen reeks.

2 reeksen werden 1

Dezelfde persoon stond twee keer in het systeem, met een net ander mailadres en hetzelfde telefoonnummer. Er stonden vandaag ook twee mails gepland. Er ging er geen enkele uit — hij had die nacht namelijk geantwoord.

2 opzoekingen overgeslagen

Eén omdat het een consumentenprovider is en een opzoeking daar niets oplevert maar wel quotum kost. Eén omdat de dienst net een storing had. Beide aanvragen zijn gewoon verder verwerkt.

Op een dag met drie nieuwe aanvragen en vier binnengekomen berichten gingen er dus twee mails uit, en kwamen er vijf dingen bij een mens terecht. Dat is geen tekortkoming van de workflow, dat is waar hij voor gebouwd is.

Zo staat hij erbij.

De workflow draait in n8n op onze eigen server en hangt daar aan een schema dat elke werkdag afgaat. Links de bronnen en het geheugen, in het midden zes stappen die allemaal in code draaien, en pas daarna de twee stappen die AI aanroepen. Rechts de vier uitkomsten.

Schermafdruk van de workflow in n8n: vier bronnen links, zes code-stappen in het midden, twee AI-stappen en vier uitkomsten rechts.

Beide uitgangen komen op dezelfde plek uit.

Elke AI-stap heeft een Success- en een Error-uitgang, en ze lopen allebei naar dezelfde controlestap. Dat is met opzet: of het model nu antwoordt of omvalt, er komt hoe dan ook iets uit dat de rest van de workflow kan verwerken.

Daardoor liep de run gewoon door toen het model er tijdens het testen helemaal uitlag.

Detail van de workflow: de routeerstap splitst naar antwoorden en leads; elke AI-stap heeft een Success- en een Error-uitgang die allebei naar dezelfde controlestap in code lopen.

Waar het hier om draait.

I

Antwoorden gaan vóór de planning

De workflow verwerkt eerst wat er binnenkwam en pas daarna wat er gepland stond. Andersom stuur je vanmorgen nog een herinnering aan iemand die vannacht heeft geantwoord. Dat is de fout die mensen het meest opvalt.

II

Identiteiten samenvoegen vóór het versturen

Erna samenvoegen lost niets op: de twee mails zijn dan al weg. Deze stap staat daarom vóór elke verzendbeslissing, en koppelt op telefoonnummer als het mailadres net anders geschreven is.

III

De score moet uit zijn eigen onderbouwing volgen

Het model scoort vier criteria, elk met een letterlijk citaat als bewijs. Daarna telt code na of de opgegeven score gelijk is aan de som van die criteria. Een kaal cijfer van 82 zegt niets; 82 dat optelt uit vier beoordeelde punten wel.

IV

Bij twijfel niet sturen

Te onzeker, niet beoordeeld, of een binnengekomen bericht dat niet geduid kon worden: in al die gevallen gaat er niets uit en komt het bij een mens. Niets doen is hier een geldige uitkomst, geen storing.

Toen de AI-laag er tijdens het testen uitlag.

Tijdens het testen viel de verbinding met het model volledig weg. De run liep gewoon door: de toestemmingscontrole, het samenvoegen van identiteiten, het uitsorteren van bounces en de planning zijn allemaal code. Alleen het duiden van de antwoorden en het beoordelen van de aanvragen ontbrak, en dat stond met zoveel woorden in het dagrapport.

Dat was geen toeval maar een ontwerpkeuze: de dingen die schade kunnen aanrichten, zitten niet in de AI-laag.

Het legde ook een gat bloot. In de eerste versie kreeg iemand alsnog een herinnering, terwijl hij die nacht had geklaagd dat hij er al te veel kreeg. Zijn bericht kon niet geduid worden, dus de reeks werd niet gestopt.

Nu geldt: komt er een bericht binnen dat niet geduid kan worden, dan staat de reeks stil tot een mens het gelezen heeft. Liever een dag te laat dan een mail naar iemand die net vroeg om ermee op te houden.