After a new skill is created, it will have a Knot node named "main". This will be the beginning of the Dialogue Graph. The Knot node does not have any effect on the functionality of the Dialogue Graph so it can be used as the target of GoTo nodes in order to make the graph more organized.
A Dialogue Graph is activated by a user's input, including User Says, Intent, Entity Extraction, or Wildcard nodes. For example, the User Says node catches a pre-defined text block, and when the user input matches with the text block, the node matches, and the dialogue graph executes.
Start by dragging a User Says node. Drag the User Says logo into the editing area:
Double click the node to edit the User Says content.
Next, drag a Bot Says node, and let the bot say something to welcome the user. Double click to edit Bot Says content.
Use the arrow to connect the User Says and Bot Says node to indicate the flow of the dialogue. Move the mouse to the User Says node, empty circles will show on the side of the node. Move the mouse to any of the empty circles on the side of the node, and when the mouse shows as +, hold left click, and connect the arrow to the Bot Says node. Then connect the Knot node to the User Says node.
Try this simple dialogue graph. Click the Train button on the top-right of the page to put the changes into effect. Click the Test button. In the input box of the chat bot, type in "Satisfaction feedback", as shown the bot replies with the greeting message.
After double clicking the card, give each card a custom name by clikcing the edit button right of the card's name. By doing so, the purpose of each card can be viewed.
Input nodes are used to capture user input.
Output nodes will display content to the user.
Operation nodes does not display content to the user, instead they affect the flow of the dialogue graph.
Node name | Group | Design | Explanation |
---|---|---|---|
User Says | Input | Catch a pre-defined text block | |
Intent Node | Input | Catch a text block that matches an Intent | |
Entity Extraction | Input | Catch a text block that match an entity | |
Wildcard | Input | Catch any text | |
Bot Says | Output | The chatbot send a text to teh user | |
Card List | Output | Display a single button or a list of vertically(or horizontally) stacked buttons | |
Go To | Output | Based on a given node name, direct the flow to that specific node | |
Image | Output | Send a playable picture embedded in a single message to the user | |
Audio | Output | Send a playable audio embedded in a single message to the user | |
Vdieo | Output | Send a playable video embedded in a single message to the user | |
Quit | Output | Quit chat flow | |
Script | Operation | Run Groovy script to perform complicated logic like manipulation of variable, api calls, complex calculations | |
Random | Operation | Randomly direct the flow to one of the following nodes | |
Knot | Operation | Use knot node for more convenient use of GoTo node and neat graphics | |
Module | Module | Group of blocks that have a common goal such as fulfill an order |