In this blog series, we will create a Customer Support Chatbot for a delivery service that will allow you to track orders, raise complaints, get bills/invoices, and cancel orders.
In this part, we will be planning and designing our bot before starting the implementation. Design and Planning in the initial stage help to get a clear picture of the project we are going to build.
Following information, we will obtain in this phase –
- Features to Implement
- Design Detail
Below is the high-level flow chart that we are going to follow in our Bot implementation.
We have four functionalities to implement –
- Track Order
- Raise Complaint
- Get Bill
- Cancel Order
These functionalities will be created in their respective dialog classes. Let us go into detail about these features. Most delivery service maintains a database to keep all the order-related data in it. We will also use the Database, let me know in the comments below, what database you want me to use.
If you are looking for connecting the bot framework to a database, refer to our bot series.
We ask the user to provide the order number or we can also provide the list of recent orders placed by the user. With user selection, we send the tracking details to the user.
Same as track order, here also, we ask the user to provide the order number or send a list of recent orders. Based on the user selection, we give the user the categories on which the complaint can be raised.
If the user clicks on Others, then we hand off the conversation to a real support person to better understand the problem the user is facing.
Ask the user to provide the order number. Send back the bill/invoice to the user as an Adaptive card. In this case, we will create an adaptive card using the JSON and C# right inside our code. We will not be going to the Adaptive Card designer but we can take a bill/invoice template from there.
Ask the user to provide the order number. Give confirmation to the user about the cancellation.
All these order management changes require updating the Database in real-time.