Blogs
/
Zo bouw je een AI-afsprakenplanner die bellers kwalificeert voordat hij inplant

Zo bouw je een AI-afsprakenplanner die bellers kwalificeert voordat hij inplant

11
 MIN READ
October 2, 2026
Zo bouw je een AI-afsprakenplanner die bellers kwalificeert voordat hij inplant
BACK TO BLOGS
Add Retell AI as a preferred source on Google
ON THIS PAGE
Back to top

De meeste handleidingen over AI-telefoonagenten houden op bij het moment dat de agent opneemt en hallo zegt. Dat deel is makkelijk. Het lastige is ervoor zorgen dat de agent de vragen stelt die je beste dispatcher zou stellen, en de klus pas inplant als de antwoorden het waard zijn.

Doe je dat verkeerd, dan heb je alleen je ruis geautomatiseerd. Je agenda loopt vol met huurders die geen toestemming mogen geven voor het werk, bellers buiten je werkgebied en mensen die nog drie maanden verwijderd zijn van een beslissing. Elk van die afspraken is een tijdslot dat een echte klus had kunnen gebruiken.

In deze gids bouw je een AI-afsprakenplanner die eerst kwalificeert en daarna inplant. Het is een gespreksflow die gekoppeld is aan een live Cal.com-agenda, en het kost je ongeveer vijftien minuten. Kom je alleen voor de prompts? Die staan allemaal verzameld in de promptindex aan het einde.

Bekijk de build

De video hieronder laat dezelfde build van begin tot eind op het scherm zien. Volg die als je liever kijkt dan leest. De uitgeschreven stappen en de prompts op deze pagina komen overeen met de video, dus je kunt deze pagina in een tweede tabblad openhouden en onderweg kopiëren.

Wat een ongekwalificeerd gesprek je bedrijf echt kost

Elk inkomend gesprek zonder kwalificerend gesprek eindigt op een van twee manieren. Het levert een klus op die nooit iets zou worden, wat een tijdslot en de rijtijd van een monteur kost. Of niemand neemt snel genoeg op en de beller gaat door naar de volgende naam op de lijst.

Beide kosten hetzelfde. Het eerste verspilt capaciteit waarvoor je al hebt betaald. Het tweede geeft omzet weg aan een concurrent die wél opnam. Een agent die kwalificeert lost beide op, omdat hij bij de eerste keer overgaan opneemt en weigert gesprekken in te plannen die niet ingepland zouden moeten worden.

Stap 1: Kies een gespreksflow, geen single prompt-agent

Als je een nieuwe stemagent aanmaakt, heb je twee keuzes: een single prompt-agent of een conversation flow-agent (gespreksflow).

Een single prompt-agent is één blok instructies dat het model leest en waaromheen het improviseert. Die zet je snel op en is prima voor een lineair script, zoals het voorlezen van openingstijden en een adres.

Een gespreksflow is een kaart van het gesprek, node voor node, met expliciete vertakkingen. Het antwoord van de beller bij elke node bepaalt welke node daarna komt. De vergelijking van agenttypes in de docs beschrijft de volledige afweging.

Voor kwalificatie wil je de flow. Kwalificatie is een beslissing, en een beslissing heeft vertakkingen nodig die je kunt zien, testen en repareren. Kun je niet aanwijzen bij welke node een huurder wordt afgewezen, dan heb je geen kwalificatiestap, maar alleen de hoop dat het model je instructies onthoudt.

Begin vanaf nul in plaats van met een template als je kwalificatiecriteria specifiek zijn voor jouw bedrijf, wat bijna altijd zo is.

Stap 2: Bouw de gespreksflow door Conductor te prompten

Je hoeft niet elke node handmatig te slepen. Conductor is de AI-copilot die in Retell is ingebouwd: je beschrijft het gesprek dat je wilt, Conductor stelt de nodes en vertakkingen voor, en jij controleert alles voordat er iets live gaat.

Gebruik prompt 1 uit de promptindex aan het einde van deze gids. De beschrijving doet echt werk, dus schrijf die als een specificatie en niet als een wens.

Conductor komt eerst met verduidelijkende vragen voordat hij gaat bouwen. Beantwoord die concreet. Door je exacte werkgebied te noemen, en Cal.com als boekingstool, kan hij de diskwalificatievertakking en de boekingsnode op de juiste plek zetten in plaats van te gokken. Vraag om placeholders voor alles waarvoor inloggegevens nodig zijn die je nog niet hebt gekoppeld.

Lees elke node voordat je die accepteert. Conductor stelt voor, jij keurt goed, net zoals je een pull request reviewt. Dit is de stap die mensen overslaan, en juist hier is een ontbrekende vertakking het goedkoopst op te sporen.

Beschreven is niet hetzelfde als gevraagd

Dit is de valkuil die je moet onthouden. Je kunt schrijven "als de beller zegt dat hij huurt, beëindig dan het gesprek" en een flow krijgen met een diskwalificatiepad dat alleen afgaat als een beller toevallig uit zichzelf vertelt dat hij huurt terwijl hij iets anders beantwoordt.

Dat is geen kwalificatievraag. Dat is geluk.

Wat je niet expliciet vraagt, krijg je niet betrouwbaar. Als eigenaar versus huurder bepaalt of je een bus stuurt, dan heb je een node nodig die als enige taak heeft om die vraag direct te stellen. Hetzelfde geldt voor het werkgebied. Prompt 7 in de index controleert of die nodes bestaan, en prompt 8 voegt ze toe.

Stap 3: Koppel Cal.com aan je stemagent

Voor het inplannen heb je een echte agenda nodig, en dit is de enige stap die de copilot niet voor je kan doen, omdat er inloggegevens voor nodig zijn.

Open in Cal.com de Settings, ga naar het tabblad API keys en maak een nieuwe key aan. Stel een vervaldatum in die past bij hoe lang je hem verwacht te gebruiken. Ga in Retell naar Integrations, voeg Cal.com toe en plak de key. Zodra dat gelukt is, staat het account als gekoppeld.

Dat is het volledige handmatige deel van de build.

Stap 4: Koppel de functies voor beschikbaarheid controleren en afspraak boeken

Open de subflow voor het boeken. Daarin heb je twee functies nodig: een die de beschikbaarheid controleert en een die de afspraak boekt.

Voor beide heb je je Cal.com event type ID nodig. Die vind je in de URL van de boekingslink die de agent moet gebruiken. Het is het nummer in die URL, en het hoort in het veld event type ID van elke functie.

Voeg eerst de functie check availability toe, plak het event type ID en sla op. Voeg daarna de functie book appointment toe, met hetzelfde event type ID, vul de overige velden in en sla op. De volledige lijst met Cal.com-functies behandelt ook verzetten en annuleren, voor als je die nodig hebt.

Staan beide echte functies klaar, voer dan prompt 3 uit de index uit, zodat Conductor de nodes opnieuw koppelt aan de live integratie.

Stap 5: Test de AI-afsprakenplanner voordat je publiceert

Voer een testgesprek uit vanuit het dashboard en speel een beller die zou moeten kwalificeren.

Waar je op let, is niet of de agent goed klinkt. Het gaat erom of de volgorde klopt. Bij een correcte run vraagt de agent wat er aan de hand is, vraagt hij of het om reparatie of vervanging gaat, of de beller eigenaar of huurder is, bevestigt hij het werkgebied, vraagt hij naar de urgentie en biedt hij daarna tijden aan.

Drie controles vangen de meest voorkomende fouten op, en prompts 4, 5 en 6 in de index zijn de oplossingen:

Biedt hij echte tijden aan? Zegt de agent dat er niets beschikbaar is terwijl je agenda vrij is, dan weet hij meestal de datum van vandaag niet en controleert hij dus een periode in het verleden.

Kan hij omgaan met een datum die hij nog niet had opgehaald? Vraag om een dag buiten de tijden die hij eerst aanbood. Een flow die één keer controleert en daarna nooit meer kijkt, blijft volhouden dat die dag niet beschikbaar is, ook als die vrij is.

Verzamelt hij naam en e-mailadres voordat hij boekt? Cal.com weigert een boeking zonder die gegevens. Vraagt niemand ernaar, dan mislukt de boeking nadat de beller al een tijd heeft gekozen, en dat is de slechtst denkbare plek om te falen.

Test ook de diskwalificatiepaden. Een huurder zonder toestemming en een beller buiten het werkgebied moeten allebei beleefd worden afgesloten, zonder boekingspoging. Controleer dat in plaats van het aan te nemen.

Stap 6: Publiceer de agent, wijs een telefoonnummer toe en lees de transcripties

Publiceer de agent, koop daarna een telefoonnummer en wijs het toe. Hetzelfde nummer werkt voor inkomende en uitgaande gesprekken.

De gewoonte die je moet opbouwen, is het lezen van de gespreksgeschiedenis. Elk gesprek laat een transcriptie en een samenvatting achter, zodat je ziet wat de beller wilde en hoe de agent ermee omging. In het testgesprek voor deze build toont het record een ingeplande dakreparatie voor een gat in een bestaand dak, bij een huurwoning in Long Island City, met toestemming van de verhuurder vastgelegd.

Dat is de context die je monteur nodig heeft voordat de bus vertrekt, en niemand heeft het ingetypt. Prompt 9 in de index zet dezelfde informatie om in gestructureerde velden die je CRM kan lezen, met behulp van analyse na het gesprek.

Lees de transcripties van de eerste paar weken goed door. Ze laten zien welke vraag de agent slecht stelt, welke vertakking niemand bereikt en welke diskwalificatie je bent vergeten te bouwen.

Wat je hierna bouwt

Zodra de kwalificatie werkt, zijn de nuttigste toevoegingen een tweede agenda, zodat verschillende soorten klussen naar verschillende monteurs gaan, en dynamische variabelen, zodat een agent die een bekende klant te woord staat al weet wie er belt in plaats van alles opnieuw te vragen.

De volgorde is belangrijk. Een agent die sneller de verkeerde bellers inplant, is erger dan geen agent. Eerst kwalificatie, dan volume.

Promptindex: alle prompts uit deze build

Je kunt deze flow op twee manieren bouwen. Je kunt hem aan Conductor beschrijven en goedkeuren wat hij voorstelt, of je plaatst de nodes zelf en plakt de instructietekst in elke node. Beide sets staan hier, samen met één specificatie die de vier problemen omzeilt waar deze build oorspronkelijk tegenaan liep.

Optie A: één prompt die alles vooraf regelt

Kopieer je maar één ding van deze pagina, kopieer dan dit. Het geeft Conductor alle vier de vereisten in één keer, in plaats van dat je ze later als bugs ontdekt.

Voordat je gaat bouwen: koppel eerst Cal.com via de pagina Integrations in het dashboard (API key, cal.com vs cal.eu). Bouw de nodes voor check-availability en book-appointment direct met de native Cal.com-integratietools van Retell. Gebruik geen placeholder custom functions.

Globale prompt: neem op: "De huidige datum en tijd is {{current_time}}. Bepaal relatieve datums, zoals vandaag, morgen, volgende maandag of over een paar dagen, altijd aan de hand van deze werkelijke datum. Gok nooit een datum."

Beschikbaarheidsnode: vraag altijd standaard een periode van 14 dagen vanaf vandaag op, ongeacht hoe vaag of specifiek het eerste antwoord van de beller is. Noemt de beller later een datum buiten de opgehaalde periode, voer de controle dan opnieuw uit met een periode waarin die datum valt voordat je zegt dat die niet beschikbaar is.

Vóór de boekingsnode: verzamel de volledige naam en het e-mailadres van de beller, beide verplichte velden voor de Cal.com-boeking. Roep de boekingsfunctie pas aan als beide zijn vastgelegd.

Dat ene blok voorkomt vier afzonderlijke fouten: placeholderfuncties die nergens naar verwijzen, een agent die de datum van vandaag niet weet, een beschikbaarheidsperiode die te smal is om de echte vraag van de beller te beantwoorden, en een boeking die mislukt omdat niemand om naam en e-mailadres vroeg.

Optie B: de conversationele prompts, in bouwvolgorde

Typ ze één voor één en lees wat Conductor voorstelt voordat je accepteert. Prompts 4 tot en met 6 lossen de drie fouten uit stap 5 op, als je die liever tegenkomt en onderweg oplost.

1. Zet de flow op

Bouw een gespreksflow voor een HVAC- en dakdekkersbedrijf. Begroet de beller en vraag of hij een reparatie of een volledige vervanging van het systeem nodig heeft. Vertak op basis van het antwoord. Zegt de beller dat hij huurt en het werk niet mag goedkeuren, of bevindt hij zich buiten ons werkgebied, beëindig het gesprek dan beleefd zonder in te plannen. Vraag anders of hij dit binnen een paar weken wil laten doen of alleen offertes verzamelt, en ga daarna richting het inplannen van een afspraak.

2. Vervang de placeholders door je echte agenda

Kunnen check-availability en book-appointment worden vervangen door mijn echte Cal.com-integratie?

3. Laat de flow verwijzen naar de functies die je handmatig hebt gekoppeld

Ik heb de Cal.com-integratiefuncties toegevoegd. Gebruik die en zet ze in de plaats van de placeholder-subnodes.

4. De agent zegt dat er nooit iets beschikbaar is

Elke keer dat ik een afspraak wil inplannen werkt de beschikbaarheid niet, hij zegt dat er de komende dagen geen afspraken zijn. Hoe komt dat?

5. De beschikbaarheidsperiode is te smal

Ik heb het getest en de AI zei dat er alleen beschikbaarheid was tot en met vrijdag, maar het is vandaag woensdag en in de agenda kan ik volgende maandag boeken. Waarom biedt de agent dat niet aan?

6. De boeking mislukt bij de laatste stap

De boeking op maandag lukte, maar daarna mislukt de boeking, volgens mij omdat er eerst bepaalde gegevens verzameld moeten worden.

7. Controleer of kwalificatie echt bestaat

Ik zie geen kwalificatie in de flow. Hebben we hier cases voor gebouwd?

8. Voeg een expliciete kwalificatielaag toe

We hebben nog een laag met kwalificatievragen nodig om te bepalen of ze huren of eigenaar zijn. Eigenaar is prima, huren betekent dat we toestemming van de verhuurder nodig hebben. Hetzelfde geldt voor de locatie: buiten Queens, NY is een nee.

9. Leg de leadgegevens vast aan het einde

Voeg een stap voor analyse na het gesprek toe die vastlegt of de beller gekwalificeerd was, of het om een reparatie of een vervanging ging, hoe urgent de beller het noemde, en een samenvatting van één regel voor de monteur.

Optie C: node voor node, als je het liever zelf bouwt

Plak elk blok in de bijbehorende node in plaats van erom te prompten.

Prompt op agentniveau, bovenaan de flow ingesteld

Je bent een planningsassistent voor een bedrijf in thuisdiensten dat reparatiegesprekken voor HVAC en daken afhandelt. Je taak is snel begrijpen wat de beller nodig heeft, bepalen of het de moeite waard is om een monteur te sturen, en zo ja, een afspraak op locatie inplannen. Houd het kort en natuurlijk, zoals een vriendelijke dispatcher, niet als een script dat wordt voorgelezen. Verzin nooit beschikbaarheid, gebruik alleen wat de agendatool teruggeeft.

De huidige datum en tijd is {{current_time}}. Bepaal relatieve datums altijd aan de hand van deze werkelijke datum. Gok nooit een datum.

Node 1, begroeting en eerste vraag

Begroet de beller en vraag wat er aan de hand is met het HVAC- of dakprobleem. Vraag daarna: "Wilt u dit laten repareren, of denkt u aan een volledige vervanging van het systeem?" Wacht op het antwoord voordat je verdergaat.

Node 2, vertakkingsvoorwaarden. Deze horen op de verbindingen die uit node 1 komen, niet op een eigen node:

  • Vervangingspad: de beller geeft aan dat het om een volledige vervanging of een nieuw systeem gaat, of zegt dat het huidige systeem niet meer te repareren is
  • Reparatiepad: de beller beschrijft een specifieke reparatie of storing
  • Diskwalificatie: de beller zegt dat hij huurt en het werk niet mag goedkeuren, of noemt een locatie buiten je werkgebied

Node 3, diskwalificatie

Leg beleefd uit dat dit buiten valt wat we op dit moment kunnen inplannen, omdat de beller huurt zonder toestemming van de eigenaar of zich buiten ons werkgebied bevindt. Stel voor dat de beller contact opneemt met de beheerder van het pand of opnieuw belt als dat verandert. Bedank de beller en beëindig het gesprek beleefd. Bied niet aan om iets in te plannen.

Node 4, urgentievraag

Vraag: "Wilt u dit binnen een paar weken laten doen, of verzamelt u op dit moment alleen offertes?" Gebruik het antwoord om de urgentie te bepalen, maar ga door richting inplannen, tenzij de beller duidelijk zegt dat hij nog niet klaar is om een afspraak te maken.

Node 5, contactgegevens verzamelen. Deze node zit tussen de urgentievraag en de boekingsnode, en het is de stap die de meeste builds vergeten:

Vraag naar de volledige naam en het e-mailadres van de beller, zodat we een bevestiging kunnen sturen. Houd het kort, indien nodig één vraag tegelijk. Ga pas verder met inplannen als je beide hebt.

Boekingsnode, waar de Cal.com-functies zitten

Zodra beide vragen beantwoord zijn en de beller niet is gediskwalificeerd, roep je Check Availability aan. Noem 2 of 3 vrije tijden in een natuurlijke zin, niet als lijst. Wacht tot de beller er hardop één bevestigt en roep daarna Book Appointment aan met die tijd. Roep Book Appointment nooit aan vóór een mondelinge bevestiging.

Extractievelden na het gesprek. Vier velden die het waard zijn om bij elk gesprek vast te leggen: qualified als boolean, true als er is ingepland en false als de beller is gediskwalificeerd of heeft afgehaakt. repair_or_replacement als selector, gebaseerd op het eerste antwoord. urgency als selector met deze week, deze maand of alleen offerte, gebaseerd op het tweede antwoord. En summary_for_tech als tekst, een of twee zinnen over het probleem, geschreven voor degene die langskomt.

Optie D: test het voordat je erop vertrouwt

Voer deze uit als simulaties voordat je de agent aan een echt nummer koppelt. Conductor vraagt je eerst de scope te bevestigen, omdat simulaties in rekening worden gebracht.

Kun je een simulatietestgesprek uitvoeren waarin de beller zegt dat hij het pand huurt en het werk niet mag goedkeuren? Ik wil bevestigen dat de agent weigert in te plannen en het gesprek beëindigt in plaats van door te gaan richting inplannen.
Hetzelfde, maar dan voor een beller buiten ons werkgebied. Kun je dat simuleren en bevestigen dat het gesprek eindigt zonder inplannen?

Plant een live gesprek iemand in die de agent had moeten afwijzen, dan helpen deze twee je de oorzaak te vinden:

Ik heb een gesprek getest als huurder die het werk niet mag goedkeuren, maar de agent ging gewoon door en probeerde toch in te plannen. Waarom diskwalificeert hij dat antwoord niet?
Ik belde van buiten ons werkgebied en hij bood toch aan om in te plannen. Waarom gaat de diskwalificatievertakking niet af?

Veelgestelde vragen

Hoe lang duurt het om een AI-afsprakenplanner te bouwen?

Ongeveer vijftien minuten voor de build in deze gids, van een leeg account tot een gepubliceerde agent met een telefoonnummer. Reken op extra tijd voor testen. De flow zelf zet je op met één prompt, maar de echte tijd gaat zitten in de testgesprekken die problemen met datums, beschikbaarheidsperiodes en ontbrekende boekingsvelden aan het licht brengen.

Moet ik kunnen programmeren?

Nee. Je bouwt de hele flow door hem in gewone taal te beschrijven en goed te keuren wat de copilot voorstelt. De enige handmatige stappen zijn het plakken van een Cal.com API key en het kopiëren van een event type ID uit een URL.

Wat is het verschil tussen een gespreksflow en een single prompt-agent?

Een single prompt-agent leest één blok instructies en improviseert. Een gespreksflow is een expliciete kaart, node voor node, met vertakkingen die je kunt inspecteren en testen. Gebruik een single prompt voor een lineair script, en een gespreksflow zodra het gesprek een beslissing bevat, wat bij kwalificatie altijd het geval is.

Kan hij afspraken inplannen in Google Calendar of Calendly in plaats van Cal.com?

Ja. Hier gebruiken we Cal.com omdat de boekings-API eenvoudig te koppelen is. Hetzelfde patroon, een functie voor beschikbaarheid controleren gevolgd door een functie voor afspraak boeken, werkt ook voor andere agenda-integraties.

Waarom zegt mijn agent dat er geen afspraken beschikbaar zijn terwijl mijn agenda vrij is?

Meestal zijn er twee oorzaken. De agent weet de huidige datum niet en controleert dus een periode die al voorbij is. Of hij heeft één keer een smalle periode gecontroleerd en nooit opnieuw gekeken toen de beller een andere dag noemde. Prompts 4 en 5 in de promptindex lossen elk van deze gevallen op.

Wat gebeurt er met bellers die niet kwalificeren?

Die komen bij een diskwalificatienode die het gesprek beleefd beëindigt zonder iets in te plannen. Dat pad moet je expliciet bouwen. De regel beschrijven in je eerste prompt is niet genoeg, en precies dat vangen prompts 7 en 8 op.

Verder lezen

ROI Calculator
Estimate Your ROI from Automating Calls

See how much your business could save by switching to AI-powered voice agents.

All done! 
Your submission has been sent to your email
Oops! Something went wrong while submitting the form.
   1
   8
20
Oops! Something went wrong while submitting the form.

ROI Result

2,000

Total Human Agent Cost

$5,000
/month

AI Agent Cost

$3,000
/month

Estimated Savings

$2,000
/month
Live Demo
Probeer onze live demo

Een demodemonummer van Retell Clinic Office

Bedankt! Je inzending is ontvangen!
Oeps! Er is iets misgegaan bij het verzenden van het formulier.

Read Other Blogs

Revolutionize your call operation with Retell