Bouw een e-mailverzendende chatbot met Google Dialogflow

Bouw een e-mailverzendende chatbot met Google Dialogflow

​​​​​​Chatbots worden in de moderne tijd een steeds belangrijker hulpmiddel voor bedrijven. Met de juiste tools en knowhow creëren bedrijven chatagenten die echte gesprekken met klanten kunnen voeren.





Google Dialogflow ES is een van de krachtigste en gratis tools voor het bouwen van chatbots op de markt. Maar hoe kun je het volledige potentieel ervan ontketenen?





MAKEUSEVAN VIDEO VAN DE DAG

Stap 1: Maak uw Dialogflow ES-agent

Het maken van uw eigen Dialogflow ES-agent is de eerste stap in dit proces. Elk Google-account werkt en u begint met navigeren naar de Google Dialogflow NL website . Klik op Agent maken nadat u bent ingelogd en de details in het formulier invult voordat u op . klikt Creëren . U kunt Dialogflow gebruiken om: maak een chatbot voor entertainment , automatisering of klantenservice. Dit project omvat het laatste.





  dialoogstroom maken es agent

Stap 2: Dialogflow-opvolgintenties toevoegen

De nieuwe agent heeft alleen een standaard welkomstintentie en een standaard terugvalintentie. Een intentie is een fragment of fase in een gesprek.

U moet twee vervolgintenties toevoegen aan de bestaande standaard welkomstintentie om aan de slag te gaan. Beweeg over de Standaard welkomstintentie , Klik op Vervolgintentie toevoegen en kies Ja uit het vervolgkeuzemenu. Herhaal het proces door Nee te selecteren in het vervolgkeuzemenu om de tweede vervolgintentie te maken.



  ja en nee vervolgintenties

De Geen vervolgintentie beëindigt het gesprek en neemt afscheid van de gebruiker. Open de Geen vervolgintentie en voeg een reeks tekstreacties toe om het gesprek te beëindigen. Activeer de Stel deze intentie in als het einde van het gesprek schuifregelaar.

  dialoogstroom gesprek eindintentie

Ga terug naar het hoofdscherm Intents en klik op de Ja vervolgintentie om het te openen.





Stap 3: Bouw een Rich Dialogflow Response List met JSON

Nu je deze intenties hebt ingesteld, is het tijd om de gebruiker een vraag te stellen zodat ze deze kunnen bereiken. Open de Standaard welkomstintentie en Verwijderen de reacties die het heeft gegenereerd. Klik Reacties toevoegen en selecteer Aangepast laadvermogen uit de menukaart.

  welkom intentie aangepaste payload

De onderstaande JSON-code voegt twee verschillende soorten uitgebreide reacties toe; informatie en chips.





{ 
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Yes"
},
{
"text": "No"
}
]
},
{
"image": {
"src": {
"rawUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/TK_email_icon.svg/1024px-TK_email_icon.svg.png"
}
},
"title": "Tell me about yourself :)",
"subtitle": "Give me some of your personal information. I'll send it to you in an email. That's the deal; absolutely no funny business. Promise! You in?",
"type": "info"
}
]
]
}

Stap 4: Verzamel de gebruikersnaam als een dialoogstroomparameter

Vervolgens is het tijd om nog een vervolgintentie toe te voegen om gegevens van de gebruiker te verzamelen. Zoals beschreven in stap 2, zou u al een Ja-opvolgintentie moeten hebben die om de naam van de gebruiker vraagt. Beweeg over de Ja vervolgintentie klik in het hoofdintentiemenu op Vervolgintentie toevoegen en selecteer Aangepast van de lijst.

  selecteer ja vervolgintentie

Dit creëert een nieuwe vervolgintentie zonder trainingszinnen. Ga naar het gedeelte Trainingszinnen, typ een naam in het vak en druk op Enter om het als een nieuwe zin toe te voegen. Dit activeert de aanmaak van een nieuwe parameter met het entiteitstype @sys.person. Klik op de @sys.person entiteit en verander het in a @sys.gegeven-naam entiteit.

beste videobewerkings-app voor Android
  dialoogflow gegeven naam parameterinstelling

Hiermee wordt de invoer van de gebruiker opgeslagen, zodat de agent deze kan gebruiken. Ga naar het gedeelte Reacties en voeg een antwoord toe met $voornaam in het. Dit roept de naamparameter op die je hebt verzameld, zodat deze in de chat kan verschijnen.

  dialoogstroom naam parameter reactie

Stap 5: Gebruik een Dialogflow Custom Payload om intenties te activeren

Blijf binnen de vervolgintentie die u zojuist hebt toegevoegd, klik op Reacties toevoegen en selecteer Custom Payload in de lijst. Door de onderstaande JSON-code aan deze sectie toe te voegen, wordt een lijst met rijke reacties geactiveerd waarin de gebruiker wordt gevraagd een kleur te kiezen.

  lijst met rijke inhoud van dialogflow

Het belangrijkste onderdeel van deze JSON-code is de gebeurtenissectie bij elk item. Wanneer erop wordt geklikt, roept elk lijstitem een ​​gebeurtenis aan met de naam KLEUR met de naam en kleurparameters die tot nu toe zijn verzameld. Aan intenties kunnen gebeurtenissen worden toegewezen waardoor ze worden geactiveerd.

{ 
"richContent": [
[
{
"event": {
"languageCode": "en",
"parameters": {
"name": "$given-name",
"color": "Red"
},
"name": "COLOR"
},
"title": "Red",
"type": "list"
},
{
"type": "divider"
},
{
"event": {
"name": "COLOR",
"languageCode": "en",
"parameters": {
"name": "$given-name",
"color": "Green"
}
},
"type": "list",
"title": "Green"
},
{
"type": "divider"
},
{
"type": "list",
"title": "Blue",
"event": {
"languageCode": "en",
"name": "COLOR",
"parameters": {
"name": "$given-name",
"color": "Blue"
}
}
}
]
]
}

Stap 6: Dialogflow-parameters verplaatsen tussen intenties

Ga terug naar het hoofdmenu Intenties en klik op Intentie creëren . Geef je nieuwe intentie een naam en voer in KLEUR in de evenementensectie voordat je raakt Binnenkomen .

  kleurintentie met evenement

Ga naar het gedeelte Trainingszinnen en voeg een naam en een kleur toe aan de lijst met zinnen om het aanmaken van nieuwe parameters te activeren. Verander de @sys.person parameter entiteit naar a @sys.gegeven-naam entiteit en zorg ervoor dat de kleurentiteit is ingesteld op @sys.color .

  kleurtraining en parameters

U kunt nu enkele reacties toevoegen met $gegeven-naam en $kleur om de invoer van de gebruiker in het chatvenster te laten verschijnen.

  kleurintentiereacties met parameters

Ga ten slotte terug naar de Contexten sectie bovenaan de pagina en voeg een uitvoer toe met een unieke naam. Dit zal de parameters van deze intentie doorgeven aan de volgende.

  uitvoercontext kleurintentie

Stap 7: Verzamel het land en telefoonnummer van de gebruiker als Dialogflow-parameters

Ga terug naar het hoofdmenu Intenties, plaats de muisaanwijzer op de Kleurintentie die u zojuist hebt gemaakt, en klik op Vervolgintentie toevoegen . Controleer het gedeelte Contexten van de nieuwe intentie. Zorg ervoor dat het de kleurcontext bevat die u in de laatste stap in zowel de invoer- als de uitvoersecties hebt gemaakt. Voeg nog een uitvoercontext toe voor de huidige intentie.

  dialoogflow kleur land follow-up intentie

Ga naar de Zinnen trainen sectie en voeg de naam van een land toe aan de lijst voordat je op . drukt Binnenkomen . Hiermee wordt een nieuwe parameter gemaakt. Wijzig het entiteitstype van de parameter in @sys.geo-country voordat u de parameter aan het antwoordgedeelte toevoegt.

  land training en parameters

Ga terug naar het hoofdmenu Intenties en maak een nieuwe vervolgintentie voor de intentie die u zojuist hebt gemaakt. Herhaal de stappen die je zojuist hebt genomen, maar gebruik een telefoonnummer in de Zinnen trainen sectie. Zorg ervoor dat de gegenereerde parameter een . heeft @sys.telefoonnummer soort entiteit.

  telefoonnummer training en parameters

Ga terug naar het hoofdmenu Intenties en maak twee nieuwe vervolgintenties voor de intentie die u zojuist hebt gemaakt; een ja en nee vervolgintentie. U kunt de Geen vervolgintentie instellen om het gesprek te beëindigen.

  telefoonnummer ja nee follow-ups

De vervolgintentie Ja moet alle contexten hebben van de eerdere intenties die u hebt gemaakt.

  invoercontexten opvolgen

Ga ten slotte terug naar het hoofdmenu Intenties en maak een nieuwe vervolgintentie voor de Ja-opvolgintentie die u zojuist hebt gemaakt. Voeg een e-mailadres toe aan het gedeelte Trainingszinnen en zorg ervoor dat de gegenereerde parameter: @sys.e-mail als zijn entiteitstype.

  dialogflow e-mailparameter

Ga naar de Reacties sectie, klik op Reacties toevoegen en selecteer Aangepast laadvermogen van de lijst. De volgende JSON-code voegt een uitgebreid antwoord van het lijsttype toe dat een gebeurtenis met de naam SENDEMAIL aanroept. Alle gebruikersparameters waar u tot nu toe om hebt gevraagd, worden hiervoor verzonden.

{ 
"richContent": [
[
{
"title": "Send Email",
"event": {
"parameters": {
"name": "#Color-followup.name",
"country": "#Color-country-followup.country",
"email": "$email",
"color": "#Color-followup.color",
"phone": "#Color-country-phonenum-followup.phone-number"
},
"name": "SENDEMAIL",
"languageCode": "en"
},
"type": "list"
}
]
]
}

Stap 8: Stuur een e-mail met de Dialogflow Node.js Inline Editor

Klik Intentie creëren in het hoofdmenu Intenties. Toevoegen VERZENDEN naar de Evenementen sectie en druk op Binnenkomen . Volg dit door alle parameters die u hebt verzameld toe te voegen aan de Actie en parameters sectie.

  e-mailgebeurtenis en parameters

Ga naar de Vervulling sectie onderaan de pagina en activeer de schuifregelaar met het label Webhook-oproep inschakelen voor deze intentie . Hiermee kunt u aangepaste code toevoegen aan deze intentie.

een horizontale lijn invoegen in woord
  vervulling van de intentie van de dialoogstroom

Selecteer Vervulling in het hoofdmenu aan de linkerkant van de pagina en activeer de schuifregelaar om de Inline-editor . Mogelijk moet u hiervoor een factureringsaccount aan uw Google-project toevoegen.

  dialogflow actieve inline-editor

Klik op de pakket.json tabblad en scrol naar de onderkant van het bestand. Vervang de sectie afhankelijkheden door de volgende code om de Nodemailer API aan uw project toe te voegen.

"dependencies": { 
"actions-on-google": "^2.2.0",
"firebase-admin": "^5.13.1",
"firebase-functions": "^2.0.2",
"dialogflow": "^0.6.0",
"nodemailer": "^4.4.2",
"dialogflow-fulfillment": "^0.5.0"
}

Ga terug naar het index.js-bestand en vervang de bestaande code door het voorbeeld op dit CodePen-project voordat u klikt Inzetten . U moet de Gmail-inloggegevens vervangen door die van uw eigen account. Hiervoor heeft u een app-wachtwoord nodig. Eenmaal voltooid, zal uw chatbot aan het einde van een succesvol gesprek alle details die u verzamelt naar de gebruiker e-mailen. Jij kan meer informatie over Node.js en hoe het te gebruiken met onze handige gids.

Dialogflow ES gebruiken op uw website

Uw nieuwe chatbot kan gebruikersinformatie verzamelen en e-mails verzenden, maar Dialogflow ES kan nog veel meer. U kunt vrijwel elke API aan deze service koppelen en u kunt de Dialogflow API gebruiken om uw chatbot op uw eigen website te besturen.