Voor de interne organisatie van Gemeente Rotterdam ontwikkelden we een AI-gestuurde voicebot in ReactJS/NodeJS om volledig via spraak afspraken in Outlook te plannen en te beheren.
Door privacy-afspraken (NDA) delen we geen specifieke data, maar onderstaande techniekstack en functies schetsen het concept.
Wat deze voicebot slim maakt:
- Realtime spraak → tekst (ASR) & tekst → spraak (TTS): vloeiende gesprekken met lage latency, inclusief automatische taalherkenning (NL/EN).
- Intent-adaptieve dialogen (Dialogflow CX): de bot herkent doel, datum/tijd, locatie en deelnemers en stelt gerichte vervolgvraagjes voor slot-invulling.
- Outlook-koppeling via Microsoft Graph: afspraken aanmaken, controleren op conflicts, deelnemers uitnodigen en updates versturen.
- PII-redactie & compliance: automatische maskering van namen/e-mailadressen in logs; on-prem/tenant-beperkte opslag conform AVG.
- Smart confirmations: natuurlijke samenvatting van de afspraak (“Ma 10:30, Stadhuis, met Jansen & De Vries – klopt dat?”) met één spraakbevestiging.
- Fallback naar medewerker: bij lage NLU-zekerheid schakelt de bot context en transcriptie door naar een mens (soft-handover).
Technische aanpak:
- Frontend: ReactJS + TypeScript met WebRTC-audio streaming en realtime transcript-overlay.
- Backend: NodeJS + GraphQL gateway (afspraaklogica) en webhook-handlers voor Dialogflow event-flows.
- NLU: Dialogflow (CX) intents/entities; datum/tijd-normalisatie (time zones, werkroosters, feestdagen).
- Integraties: Microsoft Graph API (Calendar/Users), interne resource-policies (vergaderruimtes, capaciteit).
- Observability: redaction-first logging, intent-confidence monitoring, latency-tracking en gespreksuitval-alerts.
Project
- Klant: Gemeente Rotterdam (intern)
- Team: 6 developers (ERM Media + stakeholders)
- Skills:
Dialogflow CX
ReactJS
TypeScript
NodeJS
GraphQL
Microsoft Graph
WebRTC
ASR/TTS
- Project URL:
Niet publiek (intern)