Blog overzicht

Hoe je gegevens ophaalt uit een database

In dit artikel laten we zien hoe je de klantervaring kunt verbeteren door je chatbot te integreren met een database. Om specifieker te zijn, zullen we kijken hoe we informatie uit een database kunnen halen en die kunnen gebruiken in gesprekken met je bot. We zullen dat doen door je het volgende te laten zien:

Naast het ophalen van data uit een database, is het ook mogelijk om data naar een database (POST) te pushen. Lees meer over hoe je de chatbot integreert met een database.

De gebruikersinvoer ophalen

Voordat we beginnen met het ophalen van gegevens uit onze database, hebben we enkele gegevens nodig die we kunnen gebruiken om alleen de relevante informatie uit de database te extraheren. Het extraheren van gegevens kan worden gedaan door gebruikersinvoer vast te leggen en door de payload te gebruiken. Lees er meer over in het werken met databases.

In dit voorbeeld gebruiken we het telefoonnummer van de gebruiker dat we bij de payload ontvangen als gebruikersinteractie via WhatsApp.

Data ophalen (GET)

In dit voorbeeld gebruiken we een database uit Restdb. Het opzetten en vullen van de database is onderdeel van een voorgaande stap, zoals is beschreven in het werken met databases. At this stage our, database contains only 1 record.

Chatbot Database

Om gegevens uit je RestDB-database op te halen, werken we met API’s. Als je RestDB gebruikt, kun je de ontwikkelaarsmodus openen door rechtsboven op het tandwiel- / instellingenpictogram te klikken. Ga dan naar API-documenten -> Javascript. Van daaruit kun je de GET-code van RestDB kopiëren en in een actie in Flow.ai te plakken.

Chatbot GET request

De volgende stap is om de code in de Flow.ai actie te wijzigen, zodat we alleen relevante gegevens kunnen ophalen. In dit geval zijn dat gegevens die betrekking hebben op een gebruiker die een bericht verzendt. We kunnen dat bijvoorbeeld doen door de naam te gebruiken die is gerelateerd aan het profiel van de gebruiker. Om de veiligheid te vergroten kun je ook het telefoonnummer, de geboortedatum of een combinatie gebruiken.


async payload => {
  
  var fullName = ""
  
  // Check if name exists
  if("fullName" in payload.user.profile) {
     fullName = payload.user.profile.fullName
   }
    

  const options = {
    method: 'GET',
    url: `https://integratedb-74ce.restdb.io/rest/userdata?q={"name": "${fullName}"}`,
    headers: {
      'cache-control': 'no-cache',
     'x-apikey': 'YOUR SECRET API KEY'
    }
  };
  
  let result
  
  try {
    const { data } = await request(options)
    
    result = data
  } catch (err) {
    console.error(err)
    throw err
  }
  
  const { name, email } = result[0] 
  // notice API may return more then 1 item in the array
  
  return new Message(`Hi ${name}, is ${email} still your email address?`)
}

Personaliseer de klantervaring

We hebben nu meer gegevens die betrekking hebben op deze specifieke persoon. We kunnen hem bijvoorbeeld een bevestigingsmail sturen. Vergeet niet om bevestiging te vragen, alleen om te controleren of het e-mailadres up-to-date is. Zo niet, dan kunnen we een PUT-verzoek gebruiken om de database bij te werken. Maar dat is voor nu te gedetailleerd.

Het ophaalverzoek retourneert informatie in code. Dat betekent dat we code nodig hebben om ons bericht aan de gebruiker te tonen. Je bent misschien al wel bekend met onze drag & drop-interface, maar onder de motorkap is dat allemaal code zoals uiteengezet in onze code replies. Laten we eens kijken of we iets moois kunnen maken van ons GET-verzoek.

Gepersonaliseerde klantervaring
Start directContact opnemen