Reviews Documentatie

← Terug naar Reviews

Welkom bij de Reviews Module

Deze module is het centrale dashboard voor alles rond Google Reviews van NaNoi. Het haalt automatisch reviews op, vertaalt ze naar vier talen, analyseert elke reviewer met AI, en helpt je om snel en persoonlijk te reageren β€” allemaal vanuit één overzichtelijk scherm.

De reviews op de homepage worden automatisch bijgewerkt. Je hoeft zelf nooit handmatig reviews te kopiΓ«ren of te vertalen. Het systeem draait grotendeels op de achtergrond β€” jij hoeft alleen in actie te komen bij reviews die aandacht nodig hebben (3 sterren of minder) of nog onbeantwoord zijn.

Wat kan je met dit dashboard?

  • πŸ“Š In één oogopslag zien hoeveel reviews je hebt, wat het gemiddelde is, en welke aandacht nodig hebben
  • πŸ€– AI-antwoorden genereren voor onbeantwoorde reviews β€” altijd in het Nederlands, in "wij"-vorm, met "u"
  • πŸ” Gasten herkennen β€” het systeem koppelt reviews automatisch aan reservaties
  • 🌐 Vertalingen beheren β€” reviews verschijnen in de juiste taal op de homepage (NL, EN, FR, DE)
  • βš™οΈ Schedule beheren β€” pauzeren, hervatten, of aanpassen hoe vaak reviews gesynced worden
  • πŸ“ˆ Analytics bekijken β€” rating-verdeling, trends, en AI-gegenereerde tags

Waarom deze module uniek is

De meeste restaurants gebruiken een Google Reviews widget β€” een statisch blokje dat "laadt" en hooguit wat sterren laat zien. Of ze gebruiken dure SaaS-tools zoals Birdeye, Trustpilot of Sprout Social die $100-$500 per maand kosten.

Wat NaNoi heeft is fundamenteel anders:

Standaard restaurantsNaNoi Reviews Module
Google iframe widget β€” statisch, traagEigen sync-engine via Apify β†’ Supabase pipeline
Geen vertalingenAI vertaalt Γ©lke review naar NL, EN, FR, DE β€” homepage toont de juiste taal per bezoeker
Handmatig reageren op Google MapsAI genereert concept-antwoord in 1 klik β€” jij checkt, kopieert, plakt
Geen analyticsInteractieve grafieken mΓ©t click-to-filter β€” klik een staaf en zie de reviews
"Wat anderen zeggen"Reviews beheerd Γ©n vertaald in 4 talen β€” homepage toont de juiste taal per bezoeker
Geen koppeling met reservatiesDetail modal checkt automatisch of deze gast bekend is uit de reservatie-database
Nul automatiseringHealth dots, overdue alerts, realtime toast-popups bij slechte reviews
Alleen desktopDark mode (OS-auto), responsive, werkt op tablet en telefoon
$100-500/maand SaaS$0,50/maand aan AI- en Apify-kosten, rest is eigen infra

Dit is geen "reviews widget". Dit is een mini-SaaS product dat toevallig voor één restaurant draait. Gebouwd op Cloudflare Workers (serverless), Supabase (database), Apify (scraping) en DeepSeek (AI) β€” allemaal binnen de gratis tiers. De enige terugkerende kosten zijn AI API calls van minder dan $1 per maand.

De module is het resultaat van 5 audit-rondes, 133 opgeloste issues, 11 database-migraties, en een UAT-testplan met 22 scenario's. Alles is restartable β€” als er iets misgaat tijdens een sync, pakt de volgende run gewoon waar de vorige stopte.

Dashboard Overzicht

Reviews dashboard

Het dashboard opent op de Reviews-tab. Bovenaan staat de score-hero (je Google-score + projectie), daaronder drie actie-tiles, dan de tabs, en onderaan het Sync & schedule-blok.

Score-hero

Toont je actuele score (bv. 4,8β˜… Β· 215 reviews), een progress-bar naar 4,9, hoeveel 5-sterren reviews je nog nodig hebt om van 4,8 naar 4,9 te gaan, en een verwachte datum bij het huidige 5β˜…-tempo (voortschrijdend 12 maanden). "5,0 is niet realistisch" staat er als subtiele noot bij.

Actie-tiles

TileBetekenis
⚠ AandachtKlikbaar β€” toont reviews met needs_attention=true
πŸ’¬ OnbeantwoordKlikbaar β€” toont reviews zonder eigenaar-antwoord
β˜… VerdelingKlikbaar β€” toont de 5β˜…/4β˜…-telling en opent de Analytics-tab

Sync Runs

De Sync-geschiedenis (uitklapbaar) toont de laatste 10 sync-pogingen met:

  • Tijdstip β€” wanneer de sync gestart is
  • Type β€” ⏰ Cron (automatisch), πŸ‘€ Handmatig, πŸ”— Webhook
  • Status β€” completed (βœ…), failed (❌), processing (⏳), skipped (⚠)
  • Reviews β€” aantal verwerkte reviews
  • Error β€” foutmelding als de sync mislukt is

Schedule

Het Sync & schedule-blok beheert de automatische sync. Om het schema te wijzigen, pauzeer je eerst β€” pas daarna verschijnen de dropdown en "Toepassen":

  • Actief β€” toont het huidige schema als read-only label + knop "Pauzeren"
  • Gepauzeerd β€” toont de cron-dropdown + "Toepassen" + "Hervatten"
  • Nu syncen β€” handmatige delta-sync (nieuwe reviews ophalen)
  • Volledig her-scrapen β€” eenmalige volledige sync (met bevestiging; kost Apify-credits)

Review Tabel

Review tabel met filters

Kolommen

KolomUitleg
AuteurNaam + avatar van de reviewer. ⚠ badge = aandacht nodig
β˜…Rating (1-5 sterren)
TagAI-gegenereerde categorieΓ«n (bv. "eten", "service")
TaalOriginele taal van de review (NL, EN, FR, DE, IT, OTHER)
Vertalingβœ“ = vertaald, ⏳ = in queue
Replyβœ“ = beantwoord, AI = klik om AI-antwoord te genereren

Filters

Boven de tabel staan vier filters:

  • πŸ” Zoeken β€” filter op naam of reviewtekst
  • β˜… Sterren β€” filter op specifieke rating
  • Status β€” Alle / Onbeantwoord / ⚠ Aandacht / Vertaling pending
  • Taal β€” filter op originele taal

Onderaan de tabel staat paginatie (20 reviews per pagina).

Detail Modal

Review detail modal

Klik op een rij in de tabel om de detail popup te openen. Deze toont:

  • Review tekst β€” de volledige originele review
  • Taaltabs β€” schakel tussen origineel en vertalingen (NL, EN, FR, DE)
  • Eigenaar antwoord β€” als er al een reply is, wordt deze getoond met datum
  • Gast in database β€” zoekt in reservaties of deze persoon bekend is. Toont bezoekhistorie + telefoon
  • AI Antwoord β€” genereer een reply in het Nederlands. Editen en kopiΓ«ren naar klembord

AI Antwoord Genereren

Voor onbeantwoorde reviews (geen "βœ“" in de Reply kolom) kan je met één klik een AI-antwoord laten genereren. De AI (DeepSeek) schrijft een oprecht, vriendelijk antwoord van 2-4 zinnen, specifiek afgestemd op de inhoud en toon van de review.

Hoe het werkt

  1. Klik op een review in de tabel β†’ de detail modal opent
  2. Klik op πŸ€– AI antwoord onderaan de modal
  3. De AI genereert direct een antwoord. Het tekstvak toont "Antwoord wordt gegenereerd..." β€” dit duurt 2-4 seconden
  4. Het antwoord verschijnt in een bewerkbaar tekstvak β€” je kan het aanpassen voordat je het gebruikt
  5. Klik πŸ“‹ Kopieer om het antwoord naar je klembord te kopiΓ«ren
  6. Plak het antwoord in Google Maps via business.google.com

Wat de AI precies doet

  • Bij positieve reviews (β‰₯3β˜…): bedankt de gast, benoemt wat gewaardeerd werd, nodigt uit terug te komen
  • Bij negatieve reviews (<3β˜…): toont oprecht begrip, zonder te vragen om contact op te nemen
  • Schrijft altijd in de "wij"-vorm (namens het hele NaNoi team)
  • Spreekt de reviewer aan met "u" (formeel Nederlands)
  • Gebruikt een warme, persoonlijke toon β€” geen generieke "Bedankt voor uw review"
  • Geen aanhef ("Beste ...") en geen afsluiting ("Met vriendelijke groet") β€” Google Maps toont die zelf

Pro tip: Het antwoord wordt niet opgeslagen in de database. Bij de volgende sync haalt het systeem je antwoord vanzelf op van Google Maps. Zo blijft de database altijd gesynchroniseerd.

Analytics Tab

Analytics dashboard

De Analytics tab geeft je inzicht in de prestaties van het restaurant door de ogen van je gasten. Het is standaard actief bij openen van de pagina.

De vier grafieken

  • πŸ“Š Rating distributie β€” staafdiagram van 1β˜… tot 5β˜… met absolute aantallen. Klik op een staaf om alleen die reviews te zien in de lijst onderaan. Handig om snel alle 3β˜… reviews te bekijken.
  • πŸ“ˆ Review volume β€” hoeveel reviews per maand, over de laatste 12 maanden. Klik op een punt om die maand te filteren. Zo zie je of er in de zomer meer reviews binnenkomen dan in de winter.
  • πŸ“‰ Rating trend β€” gemiddelde score per maand. Daalt de lijn? Dan is er mogelijk iets veranderd in de service of kwaliteit. Stijgt de lijn? Goed bezig!
  • 🏷️ Tags β€” een cloud van AI-gegenereerde trefwoorden. Klik op een tag om reviews met dat thema te zien. De grootte geeft aan hoe vaak het voorkomt.

Interactieve filtering

Alle grafieken zijn klikbaar. Als je op een element klikt, verandert de Top review sectie onderaan in een lijst met de gefilterde reviews. Je ziet tot 6 reviews per keer. Klik op ← Terug om terug te keren naar de standaardweergave.

Je kan ook op de Aandacht en Onbeantwoord actie-tiles bovenaan klikken β€” die filteren direct op die categorieΓ«n in de Reviews-tab.

Reviews op de Homepage

Reviews carousel op de homepage

De reviews die je in het admin dashboard beheert, worden automatisch getoond op de homepage van nanoi.be. Bezoekers zien een carrousel met reviewkaarten die van rechts naar links bewegen. Dit is hoe het werkt.

Wat bezoekers zien

Op de homepage, onder de secties "The Heart of NaNoi" en het menu-overzicht, staat een gouden balk met daarin:

  • πŸ† Review cards β€” elke card toont de naam van de reviewer, hun Google-sterren (β˜…), en een quote uit hun review. De kaarten schuiven automatisch in een oneindige carrousel
  • ⭐ Google rating β€” bovenaan de hero-sectie staat de actuele gemiddelde Google-score met het totaal aantal reviews (bijv. "4.8β˜… Β· 212 Google Reviews")
  • 🌐 Taal β€” de getoonde reviewtekst past zich aan aan de taal van de bezoeker. Op /nl ziet men Nederlandse vertalingen, op /de Duitse, op /fr Franse

Welke reviews worden getoond?

Niet alle reviews verschijnen op de homepage. Het systeem selecteert automatisch:

FilterWaardeWaarom
Minimale sterren4β˜… (instelbaar)Alleen positieve reviews op de homepage β€” negatieve reviews beheer je in de admin
Maximaal aantal6 reviews (instelbaar)De carrousel toont maximaal 6 kaarten tegelijk voor een strak design
Vertaling vereistβœ… JaAlleen reviews waarvan de AI-vertaling klaar is β€” zo ziet elke bezoeker de juiste taal
Tekst aanwezigβœ… JaAlleen reviews mΓ©t reviewtekst, geen lege sterren-only reviews

Waar staan deze instellingen?

De minimum sterren en het maximum aantal reviews staan in Instellingen β†’ /admin/settings. In de reviews pagina zie je onder de Analytics tab een Homepage Preview die live laat zien welke reviews er nu op de homepage staan.

Vertalingen op de homepage

Dit is een van de krachtigste features van de module:

  • Een Franse review van "F C" wordt door AI vertaald naar Nederlands, Engels en Duits
  • Bezoekers op /nl lezen "Op twee stappen van de Grote Markt...", bezoekers op /de lezen "Zwei Schritte vom Grote Markt..."
  • Google's eigen vertaling vertaalt de originele review β€” die is vaak houterig. De NaNoi AI-vertaling leest als een Γ©chte restaurantreview in elke taal

Wat gebeurt er bij een nieuwe review?

  1. Google sync (automatisch of handmatig) haalt de nieuwe review op
  2. De review krijgt status translations_status = "pending" β€” hij verschijnt nog niet op de homepage
  3. De vertalings-queue vertaalt hem (max 10 per run, automatisch)
  4. Zodra translations_status = "done" is, verschijnt de review op de homepage β€” in de juiste taal per bezoeker

Dit proces is volledig geautomatiseerd. Je hoeft niets te doen.

Tips & Dagelijks Gebruik

Ochtend-routine (2 minuten)

  1. Open /admin β†’ check de health dot op de Reviews module card. Groen = alles ok
  2. Open Reviews β†’ check de actie-tiles: is "Aandacht" > 0? Dan direct actie ondernemen
  3. Check de Sync runs tabel: was de laatste sync succesvol? (βœ“ completed)

Nieuwe review beantwoorden (1 minuut)

  1. Filter op "Onbeantwoord" in de status-dropdown
  2. Klik de review β†’ detail modal opent
  3. Klik πŸ€– AI antwoord β†’ antwoord verschijnt in 3 seconden
  4. Lees het antwoord, pas aan indien nodig, klik πŸ“‹ Kopieer
  5. Open business.google.com en plak het antwoord
  6. Optioneel: klik βœ… Afgehandeld om de review als beantwoord te markeren

Negatieve review onderzoeken (3 minuten)

  1. Open de review via de tabel of door op "Aandacht" te klikken
  2. Check "Gast in database" β€” is dit een bekende gast met eerdere reservaties?
  3. Genereer een AI antwoord met die context en stuur het via Google Maps

Dashboard health dot begrijpen

Op de /admin dashboard pagina zie je een gekleurde indicator op de Reviews module card:

KleurBetekenisActie
🟒 Groen βœ“Alles gezond β€” sync recent, geen aandachtspuntenGeen actie nodig
🟑 Oranje !Aandacht nodig: sync gepauzeerd, of vertalingen in queue, of reviews met needs_attentionCheck de reviews pagina voor details
πŸ”΄ Rood βœ•Review(s) >48u onbeantwoord β€” urgente actie nodigDirect antwoorden op de betreffende review(s)
βšͺ Grijs β€”Nog nooit gesyncedStart een handmatige sync