Voice-based (Google Assistant Action) app

Job ID: 33968202

Budget: ₹37,500 – ₹75,000 INR

Development Environment
1. The user interface of the pilot will be developed as a Google Assistant Action.
2. The response business functionality will be via Web hooks in Node JS
3. The database for any storage will be using Firestore
Conversational Flow
1. Invocation
On a Google Assistant interface (mobile / tablet / smart speaker / nest device), the way to invoke the pilot will be

Hey Google talk to CBT

The response from the system will be
Hello
<pause>
May I know your name

Unlike the normal user-prompt resulting in intent-identification leading to system-response, here on invocation, the intent becomes a gather-user-info intent.
2. Gather User Info
This step will be a series of conversation flows that will conclude only after satisfaction of intent (or sudden exit from the action - pt 4). This is tricky because unlike the standard format of a dialog where the user asks a question and the system responds, in this case the query of the user is to a pending response!

The information to be gathered are:
• name of person
• age of person
• place of stay

The system needs to give a response based on user query. In this case, the response is the next question till all questions are answered. Below are some cases

If My name is XXX is user query, then system response is: Thanks for name <pause> What is your age
If What do you do is user query, then system response will be: I do not understand <pause> may I know your name
If I am 72 is user query, then system response should be: Thanks for your age <pause> may I know your name

Essentially, during the Gather-Info state of the user conversation, the system must continue asking for the above 3 data till it deems to be satisfied.

On completion of this intent, the system must store the information as a log in firestore and responds with: Thanks for the info <pause> what would you like me to help you with

The user can exit at any point saying Goodbye or Bye
3. Play YouTube video
The backend (firestore) will have a set of youtube links for different types or categories of videos. Based on the invocation of video type (e.g. pranayam) by the user, the system will randomly pick one of the videos and play it. For example

If Play Pranayam video is user query, then the system plays a video via widget.
If Play rock music video is user query, then the system response is: I do not have those videos <pause> what would you like me to help you with
If Show me a movie is user query, then the system response is: I do not understand your query <pause> What would you like me to help you with
If My name is xxx is user query, then system response is: Thanks for name <pause> what would you like me to help you with
4. Unsupported Actions
For any query that is not understood, there is a standard response. For example

If What is today is user query, then the system response is: I do not understand your query <pause> what would you like me to help you with
If Whad fdast dasa dafasi is user query, then the system response is: I do not understand your query <pause> what would you like me to help you with